목차
목 차
1. 문제 제기 --------------------------------------- 2 page
2. 관련 연구 --------------------------------------- 4 page
3. 문제 해결 방법 -------------------------------- 8 page
4. 실행 결과 ------------------------------------- 11 page
5. 추가 및 개선할 부분과 결론 ---------------- 12 page
6. 참고 문헌 ------------------------------------- 12 page
부록 - 소스 코드 -------------------------------- 15 page
1. 문제 제기 --------------------------------------- 2 page
2. 관련 연구 --------------------------------------- 4 page
3. 문제 해결 방법 -------------------------------- 8 page
4. 실행 결과 ------------------------------------- 11 page
5. 추가 및 개선할 부분과 결론 ---------------- 12 page
6. 참고 문헌 ------------------------------------- 12 page
부록 - 소스 코드 -------------------------------- 15 page
본문내용
CPU Scheduling?
예전 Dos와 같은 Singleprocessing 운영체제에서는 CPU가 한번에 단 하나의 일, 즉 하나의 프로세스밖에 실행할 수 없었다. 프로세스를 실행 중일 경우 그것이 다 끝나고 종료될 동안 다른 프로세스와 다른 Unit들까지도 아무일 못하고 쉴 수 밖에 없던 것이다. 하지만 현재 대부분의 컴퓨터는 하나 혹은 그 이상에 CPU가 여러 프로세스를 실행할 수 있다. 물론 이것은 동시에 일어나는 것이 아니다. 어떤 알고리즘에 의해 CPU Time과 자원을 프로세스가 효율적으로 나누어 사용하는 것으로, 이는 CPU 이용률과 I/O 장치의 이용률을 극대화시키는 것이다. 이것을 Multitasking 혹은 Multiprocessing 이라고 하며 이것을 가능하게 해주는 것이 바로 CPU Scheduling 으로써, 스케줄러는 CPU에게 수행해야할 프로세스들을 자체적으로 할당해준다.
Diagram of Process state
CPU 스케줄링의 결정 시점은 프로세스에서 상태변화가 일어날 때이다.
① Run → Wait
② Run → Ready Queue
③ Wait → Ready Queue
④ Run → Exit
이 중에서 ①, ④의 경우에만 수행되는 스케줄링이 비선점형, Non-preemptive Scheduling 이며, 선점형, Preemptive Scheduling은 ①, ②, ③, ④ 모든 경우에서 수행되게 된다.
예전 Dos와 같은 Singleprocessing 운영체제에서는 CPU가 한번에 단 하나의 일, 즉 하나의 프로세스밖에 실행할 수 없었다. 프로세스를 실행 중일 경우 그것이 다 끝나고 종료될 동안 다른 프로세스와 다른 Unit들까지도 아무일 못하고 쉴 수 밖에 없던 것이다. 하지만 현재 대부분의 컴퓨터는 하나 혹은 그 이상에 CPU가 여러 프로세스를 실행할 수 있다. 물론 이것은 동시에 일어나는 것이 아니다. 어떤 알고리즘에 의해 CPU Time과 자원을 프로세스가 효율적으로 나누어 사용하는 것으로, 이는 CPU 이용률과 I/O 장치의 이용률을 극대화시키는 것이다. 이것을 Multitasking 혹은 Multiprocessing 이라고 하며 이것을 가능하게 해주는 것이 바로 CPU Scheduling 으로써, 스케줄러는 CPU에게 수행해야할 프로세스들을 자체적으로 할당해준다.
Diagram of Process state
CPU 스케줄링의 결정 시점은 프로세스에서 상태변화가 일어날 때이다.
① Run → Wait
② Run → Ready Queue
③ Wait → Ready Queue
④ Run → Exit
이 중에서 ①, ④의 경우에만 수행되는 스케줄링이 비선점형, Non-preemptive Scheduling 이며, 선점형, Preemptive Scheduling은 ①, ②, ③, ④ 모든 경우에서 수행되게 된다.
소개글