Multi-Queue Scheduling 에 대하여
Author
ㅁㄴㅇㄹ
Date
2024-04-13 19:48
Views
94
------------------------------------------수업게시판 규칙------------------------------------------------
커뮤니티가 아닌 공적인 수업 게시판으로 서로 간의 예의를 지켜야 합니다.
비밀 게시물의 경우 확인하지 않고 답변해드리지도 않습니다.
----------------------------------------------------------------------------------------------------------
Multi-Queue Scheduling에서 각각의 코어가 본인만의 ready quueu를 가지고 있다고 가정할 때
Work Stealing이 일어나게 되는 경우 본인의 우선순위는 유지되며 넘어간다고 알고있습니다.
이때 Multi-Queue Scheduling에서는 core 마다 하나의 ready queue를 쓰는데 하나의 queue만으로 어떻게 우선순위에 대한 분류가 가능한가요?
커뮤니티가 아닌 공적인 수업 게시판으로 서로 간의 예의를 지켜야 합니다.
비밀 게시물의 경우 확인하지 않고 답변해드리지도 않습니다.
----------------------------------------------------------------------------------------------------------
Multi-Queue Scheduling에서 각각의 코어가 본인만의 ready quueu를 가지고 있다고 가정할 때
Work Stealing이 일어나게 되는 경우 본인의 우선순위는 유지되며 넘어간다고 알고있습니다.
이때 Multi-Queue Scheduling에서는 core 마다 하나의 ready queue를 쓰는데 하나의 queue만으로 어떻게 우선순위에 대한 분류가 가능한가요?
queue라고 해서 꼭 단순 구조 queue를 쓰는 것이 아닌 우선 순위 큐를 사용한다고 생각합니다. 따라서 6page "Then it is scheduled essentially independently" 라는 설명에 맞게 코어마다 CFS , Realtime , Deadline 으로 알고리즘이 돌아가고 각각 알고리즘에 맞는 자료구조(예 RB-tree)를 쓰는 것이라 생각합니다.
단순 queue가 아니기에 queue하나로도 우선순위를 결정할 수 있다는 말씀이신가요?
네, 맞습니다. 우선순위대로 정렬이 되기 때문에, 새로 들어온 work 의 우선순위를 확인하여 ready queue를 정렬하게 됩니다.
그렇다면 MLFQ 에서는 각각의 queue는 단순 구조 queue이며 각각의 queue는 우선순위가 정해져있다고 생각해도 될까요?
Queue에 Priority가 있다는 것이 아닌 Queue 안에서 Priority를 기준으로 프로세스가 정렬되는 것입니다.
Multi-Queue Scheduling 에서 설명하는 Queue는 One per CPU로 CPU 마다 하나씩 존재하는 것이며, Queue 자체에는 우선순위가 없습니다.