프로세스의 CPU 동작
CPU는 메모리에서 명령을 가져와서 실행합니다.
CPU에서 수행되는 로드, 저장 및 읽기와 같은 명령이 있고 외부 하드웨어 장치에 액세스하여 수행되는 작업이 있습니다.
모든
- CPU 버스트: CPU로 실행 중인 작업
- 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이면 중단된 프로세스로 돌아가지 않고 원래 친구에게 보냅니다.
- 기본적으로 I/O가 완료되면 Ready 상태로 전환되므로 이전에 중단된 프로세스로 돌아갑니다.
- 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를 받기까지의 대기 시간