2020. 12. 20. 12:40ㆍ프로그래밍/운영체제
📚 CPU 스케줄링(CPU Scheduling)
매 시점 어떠한 프로세스에게 CPU를 할당해 작업을 처리할 것인지를 결정한다.
* 프로세스: 메모리에 올려져서 실행중인 프로그램
* 스케줄러: 어떤 프로세스에게 자원을 할당할지를 결정하는 OS 커널의 모듈(프로세스 실행 관리)
🔔 CPU 스케줄링의 목표
CPU를 가장 효율적으로 사용하면서도 특정 프로세스가 불이익을 당하지 않도록 하는 것이다.
📖 대표적인 CPU스케줄링 기법
선입선출(FIFO), 라운드 로빈(Round Robin), 우선순위 기법(Priority)
1.FIFO 스케줄러
- 먼저 CPU를 사용하기 위해 도착한 프로세스를 먼저 처리해주는 방식.
ex. 일상 생활에서 줄서기를 하는 것과 유사
- CPU 자체의 효율적인 사용 측면에서는 문제가 없지만 전체 시스템 입장에서는 비효율적인 결과를
초래 할 가능성이 있다.
➡ 단점을 보완하고자 고안된 기법이 라운드로빈 기법
- 가장 간단한 스케줄러 (배치처리시스템)
- FCFS(First Come First Served) 스케줄러
2. Round Robin 스케줄러
- CPU를 한 번 할당받아 사용할 수 있는 시간을 일정한 고정된 시간으로 제한하여 정해진 시간이
지나면 CPU를 내어놓고 CPU의 서비스를 기다리는 줄의 제일 뒤에 가서 기다려야 한다.
➡ 무작정 오래 기다려야 하는 상황을 막을 수 있다.
- 1회 사용할 수 있는 할당시간은 수 밀리 세컨드(ms) 정도의 단위를 사용한다.
- 시분할 시스템 기반
3.우선순위 기반 스케줄러
- Priority-Based 스케줄러
.정적 우선순위: 프로세스마다 우선순위를 미리지정
.동적 우선순위: 스케줄러가 상황에 따라 우선순위를 동적으로 변경
- 수행 대기중인 프로세스들에게 우선순위를 부여하고 우선순위가 높은 프로세스에게 CPU를 먼저
할당하게 된다.
- 상대적으로 더 중요한 프로세스에게 우선순위를 높게 부여하여 CPU를 먼저 획득할 수 있도록
하는 것이 우선순위 스케줄링의 철학이라 할 수 있다.
4.최단작업우선(SJF) 스케줄러
- 가장 프로세스 실행시간이 짧은 것부터 먼저 실행시키는 알고리즘
- Shortest Job First 스케줄러
- 실제로 실행시간을 미리 파악하기는 힘들다!
※ 해당 포스팅은「운영체제와 정보기술의 원리(반효경 저)」책 내용이 일부 참고 되었습니다.
'프로그래밍 > 운영체제' 카테고리의 다른 글
[OS] 선점형과 비선점형 스케쥴러 (0) | 2020.12.20 |
---|---|
[OS] 프로세스 구조와 상태 - running, ready, blocked (0) | 2020.12.20 |
[OS] 프로세스 스케줄링 - 배치 처리 시스템, 시분할 시스템, 멀티태스킹 (0) | 2020.12.20 |
[OS] 운영체제의 계층구조, 사용자와 커널 모드 (0) | 2020.12.20 |
[OS] 운영체제 역할 (0) | 2020.12.20 |