11장 CPU 스케줄링

2023. 3. 29. 23:55

11-1) CPU 스케쥴링 개요

  • 운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것이 CPU 스케줄링

  • 프로세스 우선순위
    • 프로세스마다 우선순위가 다르다.
    • 우선 순위가 높은 프로세스에는 대표적으로 입출력 작업이 많은 프로세스가 있다.
    • CPU 작업이 많은 프로세스 : CPU bound process
      • 입출력 burst : 입출력장치를 기다리는 작업
    • 입출력 작업이 많은 프로세스 : IO bound process
      • CPU burst : cpu를 이용하는 작업
    • 입출력장치가 입출력 작업을 완료하기 전까지는 입출력 집중 프로세스는 어차피 대기 상태가 될 예정이라 입출력 집중 프로세스를 얼른 먼저 처리하는게 낫다.
    • 유닉스 체계 os에서 ps -el 명령을 통해 우선순위 확인 가능
      • 우선순위 관련된 항목은 PRI와 NI 번호
      • PRI 번호는 사용자가 인위적으로 조작할 수 없음, 낮은 값일수록 우선순위가 높음
      • NI 번호는 관리자와 사용자가 조작할 수 있는 우선순위 값, 낮은값일수록 우선순위가 높고 -20 부터 19까지 설정 가능
    • PCB에 우선순위가 명시되어 있음
  • 스케줄링 큐
    • 운영체제가 매번 일일이 모든 PCB를 검사하여 먼저 자원을 이용할 프로세스를 결정하는 일은 매우 번거롭다.
    • 운영체제는 프로세스들에 줄을 세워서 관리하는데, 이 줄을 스케줄링 큐로 구현하고 관리한다.
    • 대표적으로 준비 큐와 대기 큐가 있음
      • 준비 큐 (ready queue): CPU를 이용하고 싶은 프로세스들이 서는 줄
      • 대기 큐 (waiting queue): 입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 서는 줄
    • 운영체제는 PCB들이 큐에 삽입된 순서대로 프로세스를 하나씩 꺼내어 실행한다.
    • 그중 우선순위가 높은 프로세스를 먼저 실행한다.
    • 대기 큐에 있는 프로세스들은 입출력 작업이 완료되면 준비 큐로 이동된다.
  • 선점형과 비선점형 스케줄링
    • 선점형 스케줄링 : 프로세스가 CPU를 비롯한 자원을 사용하고 있더라도 운영체제가 프로세스로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식
      • 어느 한 프로세스의 자원 독점을 막고 프로세스들에 골고루 자원을 배분할 수 있음
      • 그러나 컨텍스트 스위치가 그만큼 많이 일어나니까 오버헤드 발생
    • 비선점형 스케줄링 : 다른 프로세스가 끼어들 수 없는 스케줄링 방식
      • 오버헤드는 선점형보다 줄지만 대기 시간이 길어질 것

11-2) CPU 스케줄링 알고리즘

  • 스케줄링 알고리즘 종류
    • 선입선출 (FCFS : Fisrt Come, First Served)
    • 최단 작업 우선 스케줄링(SJF 스케줄링 : Shortest Job First)
    • 라운드 로빈(round robin)
    • 최소 잔여 시간 우선 스케줄링 (SRT : Shortest Remaining Time)
    • 우선순위 스케줄링(priority)
    • 다단계 큐 스케줄링(multilevel queue)
    • 다단계 피드백 큐 스케줄링

' > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글

14장 가상메모리  (0) 2023.04.03
12장 프로세스 동기화  (0) 2023.03.29
10장 프로세스와 스레드  (0) 2023.03.26
9장 운영체제 시작하기  (0) 2023.03.26
8장 입출력장치  (0) 2023.03.23

+ Recent posts