CPU Scheduling

프로세스의 CPU 동작

CPU는 메모리에서 명령을 가져와서 실행합니다.

CPU에서 수행되는 로드, 저장 및 읽기와 같은 명령이 있고 외부 하드웨어 장치에 액세스하여 수행되는 작업이 있습니다.

모든

  1. CPU 버스트: CPU로 실행 중인 작업
  2. I/O 버스트: I/O 장치와 함께 발생하는 동작입니다.

CPU 스케줄링이 필요한 이유

위와 같이 CPU에는 CPU를 많이 사용하는 작업뿐만 아니라 I/O 작업도 있으므로 적절히 분배해야 합니다.

또한 I/O 작업은 사람과의 소통이 중요한데 이러한 작업을 자주 하면 소통이 원활해진다.

  • I/O 바운드 프로세스
    • CPU 시간 및 계산 시간보다 더 많은 I/O 시간이 필요한 작업
  • CPU 바운드 프로세스
    • 전산 활동

CPU 스케줄러

  • Ready 상태의 프로세스 중에서 이번에 CPU를 부여할 프로세스를 선택합니다.

Dispatcher: CPU 스케줄러의 동기 프로세스

  • CPU 스케줄러에서 선택한 프로세스로 CPU 제어를 이전합니다.

  • 이를 컨텍스트 전환이라고 합니다.

CPU 스케줄링이 필요한 경우

비선점적 사례

  • 실행 중 -> 차단됨(I/O를 요청하는 시스템 호출)

예방하는 경우

  • 실행 중 -> 준비됨(타이머 일시중지됨)
    • 기본적으로 I/O가 완료되면 Ready 상태로 전환되므로 이전에 중단된 프로세스로 돌아갑니다.

    • I/O 요청을 보내는 우선 순위가 1이면 중단된 프로세스로 돌아가지 않고 원래 친구에게 보냅니다.

  • Blocked -> Ready (I/O 완료 후 H/W 인터럽트)

바운드 프로세스

CPU가 실행 중일 때 CPU 버스트와 I/O 버스트가 번갈아 발생하며 일반적으로 프로세스는 먼저 CPU 버스트를 수행한 다음 I/O 버스트를 수행합니다.

CPU 바운드 프로세스: 긴 CPU 버스트와 짧은 I/O 버스트가 있는 프로세스

  • CPU 집약적인 컴퓨팅 작업을 처리함에 따라 CPU 버스트가 증가합니다.

  • 그러나 I/O 버스트가 짧아집니다.

I/O 바운드 프로세스: CPU 버스트가 짧고 I/O 버스트가 긴 프로세스

  • CPU를 다른 프로세스에 주고 대기

계획 기준

스케줄링을 위한 많은 알고리즘이 있으며 이를 결정하는 데 다음 기준이 사용됩니다.

(시스템 기반): CPU를 최대한 활용하고 있습니까?

1. CPU 사용률: 사용 가능한 CPU가 중단 없이 작동합니까?

2. 처리량: 얼마나 처리했습니까?

(가공 후)

3. 처리시간 : 처리가 종료될 때까지의 시간

4. Waiting Time : CPU를 얻기 위해 대기하는 시간

5. 응답 시간: 첫 번째 CPU를 받기까지의 대기 시간