본문 바로가기

운영체제

[운영체제 OS] 프로세스 스케줄링 - 스케줄링 큐란?

다중 프로그래밍(시분할)의 목적

  • 각 프로그램이 실행되는 동안 사용자가 상호작용할 수 있도록 프로세스들 사이에서 CPU를 빈번하게 교체하는 것
  • 교체는 왜 하는가? 단일처리기 시스템에서는 실행 중인 프로세스가 한 개 이상 있을 수 없기 때문.

 

스케줄링 큐(Scheduling Queues)

크게 두가지 큐가 있다. - 준비완료 큐, 장치 큐

 

이 중 준비완료 큐에 대해 알아보겠다. 

 

 

준비완료 큐

  • 준비완료 상태에서 실행을 대기하는 프로세스들은 준비완료 큐에 있다.
  • 이 큐는 일반적으로 연결 리스트로 저장된다.
  • 준비완료 큐의 헤더는 리스트의 첫 번째와 마지막 PCB를 가리키는 포인터를 포함한다.

준비완료 큐

 

 

 

 

새로운 프로세스는 처음에 준비완료 큐에 놓인다. 프로세스는 cpu를 할당받을(dispatch) 때까지 준비완료 큐에서 대기한다.

일단 프로세스에 cpu가 할당되어 실행되면, 다음 여러 가지 사건들 중 하나가 발생할 수 있다.

  • 프로세스가 입출력을 요청하여 입출력 큐에 넣어질 수 있다.
  • 프로세스가 새로운 서브프로세스를 생성하고 그 프로세스의 종료를 기다릴 수 있다.
  • 프로세스가 인터럽트의 결과에 따라 강제로 cpu로부터 제거되어 준비완료 큐에 다시 놓일 수 있다.

 

프로세스 스케줄링을 표현하는 큐잉 도표

 

 

프로세스는 종료될 때까지 이 주기를 계속하며, 종료되면 모든 큐에서 삭제되고 그 자신의 PCB와 자원을 반납(deallocate)한다.

'운영체제' 카테고리의 다른 글

[운영체제 OS] 프로세스 개념, 프로세스 상태  (0) 2020.09.12