용어 개념 정리
- Multi Programming System
- CPU가 하나의 프로세스를 실행하는데 있어서, 대기상태를 가지게 되면 다른 프로세스의 루틴으로 변경한다.
- Time Sharing System
- 각 프로세스마다 시간을 부여해서 지속적으로 변경하는 방법
프로세스 관리
-
Process
- 실행중에 있는 프로그램
- 실행중?
- 프로세스 상태
- new
- ready
- 모든 초기화를 끝내고 실행할 준비가 끝난 상태
- running
- waiting
- terminated
- Time Expired
-
PCB
- Process Control Block
- 프로세스에 대한 모든 정보가 담겨 있음
- 프로세스에 대한 정보?
- 프로세스에 대한 상태 정보
- 번지 정보
- 다른 레지스터에 대한 정보
- MMU
- 현재까지 프로세스 사용량
- PID : 프로세스 번호
- 어떤 파일에 대한 정보
- OS 안의 Process Management 부분에 들어있다.
-
Queue
- Job Queue
- 프로그램이 메인 메모리에 올라가기전에 잠시 대기해야 하기에 사용
- 어떤 Job을 먼저 시작할 것인지 정하기 위해 Job Scheduler 사용
- Job Scheduler = Long-term scheduler
- 메모리가 비어있어야지 올릴 수 있기 때문에 자주 결정지 않기 때문
- Ready Queue
- CPU 할당을 받기 위해 대기
- 대기 순서를 정하기 위해 CPU Scheduler 사용
- CPU Scheduler = Short-term scheduler
- I/O를 사용한다던가 Time Expired 발생 시 빠르게 다음 프로세스에게 CPU를 할당하기 위해 매우 자주 사용되기 때문
- Device Queue
- HW를 사용하기 위해 대기
- HW 할당을 위한 대기 순서를 정하기 위해 Device Scheduler 사용
Multi Programming
- Degree of multiprogramming
- 메인 메모리에 프로세스가 몇개나 올라가 있는가? 라는 의미
- I/O-bound vs CPU-bound process
- I/O-bound
- 프로세스가 주로 하는 작업이 I/O 관련된 작업
- CPU-bound
- OS는 위 두개의 bound를 적절하게 배치하여 CPU, I/O가 놀지 않도록 한다 -> Job Scheduler가 수행
- Medium-term scheduler
- Swapping을 결정하는 스케쥴러
- Swapping
- 메인 메모리에 올라가있는 프로세스에서 동작이 지속적으로 없을 시 잠시 swap device에 옮겨 놓는다. 이를 swap-out 이라 한다.
- swap device에 옮겨진 프로세스가 다시 동작할 시, 이 프로세스를 다시 메인메모리에 옮겨야 하는데 옮기는 것을 swap-in 이라 한다.
- 위 일련의 과정을 swapping이라 명칭한다.
- Context Switching
- CPU를 할당받는 프로스세스를 변경하는것을 의미한다.
- Scheduler(CPU Scheduler)
- Ready Queue에서 대기중인 프로세스들에 대해서 어느 프로세스를 먼저 CPU 할당할 것인지를 결정하는 것
- Dispatcher
- Scheduler가 선택한 프로세스를 실행하도록 PCB 블록의 여러가지 상태 및 MMU 레지스터 값들을 변경하는 것
- Context Switching Overhead
- Overhead : 부담
- 프로세스를 변경하는 과정에서 많은 과정들이 일어나기 때문에 부담이 많이 된다.
- 최대한 줄어야 함
다음 차시에서 스케줄링 방법들에 대해서 알아보도록 하겠습니다.