일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우선순위
- 페이지 부재율
- 단편화
- 추상화
- 컴퓨터구조
- 페이지 대치
- BOJ
- 운영체제
- 프로세스
- 스케줄링
- 동기화
- Oracle
- mips
- 인터럽트
- fork()
- 교착상태
- concurrency
- PYTHON
- 알고리즘
- 스레드
- 가상 메모리
- ALU
- mutex
- 페이징
- Algorithm
- 기아 상태
- 세마포어
- 백준
- 트랩
- 부동소수점
- Today
- Total
봉황대 in CS
[Chapter 5. CPU 스케줄링] 스케줄러 본문
[Chapter 5. CPU 스케줄링] 스케줄러
등 긁는 봉황대 2022. 7. 16. 22:21* 본 글은 '운영체제(Operating System: Concepts) 9th edition'의 내용과 2021학년도 1학기에 수강한 '운영체제' 과목 강의 내용을 함께 정리하여 작성하였습니다.
스케줄러 (Scheduler)
컴퓨터가 가진 자원은 한정되어 있고, 이를 여러 프로세스가 효율적으로 사용하기 위해서는 스케줄러(Scheduler)가 필요하다.
스케줄러는 다음 실행 시간에 실행할 수 있는 프로세스들 중 하나를 선택해주는 역할을 해준다.
스케줄러에는 3가지 종류(장기, 중기, 단기 스케줄러)가 있다.
장기 스케줄러 (Long-term scheduler) / 작업 스케줄러 (Job scheduler)
어느 프로그램을 하드 디스크로부터 메모리로 적재할지를 결정하는 스케줄러
일괄처리(batch) 큐를 별도로 유지하는 경우에 필요하다.
일괄처리 시스템에서는 즉시 실행될 수 있는 프로세스의 양이 정해져 있다.
만약 그 제한보다 많은 프로세스들이 제출되었을 경우에는 우선 해당 프로세스들을 대용량 메모리에 저장한다.
이 풀에서 프로세스들을 선택하여 메모리로 적재하게 되는데, 이 작업을 장기 스케줄러가 하는 것이다.
즉, 장기 스케줄러는 다중 프로그램의 정도(= 메모리에 있는 프로세스들의 수)를 제어한다.
장기 스케줄러는 입출력 중심 프로세스와 CPU 중심 프로세스를 적절하게 혼합하여서 스케줄링하는 것이 중요하다.
1. 모든 프로세스들이 입출력 중심일 경우 : 준비 완료 큐는 항상 비게 되어 단기 스케줄러는 할 일이 없게 된다.
2. 모든 프로세스들이 CPU 중심일 경우 : 입출력 대기 큐는 항상 비게 되어 장치들이 사용되지 않을 것이다.
* 입출력 중심 프로세스 (I/O Bound) : 연산보다 입출력 실행에 더 많은 시간을 소요하는 프로세스
* CPU 중심 프로세스 (CPU Bound) : 연산에 시간을 더 소요하고 입출력 요청을 드물게 발생시키는 프로세스
단기 스케줄러 (Short-term scheduler) / CPU 스케줄러 (CPU scheduler)
메모리 내에서 준비 상태에 있는 프로세스들 중 하나를 선택하여 CPU를 할당하는 스케줄러
일반적으로 스케줄러라고 하면 단기 스케줄러를 말한다.
중기 스케줄러 (medium-term scheduler)
가상 메모리 체제에서는 너무 많은 프로세스가 메모리에 적재되면
하드 디스크 입출력이 과다해져 시스템이 거의 멈추는 현상이 발생한다. - 스레싱(Thrashing)
이를 방지하기 위해서 중기 스케줄러는 스와핑(Swapping)을 한다.
1. 메모리에 있는 일부 프로세스들을 디스크로 내보냄 (swap-out)
2. 메모리에 여유가 생기면 다시 프로세스를 메모리에 적재하여 중단되었던 지점에서부터 실행을 재개 (swap-in)
'Computer Science & Engineering > Operating System' 카테고리의 다른 글
[Chapter 5. CPU 스케줄링] 비선점/선점 스케줄링과 스케줄링 알고리즘(FCFS, SJF, 우선순위) (0) | 2022.07.17 |
---|---|
[Chapter 5. CPU 스케줄링] CPU 스케줄링과 성능 평가의 기준 (0) | 2022.07.16 |
[Chapter 4. 스레드] Windows 스레드와 Linux 스레드 (0) | 2022.07.16 |
[Chapter 4. 스레드] 스레드와 관련된 문제들 (0) | 2022.07.15 |
[Chapter 4. 스레드] 암묵적 스레딩 (스레드 풀, OpenMP, GCD) (0) | 2022.07.14 |