# MLFQ
[OS] 스케줄링: Multi-level Feedback Queue
스케줄링: Multi-level Feedback Queue (MLFQ) > 작업의 실행 시간에 대한 선행 정보 없이 대화형 작업의 응답 시간을 최소화하고 동시에 반환 시간을 최소화하는 스케줄러를 어떻게 설계할 수 있는가? Multi-level Feedback Queue (MLFQ) Compatible Time-Sharing System에 사용됨 MLFQ가 해결하고자 하는 문제 짧은 작업을 먼저 실행시켜 "반환시간" 최적화 SJF, STCF 알고리즘은 실생시간 정보를 필요로 하지만, 실제론 실행시간을 미리 알 수 없음 대화형 사용자를 위해 "응답시간" 최적화 RR 알고리즘은 응답시간을 최적화하지만, 반환시간은 거의 최악 > 핵심질문: 프로세스에 대한 정보 없이 스케줄링 하는 방법은? > 프로세스에 대한 선행 정보 없이 "반환시간"과 "응답시간"을 최소화하는 스케줄러를 설계할 수 있을까?
CS Chapter_9 - 스케쥴링
1. 스케쥴링이란? > 스케쥴링이란, 다중 프로그래밍을 가능케 하는 운영체제의 동작 기법이다. 1_1 스케쥴링의 목적 > 프로세스 스케쥴링의 목적은 시스템 성능의 향상이다. > - 공정한 스케쥴링 : 모든 프로세스에게 공정하게 할당을 해야함 > - 응답시간 최소화 : 대화식 사용자에게는 최대한 응답시간을 빠르게 해야함 > - 반환시간 최소화 : 프로세스를 제출한 시간부터 완료시까지 걸리는 반환시간을 최소화 한다 > - 대기시간 최소화 : 프로세스 준비 상태 큐에서 대기하는 시간을 최소화 해야하며 앞에서 처리가 늦어시면 뒤에서 부하가 생기기 때문에 빠르게 처리해야한다. > - 우선 순위 제도 : 먼저 처리해야 하는 것에 우선 순위를 부여해서 먼저 처리함. > - 처리량 극대화 : 단위시간당 할 수 있는 처리량을 최대화 한다. > - 균형 있는 자원 사용

CPU Virtualization(Multi-Level Feedback Queue)
STCF(PSJF)는 turnaround time 측면에서는 좋지만 response time이 좋지 않았다. 또한 STCF는 process의 실행시간에 대한 선행지식이 필요하다는 한계점이 있었다. RR은 각 process가 얼마나 실행되는지와 관계없이 공평하게 process를 실행하기 때문에 response time면에서 좋았지만 turnaround time이 좋지 않았다. 하지만 RR은 아무런 선행지식 없이도 적용할 수 있다는 장점이 있었다. > 어떻게 선행지식이 아예 없이 process를 schedule할 수 있을까? Multi-Level Feedback Queue (MLFQ) > scheduler는 과거를 통해 배워 미래를 예측한다! 프로세스의 과거 동작으로부터 미래를 예측하는 것이다. 예를 들면, 이 프로세스가 그동안 얼마나 오래 CPU를 소모했는지. 만약에 CPU를 지금까지 충분히 오래 사용했다면 이 프로세스는 long job length를 가지
하루일지 - 8
신문(매일 경제) 열 나야만 코로나 확진?…오미크론 대표 증상은 '이것' > 오미크론의 대표 증상은 발열보다 목이 따끔한 인후통. 최근 신규 확진자의 증가 추세가 너무 가파르다. 밖에서 활동을 해야 하니 어쩔 수 없긴 하지만 너무 가파르다. 마스크를 좀 더 잘 쓰고 조심해야겠다. 오미크론은 경미하다곤 하지만 코로나긴 하니까 더더욱 조심하자. '1년만 최저치로 줄어든 신용잔고' 증시 저점 다가오나 > 통상 미수금 대비 반대매매 비중은 5% 전후를 기록했는데 지난달 26일 반대매매비중은 11.7%에 달했다. 반대매매로 인해 반등이 나온 경우가 많다 보니 최근 잡은 것의 경우 좀 있으면 팔아야 할 날이 올 거 같다. 근데 꼭 신용잔고라 해서 반대매매를 뜻하진 않을 텐데 이번

[OSTEP] 스케줄링 : 멀티 레벨 피드백 큐
Multi-Level Feedback Queue 이번 포스트에서는 Multi-Level Feedback Queue( MLFQ )에 대해 알아보겠습니다. MLFQ에서 해결하려는 문제는 두가지 입니다. 짧은 작업을 먼저 실행시켜 반환 시간을 최적화하려고합니다. ( s 대화형 사용자에게 응답이 빠른 시스템이라는 느낌을 주고 싶기에, 응답시간을 최적화하려고합니다. MLFQ : 기본 규칙 MLFQ는 기본적으로 여러개의 큐로 구성되며, 각각 다른 우선 순위가 배정된다. Ready 상태인 프로세스들은 모두 어떤 큐에 존재하며, MLFQ는 이 큐에 있는 프로세스를 어떠한 규칙에 맞춰서 실행시킨다. 이 규칙은 기본적으로 두 가지가 있는데, 알아보겠습니다. 규칙 1 : 우선 순위가 높은 큐에 존재하는 프로세스들이 먼저 실행됩니다. 규칙 2: 작업들이 같은 우선 순위를 가진다면 RR을 사용하여 실행합니다. 그런데, 이 규칙만을 사용하면 문

멀티 레벨 피드백 큐(우선순위 스케쥴링)
📌 들어가기 전에 Scheduling Policy 의 발전 과정과 장단점 1(Round Robin 까지) 지난 글에서 FIFO(First In First Out, 선입선출)부터 시작해서 RR(Round Robin) 스케줄링 알고리즘까지 정리를 해봤다. 해당 내용까지 잘 모르는 부분이 있다면 보고 오는 것을 추천한다! 지난 글에 올렸던 알고리즘들은 '어떤 문제점' 들이 있었고, 그를 해결하기 위한 방법으로 멀티 레벨 피드백 큐라는 가장 유명한 알고리즘이 있다고 언급하였다. 이 글에선 MLFQ로 해결한 문제들과 MLFQ의 규칙, MLFQ가 발전하면서 당면한 문제들과 그 해
[OSTEP] Scheduling : The Multi-Level Feedback Queue
Multi-Level Feedback Queue Design • Desing goals MLFQ가 해결할는 기본적인 문제는 다음과 같다. > 짧은 작업을 먼저 실행시켜 반환 시간을 최적화 > > MFLQ는 대화형 사용자에게 응답이 빠른 시스템을 제공, 응답시간을 최적화 앞서 MLFQ : Intro에서와 마찬가지로 한번에 모든조건을 만족하는 policy를 찾긴 힘드므로, 단계별로 규칙을 만든후 현실적인 조건에 맞게 수정한다. • Basic Rules MLFQ는 여러 개의 큐(Multi Level Queue)로 구성되며 각각 다른 우선순위(priority level)가 배정 » 규칙 > 규칙 1. 높은 우선순위 큐에 존재하는 작업을 실행 > 규칙 2. 같은 우선순위 큐에 존재하는 작업들끼리는 RR scheduling 적용 우선순위는 각 작업의 특성에 따라 동적으로 부여, 작업이 진행되는 동안 해당 작업의 정보를 얻고, 이를 통해 미래의 행동