ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] CPU Scheduling
    강의/운영체제-반효경 2024. 2. 17. 22:52
    반응형

    CPU Scheduling

    • CPU Burst
      • CPU를 사용하는 단계
    • I/O Burst
      • I/O 작업하는 단계
    • CPU bound job : CPU를 많이 사용하는 작업
    • I/O bound job : I/O를 많이 사용하는 작업
    • CPU 스케줄링이 필요한 이유
      • I/O 가 CPU 사이에 자주 끼기 때문

    CPU Scheduler와 디스패처

    • 스케줄러 : ready 상태 프로세스 중 CPU를 줄 프로세스를 고름
    • 디스패처 : CPU 의 제어권을 스케줄러로부터 선택된 프로세스에게 넘김
      • 이 과정을 context switch라고 함
    • CPU 스케줄링 언제 필요?
      • Running → Blocked (I/O)
      • Running → Ready (할당 시간 만료 timer interrupt)
      • Blocked → Ready (I/O 완료 후 인터럽트)
      • Terminate

    비선점, 선점으로 크게 두가지 분류를 할 수 있음

    성능 척도 (Scheduling Criteria)

    • 어떤 알고리즘이 좋은지 판별하기 위한 척도
    • 시스템 입장
      • CPU utilization (이용률) : 전체 시간 중에 CPU가 놀지 않고 일한 비율
      • Throughput (처리량) : 단위 시간 당 몇개의 작업을 완료했나
    • 프로그램 입장 (고객 입장)
      • Turnaround time (소요 시간, 반환 시간) : CPU 쓰러 들어와서 다쓰고 나갈 때가지 걸린 시간 (대기 시간 포함)
      • Waiting time (대기 시간) : CPU를 쓰기 위해 기다린 시간
      • Response time (응답 시간) : 레디 큐에 들어와서 처음으로 CPU를 얻기까지 걸린 시간

    FCFS (First-Come-First-Served)

    • 비선점
    • 먼저 온게 먼저
    • 앞에 어떤 프로세스가 버티냐에 따라 상당히 다른 퍼포먼스
    • 긴 프로세스 떄문에 짦은 프로세스가 많이 대기하는 것 → Convoy effect

    SJF (Shortest-Job-First)

    • 비선점, 선점 두가지 버전 존재 (선점은 SRJF)
    • CPU burst time이 가장 짧은 프로세스에게 할당
    • 평균 대기 시간이 가장 짧음 (선점형의 경우)
    • 문제점
      • Starvation : 긴 프로세스는 계속 CPU 할당을 못받음
      • CPU 사용 시간을 미리 알수 없음
        • 추정을 통해서 해결 → 과거의 CPU burst time을 이용하여 추정

    Priority Scheduling

    • 우선순위 높은 프로세스에게 CPU 할당
    • 선점, 비선점 두가지 다 가능
    • SJF 도 일종의 priority scheduling
    • 문제
      • 기아 현상
    • Solution
      • aging : 오래 기다리면 우선순위를 조금씩 높여주는 것

    Round Robin (RR)

    • 각 프로세스에 동일한 크기의 할당 시간(time quantum)을 줌
    • 보통 10 ~ 100 밀리세컨드
    • 할당 시간이 끝나면 선점되고 큐의 맨뒤로
    • 응답 시간이 좋음
    • 어떤 프로세스도 (n - 1)q time unit 이상 기다리지 않는다
    • 성능
      • q 가 크면 → FCFS와 다를게 없음
      • q 가 작으면 → context switch 오버헤드 높음

    Multilevel Queue

    • 레디 큐가 여러개
    • 위로 갈수록 우선순위 높음
      • 시스템 프로세스
      • interactive 프로세스
      • interactive editing process
      • batch process
      • student process
    • foreground (interactive)
    • background (batch - no human interaction)
    • 각 큐마다 독립적인 스케줄링 알고리즘 가짐
      • foreground - RR
      • background - FCFS
    • 큐끼리의 스케줄링도 필요
      • 고정 우선순위 스케줄링
        • foreground 다 끝나면 background
        • 기아 현상 야기
      • 타임 슬라이스
        • 각 큐에 CPU time 적절 비율로 할당

    Multilevel Feedback Queue

    • 프로세스가 다른 큐로 이동 가능
    • aging을 구현하는 하나의 방법
    • 상위 큐일수록 퀀텀이 짧음 → 맨 아래는 FCFS
    • 처음 프로세스는 우선순위 가장 높음
    • 다 끝내지 못할 시 하나씩 강등됨

    Multiple-processor scheduling

    • CPU가 여러 개인 경우의 스케줄링
    • Homogeneous processor
      • queue에 한줄로 세워서 각 프로세서가 알아서 꺼내감
      • 반드시 특정 프로세서에서 수행되어야하는 작업의 경우 문제가 복잡해짐
    • Load sharing
      • 일부 프로세서에 쏠리지 않도록 부하 공유하는 메커니즘
      • 별개 큐 vs 공동 큐
    • Symmetric Multiprocessing (SMP)
      • 각 프로세서가 각자 알아서 스케줄링
    • Assymmetric multiprocessing
      • 하나의 프로세서가 시스템 데이터 접근, 공유 책임지고 나머지 프로세서는 이를 따름

    Real-Time Scheduling

    • hard real-time system
      • 정해진 시간 안에 반드시 끝내도록 스케줄링해야함
    • soft real-time system
      • 일반 프로세스에 비해 높은 priority를 갖도록 해야 함
      • 데드라인 완전 엄수까지는 아님

    Thread Scheduling

    • Local Scheduling
      • ULT 의 경우 사용자 수준의 스레드 라이브러리에 의해 어떤 스레드를 스케줄할지 결정
    • Global Scheduling
      • KLT의 경우 일반 프로세스와 마찬가지로 커널의 단기 스케줄러가 어떤 thread를 스케줄할지 결정
    반응형

    '강의 > 운영체제-반효경' 카테고리의 다른 글

    [운영체제] Memory Management  (0) 2024.02.17
    [운영체제] Deadlock  (1) 2024.02.17
    [운영체제] Process Synchronization  (0) 2024.02.17
    [운영체제] Process Management  (0) 2024.02.17
    [운영체제] Process  (0) 2024.02.17
Designed by Tistory.