LISTORY
[윈도우즈 시스템 프로그래밍] 2부 정리 (4) 본문
오늘 정리할 부분은 스케줄링 알고리즘과 우선순위 부분이다.
Windows 프로세스 우선순위
스케줄링 알고리즘과 우선 순위
프로세스의 스케줄링
⊙ 일반 OS와 리얼타임 OS의 차이점
둘의 차이는 스케줄러가 어떻게 동작하냐에 따라 결정된다.
Real Time OS는 응답성이 좋다.
일반 OS의 타임슬라이스가 리얼타임 OS보다 길기 때문이다.
그럼 타임 슬라이스란 무엇일까?
⊙ 타임 슬라이스
일정한 시간 간격이다.
일반 OS에서 우선순위가 같은 프로세스의 경우, 번갈아 가며 실행된다.
만일 이 기준이 3초이고, 클럭과 클럭 사이의 시간이 1초라면
1타임 슬라이스는 3클럭(3초)이 된다.
즉. 타임슬라이스마다 한번씩 프로세스의 주기가 바뀐다.
⊙ 선점형 VS 비선점형 OS
선점형 : 어떤 프로세스가 먼저 선점하냐에 따라 OS 결정
비선점형 : 선점할 수 없다.
선점형은 우선순위가 높은 프로세스부터 실행한다.
만일 프로세스를 실행중이더라도, 우선 순위가 높은 프로세스가 실행되면 그 프로세스로 변경된다.
비선점형의 경우에는 그렇지 않다.
기존에 실행중인 프로세스가 명시적으로 양보해야겠다고 해야 우선순위가 높은 프로세스가 실행될 수 있다.
선점형일때 스케줄러가 훨씬 일을 많이 한다.
⊙ 스케줄링 진행 시점
1. 매 타임 슬라이스(Time Slice)마다
2. 프로세스가 생성 및 소멸될 때 마다
3. 현재 실행중인 프로세스가 blocking 상태에 놓일 때 마다
1. 타임 슬라이스마다
타임 슬라이스가 3초면 3초마다 프로세스들이 실행된다.
이때, 컨텍스트 스위칭이 발생할 수 있냐 없냐는 어떻게 디자인하느냐에 따라 다르다.
보통 타임슬라이스 간격이 짧으면 불가능하게 하고 길면 가능하게 한다.
스케줄러가 동작하면 다른 프로세스 역시 실행하지 못하므로 스케줄러가 너무 자주 진행되면 성능에 좋지 않다.
즉, 타임 슬라이스가 짧으면 스케줄러가 너무 많이 실행되어 성능에 문제가 생길 수 있닫.
하지만 타임 슬라이스를 넓게 잡으면 프로세스가 생성, 소멸, 또는 블러킹 될때 응답성이 떨어질 수 있다.
2. 프로세스가 생성 및 소멸될때마다
프로세스가 생성되었을 때, 스케줄러가 프로세스를 관찰하고 소멸될때는 정보를 뺀다.
3. 블로킹될 때 마다
블로킹되면 프로세스 자체가 블럭디드 상태가 되므로 다른 누군가(프로세스)를 실행시켜야 한다.
'IT > 윈도우 프로그래밍' 카테고리의 다른 글
[윈도우즈 시스템 프로그래밍] 유저 모드 동기화 (0) | 2018.09.16 |
---|---|
[윈도우즈 시스템 프로그래밍] 쓰레드 동기화 기법1 (0) | 2018.09.03 |
[윈도우즈 시스템 프로그래밍] 2부 정리 (3) (0) | 2018.09.01 |
[윈도우즈 시스템 프로그래밍] 2부 정리(2) (0) | 2018.09.01 |
[윈도우즈 시스템 프로그래밍] 2부 복습 (1) (0) | 2018.08.30 |