C언어로 구현한 CPU스케줄러 보고서
- 최초 등록일
- 2019.04.10
- 최종 저작일
- 2015.05
- 15페이지/ MS 워드
- 가격 2,000원
소개글
운영체제에서 주요 주제로 다루게되는 CPU스케줄러를 C언어를 사용하여 6개의 알고리즘으로 구현해보는 과제에 대한 최종 보고서이다.
목차
Ⅰ. 서론
1. CPU 스케줄러
2. 스케줄링 알고리즘
1) FCFS
2) Non- Preemptive SJF
3) Primitive SJF
4) Non- Preemptive Priority
5) Primitive Priority
6) Round Robin
Ⅱ. 본론
1. 내가 구현한 스케줄러의 구성 요소
2. 각 알고리즘에 대한 실행결과
Ⅲ. 결론
1. 프로젝트 수행 소감
본문내용
√ CPU 스케줄러
스케줄링이란 운영체제가 CPU에게 가장 효율적인 일 처리를 위해 다수의 process들의 처리되는 순서와 시간을 할당해주는 일종의 알고리즘을 말한다. 단일 처리기 시스템에서는 한 순간에 오직 한 개의 프로세스만이 CPU에게 할당되지만, 다중 프로세스는 그렇지 않다. 예를 들어 하나의 프로세스에서 I/O가 발생하면 그 프로세스가 I/O 작업을 완료할 때까지 CPU가 한가로운 상태에 있는데 이는 자원의 굉장한 낭비이다. 그래서 어떤 프로세스가 I/O작업을 할 동안 대기 상태에 있던 다른 프로세스를 CPU에 할당한다. 이러한 일련의 과정들을 CPU 스케줄링이라고 하고 그 과정을 실행하는 주체가 CPU 스케줄러이다.
CPU Burst & I/O Burst
프로세스의 실행은 CPU에서 실행되는 상태와 I/O대기의 상태로 나눌 수 있다. CPU Burst 가 일어나면 프로세스가 CPU에 할당되고 그러다가 I/O Burst가 일어나면 그 프로세스는 I/O 대기 상태가 된다. I/O가 종료된다면 그 프로세스는 다시 CPU를 할당 받기 위한 대기 상태를 가질 것이고 같은 상황이 몇 번 발생하다가 모든 일을 마치면 종료 될 것이다. 프로세스 각각의 특징에 따라 I/O Burst와 CPU Burst시간의 특징이 달라진다. 이 특징들은 프로세스를 스케줄링 할 때 알고리즘 선택에 있어 큰 영향을 미친다.
Preemptive & Non- Preemptive
CPU 스케줄링에는 다양한 알고리즘이 존재한다. 그 알고리즘을 분류하는 방법에는 다양한 분류 기준이 있지만 그 중에서 선점(Preemptive)와 비선점(Non- Preemptive)으로 구분할 수 있다. 선점 스케줄링 방식은 먼저 CPU를 차지한 프로세스가 본인의 일을 끝내기 전 까지는 계속 CPU를 할당 받는 것을 보장해주는 방식이다.
참고 자료
없음