Windows preemptive priority based roundrobin scheduling

Windows preemptive priority based roundrobin scheduling

이번 글에서는 게임 서버 개발자가 되면 주로 접하게될 Windows Server, 즉 Windows OS에 대한 얘기를 해보려고합니다. os에 따라 내용이 다른 부분이 있을 수 있으니, 미리 Windows를 상정하고 말씀드린다는 부분 양해부탁드립니다. reemptive 처음 선점에 대한 개념부터 정리를 하고 넘어가겠습니다. 처음 우리가 일반적으로 활용하는 windows os는 선점형이냐 비선점형이냐 라는 부분인데요. 하지만 이 전에 우리가 먼저 따져봐야할 부분이 있습니다.

선점의 주체가 누가 되는것인가 입니다. OS가 선점의 주체가 된다면 스레드들은 OS의 관리를 받는 주체가 될 것입니다. 반대로 스레드가 선점의 주체가 된다면 스스로 작동을 하고 멈추는것을 관리하게 될겁니다.

31. freeRTOSConfig.h 설정 freeRTOSConfig.h파일에서 define configUSEPREEMPTION 1 322. non Preemptive 결과 Hello world from Task2Hello world from Task2Hello world from Task2Hello world from Task2Hello world from Task2Hello world from Task2Hello world from Task2

하나의 task가 cpu점유권을 가져가서 cpu점유권을 안줍니다.


스케줄링 종류
스케줄링 종류


스케줄링 종류

Preemptive 선수치기선매권 priority inversion일 때, 선수치기를 할 있습니다. diams priority inversion running 작업보다. 중요한 작업이 ready queue에 올라온 상태 이 작업 또한 스케줄러가 관리합니다. 그래서 어떤 process가 만들어지거나 IO가 끝난 process가 ready queue에 들어오면 누구인지 확인해야 하므로 overhead가 크다.

overhead라는 위험이 있지만, 하나의 프로세스가 독점하는 상황을 방지할 있습니다. 스케줄러가 작동하는 경우 ready queue에 아무리 중요한 작업이 올라와도 자기가 하던 일을 쭉 하는 것 스케줄러가 작동하는 경우 프로세스가 다.

스케줄링 알고리즘 검증 기준
스케줄링 알고리즘 검증 기준

스케줄링 알고리즘 검증 기준

FCFSFirstComeFirstServed FIFO, RunUntilDone useroriented

user의 request에 대한 average response time.waiting time interactive게임, 웹 브라우저 처럼 요청과 반응이 지속적으로 번갈아 동작 harr batch minturnaround timecpu burst와 io가 번갈아가면서 프로세스 끝내는 것, 프로세스의 처음부터 끝까지 평균 응답 시간의 편차가 최소화되어야 합니다.

systemoriented단위 시간 안에 해치우는 작업량throughout이 max cpu 뿐만 아니라 device controller 등 hw 자원을 최대한 많이 활용합니다.