LISTORY

[윈도우즈 시스템 프로그래밍] Windows 프로세스 우선순위 본문

IT/윈도우 프로그래밍

[윈도우즈 시스템 프로그래밍] Windows 프로세스 우선순위

LiStoryTeller 2018. 7. 7. 18:39


뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 YouTube 강의 내용 정리이다.


이번 시간에 정리할 내용은 Windows 프로세스 우선순위이다.


YouTube 주소 Windows 프로세스 우선순위



Windows 프로세스 우선순위


스케줄링 진행 시점


간단히 설명하면 다음과 같은 시점에서 스케줄링 진행된다.


1. 매 타임 슬라이스(Time Slice)마다

: 타임 슬라이스 사이에서도 컨텍스트 스위칭은 발생할 수 있는가?


2. 프로세스가 생성 및 소멸될 때마다

: 생성되면 신고하기 위해서. 소멸될 때는 무슨 이유로?


3. 현재 실행중인 프로세스가 블로킹 상태에 놓일 때 마다


각각의 경우에 대해 설명하겠다.


* 설명하기 전에 먼저 알아두어야 할 것


스케줄러 또한 프로세스이다. 많이 동작하면 성능에 좋지 않으므로 가능한 적게 사용하려는 노력이 있어야 한다.



1. 매 타임 슬라이스마다 스케줄링


타임슬라이스가 3초이면 3초마다 한번씩 프로세스들이 실행된다.


그럼 타임 슬라이스 사이(3초 사이)에서도 컨텍스트 스위칭이 발생할 수 있을까?


이건 운영체제를 어떻게 디자인하느냐에 따라 다르다.


*가능하게 디자인할 경우?


앞서 말했듯이, 스케줄러도 하나의 프로세스이다.


다시 이야기하자면 스케줄러가 동작하면 다른 프로세스들은 실행하지 못한다(코어가 여러개일 경우엔 가능).


스케줄러가 너무 자주 진행되면 성능에 좋지 않다.


즉, 타임슬라이스가 짧으면 스케줄러가 너무 많이 실행되어 성능에 문제가 될 수 있다. 그래서 타임 슬라이스를 길게 디자인하는 경우가 있다.


하지만 타임 슬라이스를 넓게 잡으면 프로세스가 생성, 소멸될때 또는 블러킹 될때 응답성이 떨어질 수 있다.


그러므로 매 타임 슬라이스에도 스케줄러가 접근을 해도 가능하도록 디자인할 때가 있다.


*불가능 하게 디자인할 경우?


타임슬라이스가 좁을 경우이다. 스케줄러 접근 가능하면 성능에 문제있으므로 하지 말게 하자



2. 프로세스가 생성 및 소멸될 때마다 스케줄링


프로세스가 생성됐을 때, 스케줄러가 프로세스를 관찰한다. 


소멸될때는 프로세그가 소멸됐으므로 그 정보를 빼야한다. 


소멸되는 프로세스가 만일 현재 실행중인 프로세스였을 경우, 다른 프로세스를 대신 실행시켜야 하기 때문이다.



3. 블로킹될 때마다 스케줄링


IO 연산때문에 블로키잉 되면 프로세스 자체가 블럭디드 상태가 된다.


이때 다른 누군가를 실행시켜야 한다. 




Comments