[Computer Science]/[운영체제(OS)]

[운영체제(OS)] 3-2) 프로세스 스케쥴링

극꼼 2023. 1. 11. 22:37
반응형


 

<스케쥴링>

- 스케쥴링의 목적 : 대기 시간을 최소화, 최대한 공평하게 메모리를 프로세스들에게 분배.

 

- 스케쥴링 큐 종류

1) Job Queue : 프로세스가 시스템에 들어온 상태이며, 현재 시스템 내에 있는 모든 프로세스를 관리합니다. (메모리에 올라가있지 않은 프로세스도 포함)

2) Ready Queue : 준비 완료 상태에서 CPU에 할당받기를 기다리는 프로세스들. 여기 있는 프로세스들을 줄 세우는 방법으로 스케쥴링 알고리즘을 사용합니다.

3) Device Queue (I/O 대기 큐) : 특정 입출력 장치를 대기하는 프로세스들의 리스트. 디바이스 큐에 속한 프로세스는 blocked상태가 되고, 장치 컨트롤러가 interrupt를 발생시키면 준비 상태로 바뀌어 Ready Queue로 이동합니다.

 


<프로세스 스케쥴러>

: CPU에서 실행 가능한 여러 프로세스들 중 하나의 프로세스를 선택하는 역할.(Ready Queue에 넣을 프로세스)

: 새로운 프로세스는 CPU에 할당받을 때까지 레디큐에 놓이게 됩니다. 상황에 따라 입출력 요청을 하거나, 자식 프로세스를 생성하거나, interrupt에 의해 다시 레디큐로 가는 등 동작을 합니다.

 

- 스케쥴러 

1) 장기 스케쥴러 : Job Scheduler라고도 부르며, 어떤 프로세스를 Ready Queue에 올릴지 결정합니다. 분 단위로 호출되기 때문에 수행 속도가 느려도 됩니다. 장기 스케쥴러는 메모리상의 프로세스의 개수를 제어하는데,  프로세스가 시스템을 떠나게 되면 새로 프로세스를 메워줍니다.

2) 단기 스케쥴러 : 레디된 프로세스 중 하나를 선택하여 CPU에 할당. 일반적으로 스케쥴러라 하면 단기 스케쥴러를 의미하며, 미리 정한 스케쥴링 알고리즘에 따라 CPU에 프로세스를 할당합니다. 단기 스케쥴러는 ms 이하의 시간 단위로 매우 빈번하게 호출되기 때문에 수행 속도가 빨라야 합니다.

3)  중기 스케쥴러 : 일부 운영체제에서 도입. 메모리에 많은 수의 프로세스가 적재되어 프로세스 당 보유 메모리 양이 극도로 적어지면 시스템 성능이 저하됩니다. 이럴 때 메모리에 올라와 있는 프로세스 중 일부(blocked 상태의 프로세스부터)로부터 메모리를 뺏고, 그 내용을 디스크의 Swap 영역에 저장해둡니다. 나중에 다시 불러와서 중단된 부분부터 실행하는 것을 스와핑(Swapping)이라 합니다.

반응형