□ 프로세스란?
프로세스란 실행 중인 프로그램을 의미한다.
윈도우 사용자가 특정 프로그램을 실행시키면 하드디스크에 저장된 프로그램이 메모리(RAM)에
올라오게 되고, 메모리에 올라온 프로그램은 CPU를 통해 연산되는데 하드디스크에서 메모리로
올라온 프로그램을 프로세스라고 한다.
□ 프로세스 스케줄러
프로세스란 실행중인 프로그램이며, 프로세스를 실행하기위해서는 하나의 CPU(코어)가 필요하다고
하였으므로 하나의 프로세스를 실행하기 위해서는 하나의 CPU(코어)가 필요하다.
가장 이상적인 방법으로는 실행되는 프로세스 수 만큼 CPU(코어)를 가지고 있는 것이지만 이는 현실
적으로 불가능 하며, 실질적으로는 실행되는 프로세스의 수보다 CPU(코어)의 개수가 적다.
이를 해결하기 위해서는 프로세스 스케줄러가 필요한데 프로세스 스케줄러가 하는 일은 여러
프로세스들이 CPU를 할당받을 수 있도록 관리해주는 프로세스이다.
프로세스 스케줄러란 프로세스들이 CPU를 할당받을 수 있도록 관리해주는 프로세스이다. |
□ 선점형 OS, 비선점형 OS
프로세스 스케줄러가 프로세스를 어떻게 관리하느냐에 따라 OS가 선점형 OS와 비선점형 OS로 구분
될 수 있다.
현재 우선순위가 2인 "A Process"가 실행되고 있다.
이 상태에서 OS사용자가 우선순위가 5인 "B Process"를 실행 시켰다고 가정해보자.
B의 우선순위가 A의 우선순위보다 높으므로 A가 CPU할당시간을 다 사용하면 B에세 CPU 권한을
넘겨 주어야 한다.
비선점형 OS경우에는 높은 우선순위의 프로세서에게 CPU권한을 넘겨주는 일을 스케줄러가 하는 것
이 아니라 프로그래머가 직접 해주어야 한다.
때문에 선점형 OS에 비해 스케줄러가 하는 일이 적으며, 프로그래머가 신경써야할 부분이 많아진다.
선점형 OS경우에는 높은 우선순위의 프로세스가 등장했을 때 스케줄러가 직접 프로세스들의
우선순위를 조정해준다.
선점형 OS의 경우 멀티 프로세스 기반 OS에 적절한데 프로그래머가 직접 신경쓰지 않아도 프로세스
들을 위선순위에 따라 프로세스들을 CPU사용을 조정해 주므로 프로그래머가 신경써야 할 부분들이
적기 때문이다.
□ 우선순위 스케줄링알고리즘, 라운드로빈 알고리즘
Windows에서 사용하는 대표적인 선점형 OS알고리즘으로는 ①우선순위 스케줄링과, ②라운드로
빈스케줄링 알고리즘이 있다.
먼저 우선순위 스케줄링 알고리즘은 높은 우순선위의 프로세스부터 선택하는 알고리즘 이다.
라운드로빈 스케줄링 알고리즘 동일한 우선순위의 프로세스가 CPU시간을 동등하게 받을 수 있도
록 하는 알고리즘 이다.
우선순위 |
프로세스 |
8 |
|
7 |
H, I |
6 |
|
5 |
|
4 |
D, E, F |
3 |
|
2 |
|
1 |
A, B, C |
0 |
|
현재 우선순위 7인 프로세스 2개, 4인 프로세스 3개 1인 프로세스 3개가 있다.
그럼 먼저 우선순위 스케줄링알고리즘에 따라 우선순위가 7인 프로세스가 선택될 것이다.
우선순위 7인 프로세스를보면 두개의 프로세스 H, I가 있다.
이 두개의 프로세스가 동등하게 CPU시간을 동등하게 받을 수 있록 해주는 알고리즘이 라운드로빈
알고리즘 이다.
여기서 생각해 볼 것이 그럼 우선 순위가 낮은 D, E, F, A, B, C는 H, I가 종료되기 까지 실행될
수 없지만 대부분의 프로세스들이 I/O작업을 하므로 H, I가 모두 I/O작업을 하는동안에는 조금이나
마 실행될 수 있을 것이다.
□ 스케줄링 알고리즘에 의해서 스케줄링이 진행되는 시점
① CPU시간을 다 사용하였을 때
프로세서 우선순위에 따라서 다른 프로세서를 실행시켜야 한다.
② 프로세서가 생성, 종료되었을 때
프로세서가 생성 되거나, 종료되었을 때에도 프로세서 우선순위에 따라 프로세서 실행순서를
조정 해주어야 한다.
③ I/O작업을 할 때
I/O작업을 하는 동안에는 CPU를 사용할 수 없으므로 다른 프로세서에게 CPU를 넘겨 주어야 한다.
출처 : http://blog.naver.com/pnh0105?Redirect=Log&logNo=80209228635
'Fundamental > Management' 카테고리의 다른 글
[Web] 포스트백 후 스크롤위치 되돌리기 (0) | 2014.12.24 |
---|---|
[Collectd] rrdtool 사용하는 Collectd 설치(CentOS 6.5) (0) | 2014.11.25 |
프로세스 스케줄링 (0) | 2014.05.29 |
프로세스 스케줄러 (0) | 2014.05.29 |
웹기획 일정관리,업무관리 WBS 정의 및 이해 (0) | 2014.05.23 |
댓글