본문 바로가기
전공/운영체제

Ch04. CPU 스케줄링 _03) 다중 큐

by 임 낭 만 2023. 4. 2.

<쉽게 배우는 운영체제> 교재를 참고하였습니다.

준비 상태의 다중 큐

준비 상태의 다중 큐

  • 프로세스는 준비 상태에 들어올 때마다 자신의 우선순위에 해당하는 큐의 마지막에 삽입
  • CPU 스케줄러는 우선순위가 가장 높은 큐(0번 큐)의 맨 앞에 있는 프로세스 6에 CPU 할당
  • 준비 큐를 몇 개로 나눌지, 여러 개의 준비 큐에 있는 프로세스 중 어떤 프로세스에 CPU를 할당할지 결정하는 일은 스케줄링 알고리즘에 따라 달라짐

준비 상태의 다중

  • 프로세스는 중요도가 각각 다르며 프로세스 중요도는 PCB에 표시됨
  • CPU 스케줄러는 모든 프로세스 제어블록을 검색해 가장 높은 우선순위의 프로세스에 CPU를 할당
  • 그러나 매번 모든 PCB를 검색하는 것은 번거로운 일임
  • 그림[4-9]의 오른쪽의 준비 상태의 다중 큐를 나타낸 것임
  • 왼쪽그림은 정리되어 있지 않아 매번 우선순위가 높은 PCB를 검색해야 하지만, 오른쪽 그림과 같이 여러 개의 큐를 만들면 편리함

 

프로세스의 우선순위를 배정하는 방식

  • 고정 우선순위 방식 (static priority)
    • 운영체제가 프로세스에 우선순위를 부여하면 프로세스가 끝날 때까지 바뀌지 않는 방식
    • 프로세스가 작업하는 동안 우선순위가 변하지 않기 때문에 구현하기 쉽지만, 시스템의 상황이 시시각각 변하는데 우선순위를 고정하면 시스템의 변화에 대응하기 어려워 작업 효율이 떨어짐
  • 변동 우선순위 방식 (dynamic priority)
    • 프로세스 생성 시 부여받은 우선순위가 프로세스 작업 중간에 변하는 방식
    • 구현하기 어렵지만 시스템의 효율성을 높일 수 있음
    • 예) 우선 순위가 낮은 p1이 중요 자원 사용 → 자원 독점 사용하기 때문에 이 자원을 기다리는 다른 프로세스는 p1이 작업을 끝낼 때까지 기다림
    • 이때 p1 우선순위를 높이면 다른 프로세스보다 CPU를 자주 할당받게 되어 작업을 빨리 끝냄

대기 상태의 다중 큐

대기 상태의 다중 큐

  • 시스템의 효율을 높이기 위해 대기 상태에서는 같은 입출력을 요구한 프로세스끼리 모아 놓음

대기 상태의 다중 큐

 

  • 대기상태에서도 다중 큐를 사용함
  • 대기상태는 입출력이 완료되기를 기다리는 프로세스가 모여 있는 곳
  • 시스템 내에는 다양한 종류의 입출력장치가 있기 때문에 대기 상태의 프로세스를 한곳에 모아 놓으면 관리하기 불편함
  • 따라서 시스템의 효율을 고려할 때 같은 입출력을 요구한 프로세스들을 모아 놓음
  • 그림[4-10] 같은 장치의 입출력을 기다리는 프로세스의 PCB는 동일한 입출력 큐에 모여 있음
  • 예) 하드디스크 입출력을 기다리는 PCB는 모두 HDD 큐에 삽입됨
  • 하드디스크에서 완료 인터럽트가 도착하면 HDD큐에 있는 PCB를 검색하여 이 PCB의 상태를 준비상태로 바꾸고 HDD큐에서 제거 후 준비 큐로 이동함
  • 그림[4-10] 같은 장치의 입출력을 기다리는 프로세스의 PCB는 동일한 입출력 큐에 모여 있음
  • 예) 하드디스크 입출력을 기다리는 PCB는 모두 HDD 큐에 삽입됨
  • 하드디스크에서 완료 인터럽트가 도착하면 HDD큐에 있는 PCB를 검색하여 이 PCB의 상태를 준비상태로 바꾸고 HDD큐에서 제거 후 준비 큐로 이동함

 

다중 큐 비교 : 준비상태의 다중 큐와 대기상태의 다중 큐는 차이가 존재함.

  • 준비상태 다중 큐
    • 한 번에 하나의 프로세스를 꺼내어 CPU를 할당
  • 대기상태 다중 큐
    • 여러 개의 프로세스 제어 블록을 동시에 꺼내어 준비 상태로 옮김
    • 시스템에는 다양한 입출력 장치가 있기 때문에 입출력이 동시에 끝날 경우 여러 개의 인터럽트가 한꺼번에 처리됨
    • 대기 큐에서는 이렇게 동시에 끝나는 인터럽트를 처리하기 위해 인터럽트 벡터라는 자료 구조 사용
    • 대기상태의 다중 큐에 있는 PCB는 큐에 삽입된 순서대로 처리되지만, 일부는 나중에 들어온 PCB 먼저 준비상태로 이동도 가능함
    • 입출력장치는 CPU나 메모리보다 느리기 때문에 작업 속도를 높이기 위해 작업순서를 바꾸는 경우가 있음

 

다중 큐

프로세스 상태와 다중 큐

댓글