-
[TIL] 스파르타) CS 강의 수강 (Process)TIL-sparta 2024. 4. 28. 13:04
> 3강. 프로세스
> 위 강의에서 놓친 부분 보강
--
학습 키워드: CPU, Memory, Process, Thread, Scheduling, Scheduler, Swapping, Context Switching, Kernel
1. Process
1) Scheduler:
- Long-term Scheduler: 프로그램이 시작되거나, 메모리가 가득 차는 등 긴 텀(수 분에서 수십 분)을 두고 발생하는 상황을 다루는 스케쥴러로, Job Queue의 작업을 메모리로 옮기는 일을 수행하는 Job Scheduler가 여기에 해당한다.
- Short-term Scheduler: 짧은 텀(초당 수십에서 수백번 이상)을 두고 실행되는 스케쥴러로, Ready Queue의 프로세스들의 서비스 순서를 결정하는 스케쥴러인 CPU Scheduler가 여기에 해당한다.
- Medium-term Scheduler: 프로세스의 중단(Suspend)과 재개를 담당하는 스케쥴러라고 한다. 아래 설명할 Swapping과 관련이 있다.
2) Swapping:
- PCB(Process Control Block)의 CPU time 등을 참고해서 장시간 사용하지 않고 있는 프로세스의 메모리 할당에 관여하는 작업인데, 프로세스를 주 메모리에서 보조 메모리로 보내는 것을 swap-out, 보조 메모리에서 주 메모리로 올려주는 것을 swap-in 이라고 한다. 여기서 프로세스의 임시 저장소 처럼 사용되는 보조 메모리 공간을 Backing Store 또는 Swap Device 라고 일컫는다.
3) Context Switching:
- 프로세스의 상태를 준비에서 수행, 수행에서 준비로 전환하는 것을 일컫는데, 이게 바로 short-term scheduler인 CPU scheduler에서 담당하는 부분이다.
- Dispatcher: 프로세스의 스위칭이 일어날 때, 이전에 수행하던 코드의 중단 위치나 데이터에 대한 정보 또한 전달되어야 하는데, 이 부분을 담당하는게 바로 Dispatcher다.
4) Process의 메모리 구조:
2. Kernel
- 운영체제의 주요 구성 요소로, 컴퓨터의 하드웨어와 프로세스를 이어주는 핵심 인터페이스라고 한다.
- 커널 프로세스의 메모리는 Text, Data, Stack 의 구조로 이루어져 있는데, 일반 프로세스와는 다르게 Heap 메모리 공간이 존재하지 않는다. Text 영역에는 커널의 기능을 담당하는 코드들이, Data 영역에는 PCB 자료 구조가 담겨있고, Stack 영역에는 각 프로세스의 커널 스택, 즉 커널 내의 주소가 담겨있다고 한다.
- PCB (Process Control Block): 프로세스의 다양한 정보들이 담겨있다. 중요한 정보여서 Kernel 내부에 저장된다고 한다.
728x90'TIL-sparta' 카테고리의 다른 글
[TIL] 스파르타) CS 강의 수강 (DB, DBMS) (0) 2024.04.30 [TIL] 스파르타) CS 강의 수강 (Thread) (0) 2024.04.29 [TIL] 스파르타) CS 강의 수강 (CPU와 메모리) (0) 2024.04.27 [TIL] 스파르타) JS 개인 과제 피드백 확인 및 수정, Github Release, Semantic Versioning (0) 2024.04.26 [TIL] 스파르타) SQL (SELECT) 강의 2~5주차 수강 (2) 2024.04.25