OS - Cpu Scheduling - 1 / 3

YOOJUN·2023년 2월 6일

CS

목록 보기
7/18
post-thumbnail

Cpu Scheduling

Cpu and I/O Bursts in Program Execution

  • 프로그램은 Cpu Burst와 I/O Burst를 반복하면서 실행된다

CPU-burst Time 분포

  • 여러 종류의 process가 섞여 있기 때문에 CPU 스케줄링이 필요
    1. Interactivae job에게 적절한 response제공 요망
    2. CPU와 I/O장치 등 시스템 자원을 골고루 효율적으로 사용
      • 사람과 소통하는 작업에게 많이 부여

프로세스의 특성 분류

  • 프로세스는 특성에 따라 두 가지로 나뉘어진다
    1. I/O bound process
      • CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job
      • many and short CPU bursts
    2. CPU bound process
      • 계산 위주의 job
      • few very long CPU bursts

CPU Scheduler & Dispatcher

  • CPU Scheduler (운영체제 안에서 cpu스케줄링)

    Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다

  • Dispatcher

    CPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 넘긴다
    이 과정은 context switch(문맥 교환)이라고 한다

  • CPU스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다

    1. Running -> Blocked (ex. I/O 요청하는 시스템 콜)
    2. Running -> Ready (ex. 할당시간 만료로 timer interrupt)
    3. Blocked -> Ready (ex. I/O 완료 후 인터런트)
    4. Terminate
      1, 4에서의 스케줄링은 자진 반남
      2, 3은 강제로 빼앗는 반납

profile
거북이 개발자

0개의 댓글