Process
- Main Memory에 할당되어 실행 중인 상태인 프로그램
- job, task 등으로도 불림
- 상태
- New, Ready, Running, Waiting, Terminated
- PCB(Process Control Block)
- 프로세스에 대한 모든 정보가 모여있는 곳
- TCB(Task Control Block)
- process state, PID, program counter, register값, MMU정보 등이 포함
CPU는 한 프로세스가 종료될 때까지 수행하는 것이 아니라 여러 프로세스를 중간중간 바꿔가며 수행하는데 수행하고 있던 프로세스 정보를 저장하기 위해 필요하다!
- Process Queue
- 프로세스는 일반적으로 여러 개가 한번에 수행
- 그에 따른 순서가 필요
Job Queue : 하드디스크에 있는 프로그램이 실행되기 위해 메인 메모리의 할당 순서를 기다림
Ready Queue : CPU 점유 순서를 기다림
Device Queue : I/O를 하기 위한 여러 장치가 있는데, 각 장치를 기다림
각 큐 내부에 저장된 실제 데이터는 각 프로세스의 PCB가 저장되어있다.
순서를 정해주는 알고리즘이 필요 "스케줄링"
Job Queue - Job Scheduler(Long-term)
Ready Queue - CPU Scheduler(Short-term)
Device Queue - Device Scheduler
Multiprogramming
- 멀티프로그래밍은 단일 프로세서(CPU) 환경에서 여러 개의 프로세스가 동시에 실행되는 것
- Degree of multiprogramming : 현재 메모리에 할당되어 있는 프로세스 개수
- 프로세스 종류
- I/O bound process : 해당 프로세스에서 I/O 작업이 차지하는 비중이 높은 프로세스
- CPU bound process : 해당 프로세스에서 CPU 작업(계산)이 차지하는 비중이 높은 프로세스
- Job scheduler는 두 프로세스를 적절히 분배해 메모리에 할당해야 한다!
- Medium-term scheduler : os가 실행하는 동안 주기적으로 메인 메모리에 있는 전체 프로세스를 검사하여 보조기억장치로 옮길 프로세스를 찾아 옮김("Swapping")
- Swap device = Backing store ( HD = Backing store + File system)
- Swap out : main memory → HD / Swap in : HD → main memory
- Context Switching(문맥 전환)
- CPU가 한 프로세스에서 다른 프로세스로 옮겨가는 것
- Scheduler : CPU scheduler에 의해 CPU가 어느 프로세스를 선택할지 결정
- Dispatcher : 현재 CPU 데이터는 이전 프로세스의 PCB에 갱신하고, 새로 시작되는 프로세스의 PCB 데이터를 CPU로 복원(restore)
- Context switching overhead : context switching이 발생할 때마다, dispatcher에서 수행하는 작업은 매번 수행하는데 이게 overhead(dispatcher구현에 대해 효율성을 최대로)
'Computer Science > Operating System' 카테고리의 다른 글
[개념] Memory Management 1 (0) | 2021.08.12 |
---|---|
[개념] Virtualization (0) | 2021.08.12 |
[개념] IPC (0) | 2021.08.12 |
[개념] I/O Management (0) | 2021.08.12 |
[개념] Threads and Concurrency (0) | 2021.08.12 |