운영체제 공부 중 cpu 할당 관련 여러가지 정책들을 공부하고 있습니다.
제가 궁금한 부분은 Round Robin 방식입니다.
Round Robin은 time slice를 대기 중에 있는 프로세스에게 할당하고 그 시간 만료되면 fetch해서 다음 프로세스에게 주는 방식으로 이루어지는데요. 여기서 문제는 os가 할당한 time slice만큼 사용하지 않고 다양한 인터럽트 발생으로 다음 프로세스에게 cpu를 양보하는 상황입니다.
처음에는 time slice라는 게 한번 할당하고 다음에 동일한 프로세스가 오면 그 전에 이 프로세스가 어떻게 time slice를 사용했는지와 무관하게, 일괄적으로 또 새롭게 할당하는 줄 알았습니다.
예를 들면 (말도 안되지만) time slice를 10초라고 준다고 했을 때 A라는 process가 I/O 요청으로 7만 사용하고 3은 반납했습니다.
이후 다른 여러개의 프로세스가 time slice를 꽉꽉 채우고 다시 A한테 돌아왔을 때 A가 그 전에 time slice를 어떻게 사용했는지는 관련없이 10을 또 새롭게 할당하는 것으로 생각했습니다.