Skip to content

Latest commit

 

History

History
38 lines (16 loc) · 3.64 KB

[#9] 프로세스 스케줄러의 종류에 대해서 설명해주실 수 있나요.md

File metadata and controls

38 lines (16 loc) · 3.64 KB

프로세스 스케줄러의 종류에 대해서 설명해주실 수 있나요?

스케줄러란 어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 코드를 의미하며 스케줄러는 수행하는 역할과 목적에 따라서 단기, 중기, 장기 스케줄러로 구분할 수 있습니다.

장기 스케줄러는 어떤 프로세스를 준비 큐에 진입시킬지를 결정하는 역할을 수행하는 스케줄러로써 디스크에 존재하는 프로그램에게 메모리를 할당하는 문제에 관여하게 됩니다. 이 때문에 장기 스케줄러는 메모리에 동시에 올라가 있는 프로세스의 수를 조절하는 역할을 수행하고 있는데 현대의 시분할 시스템에서는 하드웨어의 발전으로 인하여 메모리의 용량이 비교적 여유로워졌기 때문에 별도의 장기 스케줄러를 두지 않고 바로 프로세스에 메모리를 할당하여 준비큐에 넣어주게 됩니다.


단기 스케줄러는 CPU 스케줄러라고도 하며 준비 큐에 존재하는 프로세스 중에서 어떠한 프로세스에 CPU를 할당할 것인지 결정하는 역할을 수행합니다. 시분할 시스템에서 타이머 인터럽트가 발생하면 단기 스케줄러가 호출되게되며 단기 스케줄러는 매우 빈번하게 호출되기 때문에 충분히 빠른 속도로 수행되어야 합니다.


중기 스케줄러는 메모리에 적재된 프로세스의 수를 동적으로 관리하기 위한 스케줄러로써 메모리에 많은 수의 프로세스가 적재되어 프로세스 마다 보유하고 있는 메모리의 용량이 극도로 적어지게 되면 CPU 수행에 필요한 주소 공간을 메모리에 올려놓기 어려운 상황이 발생하는데 이러한 상황이 발생하면 디스크 IO가 수시로 발생하여 시스템의 성능이 심각하게 저하될 수 있습니다. 때문에 중기 스케줄러를 사용하여 메모리에 존재하는 프로세스 중 일부를 선정하여 메모리에 적재된 내용을 디스크의 스왑 영역에 저장하여 저장해두는 역항르 수행합니다.


일반적으로 봉쇄 상태에 있는 프로세스들은 당장에 CPU를 획득할 가능성이 적기 때문에 해당 프로세스들을 우선순위로하여 디스크로 스왑아웃 시키며 그 다음 우선순위로는 타이머 인터럽트로 인하여 준비 큐로 이동하는 프로세스들을 대상으로하여 스왑아웃을 수행합니다.


각각의 스케줄러에 따라서 프로세스의 상태가 어떻게 변하는지 설명해주실 수 있나요?

장기 스케줄러는 디스크에 존재하는 프로그램 중 어떤 프로그램에게 메모리를 할당할 지를 결정하는데 관여하는 역할을 수행하는데 이 때 장기 스케줄러에 의해 메모리가 할당된 프로세스는 new 상태에서 ready 상태로 변하게 됩니다.


단기 스케줄러는 어떠한 프로세스에 CPU를 할당할 것인지를 결정하는데 관여하는 역할을 수행하는데 이 때 단기 스케줄러에 의해 CPU가 할당된 프로세스는 ready 상태에서 running 상태로 변하게 됩니다.


중기 스케줄러는 메모리에 적재된 프로세스의 수를 동적으로 관리하기 위하여 당장에 CPU 할당 가능성이 적은 프로세스들을 선정하여 디스크의 스왑 영역에 저장하는 역할을 수행하는데 이 때 중기 스케줄러에 의해 메모리 할당이 해제된 프로세스들은 각각 ready 또는 blocked 상태에서 suspended ready , suspended blocked 상태로 변하게 됩니다.