프로세스란 메모리 상에서 실행중인 프로그램을 의미한다. 프로세스는 실행될 때 운영체제로부터 주소 공간, 메모리 등의 시스템 자원을 독립적으로 할당 받는다.프로세스 내부에는 최소 하나의 스레드(Thread)를 가지고 있고, 스레드 단위로 스케줄링(Scheduling)을
Kernel mode와 User mode에 대해 설명해보세요. Kernel(커널)이란? 커널은 운영체제의 핵심 부분으로서, 컴퓨터의 자원을 효율적으로 관리하기 위해 CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등의 업무를 수행한다. 커널 모드와
문맥 교환은 CPU에서 작업 중인 프로세스를 멈추게 하고 다른 프로세스를 실행시키는 과정이다. CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장하고, CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어온다. 즉, PCB의 정보가 교체하는 기술이다.Sy
프로세스는 실행 중에 프로세스 생성 시스템을 호출해서 새로운 프로세스를 생성한다. 이 때, 프로세스 생성 순서가 저장되고, 부모/자식 관계를 유지하며 계층적으로 생성되는데, 이를 프로세스 계층 구조라 한다.Parent Process(부모 프로세스): 생성하는 프로세스C
Multi Thread에 대해 설명해보세요. Multi Thread(멀티 스레드)란? 한 프로세스가 하나의 스레드를 이용하여 한 번에 한 작업만 수행하는 것을 싱글 스레드라고 하며, 한 프로세스가 여러 스레드로 구성되어 분산 처리를 통해 각 스레드로 하여금 하나의
프로세스는 독립적인 실행 객체로서, 다른 프로세스의 영향을 받지 않고 서로 간의 통신이 어렵다. 따라서 프로세스 간의 통신을 위해 커널 영역에서 IPC라는 통신 방법을 제공한다. 즉, IPC는 프로세스 간의 통신을 말한다. IPC는 크게 두 가지 모델로 나뉜다.공유 메
프로세스를 스케줄링 하기 위한 3가지 큐가 존재한다.Job Queue: Job Queue에는 시스템 내에 있는 모든 프로세스이 놓여진다. 이는 보조기억장치에 존재하는 프로세스가 메모리로 적재될 때 보조기억장치에 형성되어 있는 큐이다.Ready Queue: Ready Q
CPU 스케줄링은 멀티 프로그래밍 시스템에서 CPU의 사용을 최대화하기 위해 Ready Queue에 들어온 프로세스에게 자원을 적절히 할당하는 과정을 말한다. 따라서 CPU 스케줄링은 운영체제의 핵심 기능이다.프로세스의 실행은 CPU 실행과 입출력 대기 상태의 순환으로
시간의 관점에서, 현재 작업의 응답과 다음 작업의 요청이 동시에 일어나면 동기, 동시에 일어나지 않으면 비동기이다.현재 작업의 응답이 끝남과 동시에 다음 작업이 요청된다.함수를 호출하는 곳에서 호출되는 함수가 결과를 반환할 때까지 대기한다.작업 완료 여부를 계속해서 확
프로세스가 서로 협력하여 공유 자원을 사용할 때, 경쟁 조건이 발생하면 공유 자원을 신뢰할 수 없게 만들 수 있다. 이를 방지하기 위해 프로세스들이 공유 자원에 접근하려고 할 때 프로세스들의 순서를 정하여 데이터의 일관성을 유지시키는 것이 프로세스 동기화이다.Race
교착상태란 상호 배제에 의해 나타나는 문제로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 상태를 말한다.위의 그림과 같이 프로세스 1은 자원 A가 필요하고 프로세스 2는 자원 B가 필요하지만, 자원
CPU에서 실행중이지 않는 프로세스를 저장장치의 Swap 영역으로 이동시켜 메모리를 확보하는 방식이다. 주기억장치(RAM)으로 불러오는 과정을 Swap in, 보조기억장치로 내보내는 과정을 Swap out이라고 한다. 메모리 공간을 효율적으로 확보할 수 있다는 장점이
가상 메모리에 대해 설명해보세요. 가상 메모리
캐시 메모리는 속도가 빠른 CPU와 속도가 느린 주기억장치(RAM) 사이에 위치하여 장치간의 병목 현상을 줄이기 위한 범용 메모리이다.주기억장치에서 자주 사용하는 프로그램과 데이터를 캐시 메모리에 저장해주어 속도를 빠르게 한다. 주기억장치로부터 캐시 메모리로 데이터를