책읽기

[쉽게 배우는 운영체제](요약)[Part-2][Ch-4] CPU 스케줄링

pythaac 2021. 7. 22. 13:22
이 글은 "쉽게 배우는 운영체제 (조성호 지음)"을 읽고 주관적으로 작성된 글입니다.

출처 : https://www.hanbit.co.kr/store/books/look.php?p_code=B5471691739

※ 요약

  1. CPU 스케줄링
    • CPU 스케줄러가 프로세스가 생성된 후 종료될 때까지 모든 상태 변호를 조정하는 일
  2. 스케줄링의 단계
    • CPU 스케줄링의 규모에 따른 분류
    • 고수준 스케줄링
      - 시스템 내의 전체 프로세스 수를 조절
    • 중간 수준 스케줄링
      - 과부하를 막기 위해 활성화된 프로세스 수를 조절
    •  저수준 스케줄링
      - CPU에 할당하고 대기 상태로 보낼 프로세스를 결정
  3. 스케줄링 목적
    • 공평성
      - 모든 프로세스가 자원을 공평하게 나누고, 자원을 받지 못하는 프로세스가 없어야 함
    • 효율성
      - 자원의 유휴 시간을 없애고, 자원 사용을 원하는 프로세스에게 우선권을 줌
    • 안정성
      - 중요한 프로세스에 우선순위를 주고 자원을 점유/손상하려는 프로세스로부터 자원 보호
    • 확장성
      - 한정된 자원에서 프로세스가 증식해도 안정적인 시스템 유지
      - 자원이 늘어나는 경우 혜택 반영
    • 반응 시간 보장
      - 사용자를 위한 반응 시간 보장
      - 사용자는 반응 시간이 느리면 시스템이 멈춘 것으로 판단함
    • 무한 연기 방지 (Starvation)
      - 특정 프로세스의 작업이 무한히 연기되는 것을 방지
  4. 스케줄링 시 고려사항
    • 우선순위가 높은 프로세스에 CPU를 먼저 할당해야함
    • 우선순위가 높은 프로세스
      - 커널 프로세스
      - 전면 프로세스 : 사용자와 현재 상호작용(입출력)하는 프로세스(창)
      - 대화형 프로세스
      - 입출력 집중 프로세스 : I/O로 suspend되는 프로세스
    • 우선순위가 낮은 프로세스
      - 일반 프로세스
      - 후면 프로세스 : Background 프로세스 (압축 등)
      - 일괄 작업 프로세스
      - CPU 집중 프로세스 : CPU를 할당받아야 처리
  5. 다중 큐
    • 효율적인 프로세스 관리를 위해 다수의 큐를 운영하는 것
    • 준비상태 프로세스
      - 각 우선순위를 담당하는 큐를 운영
    • 대기상태 프로세스
      - 각 요구하는 입출력을 담당하는 큐 운영
  6. 스케줄링 알고리즘
    • FCFS (First Come First Start)
      - 준비 큐에 도착한 순서대로 CPU에 할당
      - 비선점형
    • SJF (Shortest Job First)
      - 실행 시간이 가장 짧은 순서대로 CPU에 할당
      - 비선점형
    • HRN (Highest Response ratio Next)
      - 대기 시간과 사용 시간을 고려하여 스케줄링
      - 우선순위 = 대기시간 + 사용시간 / 사용시간
      - 비선점형
    • RR (Round Robin)
      - 할당된 시간이 끝나면 작업중인 프로세스를 준비 큐로 push하는 방식
      - 선점형
    • SRT (Shortest Remaining Time)
      - RR기반에서 남은 작업시간이 가장 적은 프로세스를 선택하는 방식
      - 선점형
    • 우선순위 스케줄링
      - 프로세스의 우선순위를 반영하여 CPU에 할당
      - 선점형/비선점형
    • 다단계 큐 스케줄링
      - 우선순위에 따라 준비 큐를 여러개 사용
      - 비선점형
    • 다단계 피드백 큐 스케줄링
      - 다단계 큐 기반에서 CPU를 사용한 프로세스의 우선순위를 낮추는 방식

 

1. 스케줄링의 개요

1) 식당 관리자의 스케줄링

2) 스케줄링의 단계

3) 스케줄링의 목적

 

2. 스케줄링 시 고려 사항

1) 선점형 스케줄링과 비선점형 스케줄링

2) 프로세스 우선순위

3) CPU 집중 프로세스와 입출력 집중 프로세스

4) 전면 프로세스와 후면 프로세스

5) 정리

 

3. 다중 큐

1) 준비 상태의 다중 큐

2) 대기 상태의 다중 큐

 

4. 스케줄링 알고리즘

1) 스케줄링 알고리즘의 선택 기준

2) FCFS 스케줄링

3) SJF 스케줄링

4) HRN 스케줄링

5) 라운드 로빈 스케줄링

6) SRT 우선 스케줄링

7) 우선순위 스케줄링

8) 다단계 큐 스케줄링

9) 다단계 피드백 큐 스케줄링

 

5. [심화학습] 인터럽트 처리

1) 인터럽트의 개념

2) 동기적 인터럽트와 비동기적 인터럽트

3) 인터럽트 처리 과정

4) 인터럽트와 이중 모드