프로세스 관리
프로세스 관리란 운영체제가 CPU 자원을 각 프로세스에게 효과적으로 나누어 주는 것이다.
프로세스 상태 (Process State)
- New : 프로그램이 메인 메모리에 올라간 상태
- Ready : 프로그램이 메모리에 올라와 모든 초기화를 끝내고 실행할 준비가 되어있는 상태
- Running : CPU에 의해 프로세스가 실행되는 상태
- Waiting : 프로세스가 진행 중일 때 입출력장치와 같은 어떤 이벤트가 발생하기를 기다리는 상태
(작업이 끝나면 다시 Ready상태로 돌아감)
- Terminated : 프로세스가 종료된 상태
(프로그램이 마무리 되지 않고 메모리에 남아있는 상태를 Zombie 상태라고 함)
Waiting vs Ready
- waiting 상태 : 어떠한 이벤트가 발생하기를 기다리는 상태
- ready 상태 : CPU에게 할당되기를 기다리는 상태
PCB (Process Control Block)
프로세스 제어 블록(PCB)은 특정 프로세스와 연관된 여러 정보들을 담고 있다.
- 프로세스를 관리하기 위해 정보를 저장하는 커널의 자료구조(Data 영역에 존재)
- Process 상태, PC(다음에 수행할 명령어의 주소), CPU 레지스터, CPU 스케줄링 정보, 메모리 관리 정보 등을 저장
- 문맥 교환 시에 진행 사항을 PCB에 저장하고 CPU 반환
-> CPU를 할당받으면 PCB에 저장되어 있는 내용을 불러와 이전에 종료되었던 시점부터 다시 수행
프로세스 스케줄링 (Process Scheduling)
스케줄링 큐 (Scheduling Queue)
- Job Queue
- Ready Queue
- CPU에게 할당 받을 준비가 되어있는(Ready) 프로세스들
- Device Queue
스케줄러 (Scheduler)
- Long-Term Scheduler
- = Job Scheduler
- Degree of Multiprogramming을 제어하고, CPU-bound Process와 I/O-bound Process의 비율을 제어한다.
- Degree of Multiprogramming: 현재 메모리에 적재 되어있는 프로세스의 수
- CPU-bound Process: 해당 프로세스의 작업이 I/O(입출력) 많은 프로세스. (ex. word, 한글)
- I/O-bound Process: 해당 프로세스의 작업이 CPU작업이 많은 프로세스. (ex. 일기예보)
- Short-Term Scheduler
- Medium-Term Scheduler
- Swapping : 메인메모리 ←→ 하드 디스크