-
[OS] CPU 스케줄링 - 1 (CPU 스케줄러, 스케줄링 성능평가)Computer Science/OS 2023. 1. 17. 21:32
CPU
프로그램의 기계어 명령을 실제로 수행하는 컴퓨터 내의 중앙 처리 장치
사용자 프로그램이 수행되는 과정 = CPU 과정 + I/O 작업의 반복(입출력 작업)
CPU 버스트(burst)
사용자 프로그램이 CPU를 직접 가지고 빠른 명령을 수행하는 일련의 단계
I/O 버스트(burst)
I/O 요청이 발생해 커널에 의해 입출력 작업이 요청 된 후 완료되어 다시 CPU 버스트로 돌아가기까지 일어나는 일련의 작업
CPU 스케줄러
- 준비 상태에 있는 프로세스들 중 어떠한 프로세스에게 CPU를 할당할지 결정하는 운영체제의 코드
- CPU 스케줄러 방식
- 비선점형 방식
: 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행 보장(처리시간 예측 용이함) - 선점형 방식
: OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리시간 예측 어려움)
- 비선점형 방식
스케줄링 성능 평가
스케줄링 기법의 성능을 평가하기 위해 여러 지표들이 사용된다. 이러한 지표들은 크게 시스템 관점의 지표와 사용자 관점의 지표로 나누어 볼 수 있다.
시스템 관점의 지표
- CPU 이용률(CPU uilization)
- 전체 시간 중에서 CPU가 일을 한 시간의 비율
- 전체 시간 중에서 CPU가 일을 한 시간의 비율
- 처리량(throughput)
- 주어진 시간 동안 준비 큐에서 기다리고 있는 프로세스 중 몇개를 끝마쳤는지(CPU 버스트를 완료한 프로세스의 개수)
- 주어진 시간 동안 준비 큐에서 기다리고 있는 프로세스 중 몇개를 끝마쳤는지(CPU 버스트를 완료한 프로세스의 개수)
사용자 관점의 지표
- 소요시간(turnaround time)
- 프로세스가 CPU를 요청한 시점부터 자신이 원하는 만큼 CPU를 다쓰고 CPU 버스트가 끝날 때까지 걸린 시간 → 준비 큐에서 기다린 시간과 실제로 CPU를 사용한 시간의 합
- 프로세스가 CPU를 요청한 시점부터 자신이 원하는 만큼 CPU를 다쓰고 CPU 버스트가 끝날 때까지 걸린 시간 → 준비 큐에서 기다린 시간과 실제로 CPU를 사용한 시간의 합
- 대기시간(waiting time)
- CPU 버스트 기간 중 프로세스가 준비 큐에서 CPU를 얻기 위해 기다린 시간의 합
- CPU 버스트 기간 중 프로세스가 준비 큐에서 CPU를 얻기 위해 기다린 시간의 합
- 응답시간(response time)
- 프로세스가 준비 큐에 들어온 후 첫번째 CPU를 획득하기까지 기다린 시간
- 프로세스가 준비 큐에 들어온 후 첫번째 CPU를 획득하기까지 기다린 시간
'Computer Science > OS' 카테고리의 다른 글
[OS] Race Condition (0) 2023.01.17 [OS] CPU 스케줄링 - 2 (스케줄링 알고리즘) (0) 2023.01.17 [OS] 프로세스의 생성과 프로세스 간의 협력 (0) 2023.01.12 [OS] 쓰레드와 멀티쓰레드 (0) 2023.01.05 [OS] 운영체제 프로세스, 스케줄러 (0) 2022.12.29 - 준비 상태에 있는 프로세스들 중 어떠한 프로세스에게 CPU를 할당할지 결정하는 운영체제의 코드