CS 정리 | OS | 4. CPU 스케줄링 (1) | kocw 반효경 교수님

Konseo·2023년 9월 11일
0

운영체제

목록 보기
7/19

프로세스의 일생

  • CPU 작업과 IO 작업이 계속 반복됨
  • IO의 경우 오래걸리기 때문에 CPU 제어권을 빼앗기기도 함
  • load, add, read ... -> 기계어

CPU-burst Time의 분포

  • CPU bound job : CPU를 길게 쓰는 프로그램
  • IO bound job : IO가 갖은 프로그램 (유저와 인터렉션을 많이 하는 프로그램)

    누구에게 CPU 사용권을 주는게 더 좋은 것일까?
    여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다

  • interactive job 에게 적절한 response 제공 요망
  • CPU와 IO장치 등 시스템 자원을 골고루 효율적으로 사용

IO bound job에게 보통 먼저 CPU 사용권을 쥐어준다. (짧게 쓰고 IO에 의해 cpu 사용을 빠르게 끝내기 때문)

프로세스의 유형 분류

  • IO bound process
    • CPU를 잡고 계산하는 시간보다 IO에 많은 시간이 필요한 job
    • many short CPU bursts
  • CPU cound process
    • 계산 위주의 job
    • few very long CPU bursts

CPU 스케줄러 & Dispatcher

  • CPU Scheduler
    • Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다.
  • Dispathcer
    • CPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 실제로 넘긴다
    • 이 과정을 context switch(문맥 교환) 이라고 한다.
  • CPU 스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다.
    1. Running -> Blocked (ex. IO를 요청하는 시스템 콜)
    2. Running -> Ready (ex. 할당시간 만료로 timer interrput)
    3. Blocked -> Ready (ex. IO 완료 후 인터럽트)
    4. Terminate
  • 1,4에서 스케줄링은 nonpreemptive (=강제로 빼앗지 않고 자진 반납)
  • all other scheduling is preemprive (=강제로 빼앗음)

CPU 스케줄링에서의 성능 척도

  1. CPU utilization (이용률)
  2. Throughtput (처리량)
  3. Turnaround time (소요시간, 변환시간)
  • 특정 프로세스가 사용되고 기다린 전체 시간
  1. waiting time (대기 시간)
  • ready queue에서 기다린 시간의 합
  1. Response time (응답 시간)
  • process가 최초로 CPU를 얻기까지 걸린 시간
  • ex. IO작업이 끝난 후 cpu를 얻게 되기까지의 시간
  • 1,2는 시스템(cpu) 관점. 높을수록 좋음
  • 3,4,5는 유저(process) 관점. (시간은) 적을수록 좋음
profile
둔한 붓이 총명함을 이긴다

0개의 댓글