일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- MSA
- Proxy
- IT
- design pattern
- 자바
- 알고리즘
- OS
- 네트워크
- 백준
- Heap
- Kafka
- Java
- Algorithm
- 운영체제
- react
- spring webflux
- 자료구조
- mongoDB
- C
- c언어
- 컴퓨터구조
- Galera Cluster
- 디자인 패턴
- redis
- JPA
- MySQL
- Data Structure
- 파이썬
- Spring
- JavaScript
Archives
- Today
- Total
시냅스
CPU 스케줄링 CPU Scheduling 본문
CPU 스케줄링 CPU Scheduling
- 멀티프로그래밍의 목적
- CPU 이용률 최대화
- 단일 코어라면, 빨간 박스의 상태에서 CPU는 I/O 요청이 완료될 때까지 유휴상태를 갖는다. -> 비효율적!
- 대기 시간 최소화
- CPU 이용률 최대화
CPU - I/O 버스트 사이클
CPU Scheduler
- CPU가 유휴 상태가 될 때마다 Ready queue에 있는 프로세스를 하나 선택한다.
- 선택 절차는 CPU Scheduler에 의해 선택된다.
- Queue에 있는 레코드들은 일반적으로 PCB이다.
- 선택 방법
- FIFO Queue
- Linked list, Binary list
- Priority Queue
Preemptive(선점형) vs Nonpreemptive(비선점형)
- preemptive 조건에 의해서 스케쥴러가 context switch를 실행한다.
- 아래 2번, 3번
- nonpreemptive 어떤 프로세스가 선점하면 프로세스가 종료되거나 switch 돼야 바꿀 수 있다.
- 아래 1번, 4번
- CPU 스케줄링 결정은 다음의 네 가지 상황에서 가능하다.
- 1. running -> waiting (nonpreemptive)
- I/O 요청 또는 자식 프로세스의 종료를 기다리는 상태
- 2. running -> ready (chioce preemptive vs nonpreemptive)
- 예외, 입출력, 이벤트 등의 인터럽트 발생
- 3. wating -> ready (chioce preemptive vs nonpreemptive)
- I/O 요청 종료로 ready queue 진입
- 4. terminate (nonpreemptive)
- 1. running -> waiting (nonpreemptive)
디스패처 Dispatcher
- CPU core의 control을 넘겨주는 module, Context switching을 실제로 실행한다.
- Dispatcher가 할 일
- context를 옮기는 것
- user mode로 바꾸는 것
- ready에서 대기중인 process를 running으로 resume
- scheduler는 선택만, 실제 실행은 dispatcher가 한다.
디스패처는 빨라야만 한다.
- dispatch latency(context switching 시간)가 짧아야 한다.
- vmstart 1(초단위) 3(줄)
스케줄링 기준 (Scheduling criteria)
- CPU 이용률(utilization) : CPU 이용률이 40% ~ 90% 의 범위를 가져야한다.
- 처리량(throughput) : 단위 시간당 완료된 프로세스의 개수
- 총처리 시간 (turnaround time) : 프로세스 제출 시간과 완료 시간의 간격
- 대기 시간 (wationg time) : 준비 큐에서 대기하면서 보낸 시간
- 응답 시간 (response time) : 첫 번째 응답이 나올 때까지의 시간
'운영체제' 카테고리의 다른 글
스레드 스케줄링 Thread Scheduling (0) | 2022.04.21 |
---|---|
스케줄링 알고리즘 Scheduling algorithm (0) | 2022.04.21 |
멀티 쓰레딩 Thread and Concurrency (0) | 2022.04.12 |
TIL : OS Thread (0) | 2021.11.19 |
TIL : OS IPC 시스템의 사례 (0) | 2021.11.16 |
Comments