Study8 [운영체제] 가상 메모리 (2) - 성능 최적화와 관리 기법 JSCODE 모의면접 스터디운영체제 6기 5주차목차 1. 요구 페이징요구 페이징은 프로세스가 실행되는 동안 필요한 페이지만 메모리에 적재하고, 필요하지 않은 페이지는 디스크에 저장하여 메모리를 절약하는 기법이다.요구 페이징 시스템이 안정적으로 작동하려면 두 가지를 해결해야 한다. => 페이지 교체와 프레임 할당 작동 원리CPU가 페이지에 접근하면 페이지 테이블의 유효 비트를 확인한다.유효 비트가 1이면(해당 페이지가 메모리에 있음) CPU는 해당 프레임에 직접 접근한다.유효 비트가 0이면(해당 페이지가 메모리에 없음) 페이지 폴트가 발생한다.운영체제의 페이지 폴트 처리 루틴이 동작한다.디스크에서 해당 페이지를 찾는다.메모리의 빈 프레임에 페이지를 적재한다. (빈 프레임이 없다면 페이지 교체가 필요)페이지.. 2024. 12. 2. [운영체제] 가상 메모리 (1) - 기본 개념과 구현 방식 JSCODE 모의면접 스터디운영체제 6기 5주차목차 1. 메모리 주소 지정 방식데이터를 저장하거나 불러올 때, 데이터가 위치한 메모리의 주소를 지정하는 것이다.주소 지정 방식에는 절대 주소 지정과 상대 주소 지정이 있다. 물리 주소와 논리 주소(가상 주소)현대 운영체제는 메모리 관리를 위해 물리 주소와 논리 주소 개념을 사용한다.물리 주소: 메모리 하드웨어에서 데이터가 실제로 저장된 위치를 가리키는 주소이다.논리 주소(가상 주소): CPU와 실행 중인 프로그램이 사용하는 가상의 메모리 주소로, 각 프로세스마다 독립적인 0번지부터 시작되는 주소이다.MMU(Memory Management Unit): 프로세스의 논리 주소를 물리 주소로 자동 변환하여 실제 메모리에 접근한다. 절대 주소 지정데이터가 위치한 메.. 2024. 11. 24. [운영체제] 프로세스 동기화 JSCODE 모의면접 스터디운영체제 6기 4주차목차 1. 프로세스의 병행성과 병렬성병행성(Concurrency, 동시성)여러 작업이 동시에 실행되는 것처럼 보이는 것으로, 프로그램(논리적 수준)이 작업을 처리하는 방식입니다. 싱글 코어에서는 시분할(Time-Sharing) 방식으로 CPU를 나누어 사용하여 동시 실행되는 것처럼 처리멀티 코어에서도 실행 가능하며, 이 경우 실제 병렬 처리도 가능작업 전환 시 Context Switching이 발생하여 현재 작업 상태를 저장하고 다음 작업을 불러옴 병렬성(Parallelism) 여러 작업이 실제로 동시에 처리되는 것으로, 실제 CPU의 물리적인 코어(물리적 수준)를 여러 개 사용하여 동시에 처리하는 방식이다. 오직 멀티 코어에서만 동작이 가능하다. 병렬성 종.. 2024. 11. 19. [운영체제] CPU 스케줄링 JSCODE 모의면접 스터디운영체제 6기 3주차목차 1. CPU 스케줄링CPU 스케줄링은 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 말한다.운영체제는 준비큐에 있는 프로세스들 중 어떤 프로세스에 CPU를 할당할지 결정한다. 프로세스의 특성와 우선순위입출력 집중 프로세스 (I/O Bound Process): 입출력 작업이 많은 프로세스로 대기 상태에 더 많이 머무름.CPU 집중 프로세스(CPU Bound Process): 계산 위주의 CPU 작업이 많은 프로세스로 실행 상태에 더 많이 머무름.두 프로세스가 동시에 CPU 자원을 요구한 경우입출력 집중 프로세스를 먼저 실행하여 입출력장치를 지속적으로 활용하고, 그 다음 CPU 집중 프로세스에 CPU를 집중적으로 할당하는 것이 더.. 2024. 11. 12. [운영체제] 프로세스와 스레드 JSCODE 모의면접 스터디운영체제 6기 2주차목차 1. 프로세스프로그램과 프로세스프로그램프로그램(program)은 컴퓨터에서 실행할 수 있는 파일을 통칭한다.단, 아직 파일을 실행하지 않은 상태이기 때문에 정적 프로그램을 프로그램으로 줄여 부른 것이다. 프로세스프로세스(process)는 "실행 중인 프로그램"이다.프로그램은 실행되기 전까지는 보조기억장치에 저장되어 있는 데이터일 뿐이지만, 메모리에 적재하고 실행하는 순간 그 프로그램은 "프로세스"가 된다. 프로세스 제어 블록(PCB)프로세스 제어 블록(PCB)은 프로세스와 관련된 정보를 저장하는 자료 구조이다. 운영체제는 수많은 프로세스 사이에서 PCB로 특정 프로세스를 식별하고 해당 프로세스를 처리하는 데 필요한 정보를 판단한다. 하나의 프로세스를 .. 2024. 11. 7. [운영체제] 운영체제 개요 & 컴퓨터 시스템 동작원리 JSCODE 모의면접 스터디운영체제 6기 1주차목차 1. 운영체제운영체제(Operating System)란 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다.Ex) Window, Mac OS, Linux 등 운영체제의 역할1. 시스템 자원 관리컴퓨터의 하드웨어(CPU, 메모리, 입출력장치 등)를 효율적으로 관리하고 보호한다.시스템 자원이 낭비되는 것을 방지하고 원활하게 사용할 수 있도록 관리한다. 2. 인터페이스 제공사용자가 컴퓨터를 편리하게 사용할 수 있도록 GUI (Graphical User Interface) 또는 CLI (Command Line Interface) 와 같은 사용자 인터페이스를 제공한다.다양한 하드웨어를 사용하기 위한 인터페이스와 .. 2024. 10. 28. [Spring] @RequiredArgsConstructor와 @Autowired Spring 프레임워크에서 의존성 주입(Dependency Injection)을 위해 다양한 어노테이션을 사용한다. 그 중 @RequiredArgsConstructor와 @Autowired는 자주 사용되는 어노테이션이다. 이 두 어노테이션의 역할, 사용법, 그리고 선택 기준을 정리해보았다. @RequiredArgsConstructor의 역할@RequiredArgsConstructor는 Lombok 라이브러리에서 제공하는 어노테이션이다. 수행하는 작업: 1. final로 선언된 필드나 @NonNull 어노테이션이 붙은 필드에 대한 생성자를 자동으로 생성한다. 2. 생성자 기반 의존성 주입을 쉽게 구현할 수 있게 해준다. 3. 코드를 간결하게 만들어준다. 예시@Service@RequiredArgsConstr.. 2024. 10. 3. 이전 1 2 다음 반응형