Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)

Муқаддима ба системаҳои оператсионӣ

Салом, Хабр! Мехохам ба диццати шумо як катор макола-тарчимахои як адабиётро пешкаш намоям, ки ба назари ман — ОСТЕП. Дар ин мавод кори системаҳои оператсионии ба unix монанд, яъне кор бо равандҳо, графикҳои гуногун, хотира ва дигар ҷузъҳои шабеҳ, ки ОС-и муосирро ташкил медиҳанд, хеле амиқ омӯхта мешавад. Шумо метавонед асли ҳамаи маводҳоро дар ин ҷо бинед дар ин ҷо. Лутфан қайд кунед, ки тарҷума ғайрикасбӣ (хеле озодона) анҷом дода шудааст, аммо ман умедворам, ки ман маънои умумиро нигоҳ доштам.

Корҳои лабораторӣ дар ин мавзӯъро дар ин ҷо пайдо кардан мумкин аст:

Қисмҳои дигар:

Шумо инчунин метавонед канали маро дар ин ҷо санҷед телеграмма =)

Банақшагирӣ: Навбати бисёрсатҳии бозгашт

Дар ин лексия мо дар бораи мушкилоти таҳияи яке аз равишҳои машҳуртарин сухан хоҳем гуфт
банақшагирӣ, ки ном дорад Навбати бисёрсатҳии бозгашт (MLFQ). Нақшаи MLFQ бори аввал соли 1962 аз ҷониби Фернандо Ҷ. Корбато дар системае тавсиф карда шуд
Системаи мувофиқи вақт мубодила (CTSS). Ин корҳо (аз ҷумла корҳои минбаъда дар бораи
Multics) баъдан ба ҷоизаи Тюринг пешбарӣ шуданд. Банақшагиранда буд
баъдтар такмил дода шуд ва намуди зоҳириро ба даст овард, ки онро аллакай дар он пайдо кардан мумкин аст
баъзе системаҳои муосир.

Алгоритми MLFQ кӯшиш мекунад, ки ду мушкилоти асосиро, ки ба ҳам мувофиқанд, ҳал кунад.
Якум, он кӯшиш мекунад, ки вақти коркардро оптимизатсия кунад, ки он тавре ки мо дар лексияи қаблӣ муҳокима кардем, бо усули аз ибтидои навбат оғоз кардан оптимизатсия карда мешавад.
вазифаҳои кӯтоҳ. Бо вуҷуди ин, OS намедонад, ки раванди муайян чӣ қадар давом мекунад ва ин
дониши зарурӣ барои амалиёти SJF, STCF алгоритмҳои. Дуюм, MLFQ кӯшиш мекунад
системаро барои корбарон (масалан, барои онҳое, ки нишастаанд ва
ба экран нигариста, то анҷоми вазифа интизор шавед) ва ба ин васила вақтро кам кунед
посух. Мутаассифона, алгоритмҳо ба монанди RR вақти вокунишро беҳтар мекунанд, аммо бениҳоят
ба метрикаи вакти муомилот таъсири бад мерасонанд. Аз ин рӯ, мушкилоти мо: Чӣ тавр тарҳрезӣ кардан
банақшагир, ки ба талаботи мо ҷавобгӯ хоҳад буд, бидуни чизе дар бораи
табиати раванд умуман? Чӣ тавр нақшасоз метавонад хусусиятҳои вазифаҳоро омӯзад,
ки онро оғоз мекунад ва ба ин васила қарорҳои банақшагирии беҳтар қабул мекунад?

Мохияти масъала: бе дониши мукаммал гузоштани вазифахоро чй тавр ба накша гирифтан мумкин аст?
Тарзи тарҳрезии нақшакаш, ки ҳамзамон вақти вокунишро кам мекунад
барои вазифаҳои интерактивӣ ва ҳамзамон бе донистани вақти коркардро кам мекунад
донистани вақти иҷрои вазифа?

Эзоҳ: мо аз рӯйдодҳои қаблӣ омӯхта метавонем

Навбати MLFQ намунаи олии системаест, ки аз он меомӯзад
рӯйдодҳои гузашта барои пешгӯии оянда. Чунин равишҳо аксар вақт вуҷуд доранд
дар ОС (Ва бисёр дигар соҳаҳои илми информатика, аз ҷумла филиалҳо
пешгӯиҳои сахтафзор ва алгоритмҳои кэш). Сафарҳои монанд
Вақте ки вазифаҳо марҳилаҳои рафторӣ доранд ва аз ин рӯ пешгӯӣ мешаванд, ба вуҷуд меоянд.
Бо вуҷуди ин, шумо бояд бо ин техника эҳтиёт бошед, зеро пешгӯиҳо хеле осонанд
метавонад нодуруст гардад ва системаро ба қабули қарорҳои бадтар аз он оварда расонад
умуман бе дониш мебуд.

MLFQ: Қоидаҳои асосӣ

Биёед қоидаҳои асосии алгоритми MLFQ-ро дида бароем. Ва гарчанде татбиқи ин алгоритм
Якчанд ҳастанд, равишҳои асосӣ монанданд.
Дар татбиқи мо дида мебароем, MLFQ дорои якчанд
навбатҳои алоҳида, ки ҳар яки онҳо афзалияти гуногун доранд. Ҳар вақт,
супорише, ки барои ичро тайёр аст, дар як навбат меистад. MLFQ афзалиятҳоро истифода мебарад,
ки барои ичрои кадом вазифа пешбарй карда шавад, яъне. вазифа бо баландтар
авлавият (вазифа аз навбат бо афзалияти баланд) аввал оғоз мешавад
навбат.
Албатта, метавонад дар як навбат зиёда аз як вазифа бошад, ҳамин тавр
аз ин рӯ, онҳо ҳамон афзалият доранд. Дар ин сурат механизм ба кор бурда мешавад
RR барои ҷадвали як давидан дар байни ин вазифаҳо.
Ҳамин тариқ, мо ба ду қоидаҳои асосӣ барои MLFQ меоем:

  • Қоидаи 1: Агар афзалият (A) > Афзалият (B), вазифаи А оғоз карда мешавад (B не)
  • Қоидаи 2: Агар афзалият (A) = Афзалият (B), A&B бо истифода аз RR оғоз карда мешаванд

Дар асоси гуфтаҳои боло, унсурҳои асосии банақшагирии MLFQ
афзалиятҳо мебошанд. Ба ҷои он ки ба ҳар як афзалияти муқаррарӣ дода шавад
вазифа, MLFQ афзалияти худро вобаста ба рафтори мушоҳидашуда тағйир медиҳад.
Масалан, агар супориш ҳамеша дар вақти интизории вуруди клавиатура корро ба CPU мепартояд,
MLFQ афзалияти равандро баланд нигоҳ медорад, зеро ҳамин тавр аст
процесси интерактивй бояд кор кунад. Агар, баръакс, вазифа доимо ва
CPU-ро дар муддати тӯлонӣ сахт истифода мебарад, MLFQ онро паст мекунад
афзалиятнок. Ҳамин тариқ, MLFQ рафтори равандҳоро ҳангоми иҷроиши онҳо меомӯзад
ва рафторро истифода мебаранд.
Биёед мисоле орем, ки дар як лаҳза навбатҳо чӣ гуна буда метавонанд
вақт ва он гоҳ шумо чизе монанди ин мегиред:
Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)

Дар ин схема, 2 равандҳои А ва В дар навбати авлавияти баланд қарор доранд. Раванд
C дар ҷое дар мобайн аст ва раванди D дар охири навбат аст. Мувофики гуфтахои боло
Тибқи тавсифи алгоритми MLFQ, нақшакаш вазифаҳоро танҳо бо баландтарин иҷро мекунад.
афзалияти мувофиқи RR, ва вазифаҳои C, D аз кор хоҳад буд.
Табиист, ки тасвири статикӣ дар бораи чӣ гуна кор кардани MLFQ тасвири пурра дода наметавонад.
Фаҳмидани он ки тасвир бо мурури замон чӣ гуна тағир меёбад, муҳим аст.

Кӯшиши 1: Чӣ тавр афзалиятро тағир додан мумкин аст

Дар ин лаҳза шумо бояд қарор қабул кунед, ки MLFQ сатҳи афзалиятро чӣ гуна тағир медиҳад
вазифаҳо (ва ҳамин тавр мавқеи вазифа дар навбат) ҳангоми пешравии он дар давраи ҳаёти худ. Барои
ин барои дар хотир нигоҳ доштани ҷараёни кор зарур аст: маблағи муайян
вазифаҳои интерактивӣ бо мӯҳлатҳои кӯтоҳ (ва аз ин рӯ, зуд-зуд озод карда мешаванд
CPU) ва якчанд вазифаҳои дарозмуддат, ки CPU тамоми вақти кории худро истифода мебаранд
Барои чунин вазифаҳо вақти ҷавоб муҳим нест. Ва бо ин роҳ шумо метавонед аввалин кӯшиши худро анҷом диҳед
алгоритми MLFQ-ро бо қоидаҳои зерин амалӣ кунед:

  • Қоидаи 3: Вақте ки супориш ба система ворид мешавад, он дар навбати баландтарин гузошта мешавад
  • афзалиятнок.
  • Қоида4a: Агар вазифа тамоми равзанаи вақти ба он ҷудошударо истифода барад, пас он
  • афзалият кам карда мешавад.
  • Қоида4б: Агар супориш CPU-ро пеш аз тамом шудани равзанаи вақташ озод кунад, пас он
  • бо ҳамон афзалият боқӣ мемонад.

Мисоли 1: Вазифаи ягонаи дарозмуддат

Тавре ки дар ин мисол дида мешавад, вазифаи қабул бо баландтарин муқаррар карда мешавад
афзалиятнок. Пас аз равзанаи вақти 10ms, раванд дар авлавият паст карда мешавад
планкаш. Пас аз равзанаи дафъаи навбатӣ, вазифа ниҳоят паст карда мешавад
пасттарин афзалият дар система, ки дар он боқӣ мемонад.
Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)

Мисоли 2: Вазифаи кӯтоҳ иҷро карда шуд

Акнун биёед мисолеро бубинем, ки чӣ тавр MLFQ кӯшиш мекунад, ки ба SJF наздик шавад. Дар он
мисол, ду вазифа: A, ки вазифаи дарозмуддат аст, доимӣ
ишғол CPU ва B, ки вазифаи интерактивии кӯтоҳ аст,. Фарз мекунем
ки то омадани супориши Б А аллакай чанд вакт кор мекард.
Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)

Ин график натиҷаҳои сенарияро нишон медиҳад. Вазифаи А, мисли ҳама гуна вазифаҳо,
Истифодаи CPU дар поёни он буд. Вазифаи B дар вақти T = 100 меояд ва хоҳад омад
дар навбати авлавиятнок гузошта шудааст. Азбаски мухлати кори он кутох аст, пас
пеш аз расидан ба навбати охирин ба охир мерасад.

Аз ин мисол, ҳадафи асосии алгоритмро фаҳмидан лозим аст: зеро алгоритм
медонад, ки кор дароз аст ё кутоҳ, пас дар навбати аввал чунин мешуморад, ки вазифа
кӯтоҳ ва ба он афзалияти олӣ медиҳад. Агар ин вазифаи хеле кутох бошад, пас
зуд анчом меёбад, вагарна кори тулонй бошад, суст харакат мекунад
афзалияти худро гум мекунад ва ба зудӣ исбот хоҳад кард, ки вай дар ҳақиқат вазифаи тӯлонӣ аст, ки ин корро намекунад
посух талаб мекунад.

Мисоли 3: Дар бораи I/O чӣ гуфтан мумкин аст?

Акнун биёед мисоли I/O-ро бубинем. Тавре ки дар қоидаи 4b омадааст,
агар раванд протсессорро бе истифодаи тамоми вақти протсессори худ озод кунад,
пас он дар як сатхи афзалиятнок мемонад. Мақсади ин қоида хеле оддӣ аст
- агар кори интерактивӣ амалҳои зиёди воридотро иҷро кунад, масалан, интизорӣ
аз тугмаи корбар ё пахшкунии муш, чунин вазифа протсессорро озод мекунад
пеш аз тирезаи ҷудошуда. Мо намехостем, ки афзалияти чунин вазифаро паст кунем,
ва бо хамин дар як сатх мемонад.
Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)

Ин мисол нишон медиҳад, ки чӣ тавр алгоритм бо чунин равандҳо кор хоҳад кард - кори интерактивии B, ки танҳо CPU барои 1ms пеш аз иҷро лозим аст
Раванди I/O ва кори дарозмуддати A, ки тамоми вақти худро бо истифода аз CPU сарф мекунад.
MLFQ раванди B-ро дар авлавияти баланд нигоҳ медорад, зеро он идома дорад
CPU-ро озод кунед. Агар B вазифаи интерактивӣ бошад, он гоҳ алгоритм ба даст омадааст
Ҳадафи шумо иҷро кардани вазифаҳои интерактивӣ мебошад.

Мушкилот бо алгоритми кунунии MLFQ

Дар мисолҳои қаблӣ мо версияи асосии MLFQ-ро сохтем. Ва чунин ба назар мерасад, ки ӯ
кори худро хуб ва софдилона иҷро мекунад, вақти CPU-ро дар байни онҳо одилона тақсим мекунад
вазифаҳои дароз ва имкон додани вазифаҳои кӯтоҳ ё вазифаҳои пуршиддат дастрас
дар I/O зуд кор кунед. Мутаассифона, ин равиш якчанд чизро дар бар мегирад
мушкилоти ҷиддӣ.
Якум, проблемам гуруснагй: агар системам бисьёр интерактивй
вазифаҳо, он гоҳ онҳо тамоми вақти CPU-ро сарф мекунанд ва аз ин рӯ, барои муддати тӯлонӣ яктоаш ҳам нест
супоришро ичро карда наметавонад (онхо гуруснаанд).

Дуюм, корбарони оқил метавонанд барномаҳои худро тавре нависанд
барномасозро фиреб диҳед. Фиреб дар анҷом додани коре барои маҷбур кардан аст
Барномасоз ба раванд вақти бештари CPU медиҳад. Алгоритм, ки
ки дар боло тавсиф шудааст, ба ҳамлаҳои шабеҳ хеле осебпазир аст: пеш аз равзанаи вақт амалан
ба охир расид, шумо бояд амалиёти I/O-ро иҷро кунед (ба баъзеҳо, новобаста аз кадом файл)
ва ҳамин тавр CPU-ро озод кунед. Чунин рафтор ба шумо имкон медиҳад, ки дар ҳамон ҳолат бимонед
худи навбат ва боз як фоизи бештари вақти CPU ба даст. Агар шумо
ин дуруст аст (масалан, пеш аз баровардани CPU 99% вақти тирезаро иҷро кунед),
чунин вазифа метавонад протсессорро танҳо монополия кунад.

Ниҳоят, барнома метавонад рафтори худро бо мурури замон тағир диҳад. Он вазифахо
ки CPU истифода бурда метавонад интерактивӣ гардад. Дар мисоли мо, монанд
Вазифаҳо мисли дигарон аз нақшакаш муносибати сазовори худро нахоҳанд гирифт
(аввалин) вазифаҳои интерактивӣ.

Савол ба шунавандагон: дар ҷаҳони муосир чӣ гуна ҳамлаҳоро ба нақшакаш анҷом додан мумкин аст?

Кӯшиши 2: Баланд бардоштани афзалият

Биёед кӯшиш кунем, ки қоидаҳоро тағир диҳем ва бубинем, ки оё мо метавонем аз мушкилот канорагирӣ кунем
рӯза доштан. Мо чӣ кор карда метавонем, то ин алоқаманд бошад
Вазифаҳои CPU вақти худро мегиранд (ҳатто агар дароз набошанд).
Ҳамчун ҳалли оддии мушкилот, шумо метавонед давра ба давра пешниҳод кунед
афзалияти хамаи ин гуна вазифахоро дар система баланд бардоранд. Роҳҳои зиёде мавҷуданд
Барои ноил шудан ба ин, биёед кӯшиш кунем, ки як чизи оддиро ҳамчун намуна амалӣ кунем: тарҷума
Ба ҳама вазифаҳо дарҳол афзалияти баланд дода мешавад, бинобар ин қоидаи нав:

  • Қоидаи 5: Пас аз як давраи муайян S, ҳамаи вазифаҳои системаро ба навбати баландтарин интиқол диҳед.

Коидаи нави мо якбора ду масъаларо хал мекунад. Якум, равандҳо
гурусна нашаванд, кафолат дода мешавад: вазифахое, ки дар навбати аввал мебошанд, таксим карда мешаванд
Вақти CPU мувофиқи алгоритми RR ва аз ин рӯ ҳама равандҳо мегиранд
Вақти CPU. Дуюм, агар ягон раванде, ки қаблан истифода мешуд
танҳо протсессори интерактивӣ мегардад, он дар навбат бо баландтарин боқӣ мемонад
афзалият пас аз гирифтани як маротиба афзудани афзалият ба баландтарин.
Биёед як мисолро дида бароем. Дар ин сенария, як равандро истифода баред
Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)

CPU ва ду равандҳои интерактивӣ, кӯтоҳ. Дар тарафи чапи расм, расм рафторро бидуни пешбурди афзалиятнок нишон медиҳад ва ба ин васила вазифаи дарозмуддат пас аз ворид шудани ду вазифаи интерактивӣ ба система гуруснагӣ мекунад. Дар расми тарафи рост, афзоиши афзалият ҳар 50ms анҷом дода мешавад ва аз ин рӯ ба ҳама равандҳо кафолат дода мешавад, ки вақти CPU мегиранд ва давра ба давра оғоз карда мешаванд. 50ms дар ин ҳолат ҳамчун мисол гирифта шудааст; дар асл ин рақам каме зиёдтар аст.
Аён аст, ки илова кардани вақти мунтазами афзоиши S ба он оварда мерасонад
саволи мантиқӣ: чӣ арзиш бояд муқаррар карда шавад? Яке аз шарафмандон
муҳандисони системаҳо Ҷон Оустерхоут чунин миқдорҳоро дар системаҳо ҳамчун voo-doo номиданд
доимӣ, зеро онҳо ба ягон роҳ барои дурустӣ ҷодуи сиёҳро талаб мекарданд
намоиш додан. Ва, мутаассифона, S чунин бӯй дорад. Агар шумо низ арзиш таъин кунед
калон — вазифахои дароз ба гуруснагй шуруъ мекунанд. Ва агар шумо арзишро хеле паст таъин кунед,
Вазифаҳои интерактивӣ вақти дурусти CPU-ро қабул намекунанд.

Кӯшиши 3: Баҳисобгирии беҳтар

Акнун мо боз як масъалаи дигар дорем: чи тавр не
ба нақшаи мо иҷозат диҳед, ки фиреб диҳанд? Одамоне, ки барои ин имконият айбдоранд
қоидаҳои 4a, 4b, ки имкон медиҳад, ки кор барои нигоҳ доштани афзалият, озод кардани коркардкунанда
пеш аз ба охир расидани мухлати мукарраршуда. Бо ин чӣ гуна бояд муносибат кард?
Ҳалли ин ҳолатро метавон баҳисобгирии беҳтари вақти CPU дар ҳар як ҳисоб кард
Сатҳи MLFQ. Ба ҷои фаромӯш кардани вақти истифодабарии барнома
протсессори барои давраи ҷудошуда, он бояд ба назар гирифта ва захира карда шавад. Баъди
процесс вакти чудокардаи худро сарф кард, вай бояд ба давраи дигар гу-зарад
сатҳи афзалиятнок. Ҳоло муҳим нест, ки раванд вақти худро чӣ гуна истифода мебарад - чӣ гуна
доимо дар протсессори ҳисоббарорӣ ё ҳамчун як қатор зангҳо. Ҳамин тариқ,
банди 4 дар таҳрири зайл ифода карда шавад:

  • Қоидаи 4: Пас аз он ки супориш вақти ҷудокардаи худро дар навбати ҷорӣ истифода кард (новобаста аз он ки он CPU-ро чанд маротиба озод кардааст), авлавияти он вазифа паст мешавад (он дар навбат поён меравад).

Биёед як мисолро дида бароем:
Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)»

Дар расм нишон медиҳад, ки чӣ мешавад, агар шумо кӯшиш кунед, ки банақшагириро фиреб диҳед, масалан
агар он бо қоидаҳои қаблии 4a, 4b бошад, натиҷа дар тарафи чап ба даст оварда мешуд. Нав муборак
коида натичаи дар тарафи рост аст. Пеш аз муҳофизат, ҳама гуна раванд метавонад пеш аз ба итмом расонидани I/O -ро даъват кунад ва
ҳамин тавр бартарӣ CPU, пас аз имкон ҳифзи, новобаста аз рафтори
I/O, вай то ҳол дар навбат ба поён ҳаракат мекунад ва аз ин рӯ, беинсофӣ карда наметавонад
захираҳои CPU ба даст оред.

Такмили MLFQ ва дигар мушкилот

Бо такмилдиҳии дар боло овардашуда мушкилоти нав ба миён меояд: яке аз асосӣ
Саволҳо - чӣ тавр ба параметрҳои чунин нақшакаш? Онхое. Чӣ қадар бояд бошад
навбат? Андозаи равзанаи барнома дар дохили навбат бояд чанд бошад? Чӣ хел
Афзалияти барнома бояд аксар вақт барои пешгирӣ кардани гуруснагӣ ва
тагйири рафтори барномаро ба назар гирифта? Ба ин саволҳо ҷавоби оддӣ нест
ҷавоб ва танҳо таҷрибаҳо бо сарборӣ ва конфигуратсияи минбаъда
банақшагир метавонад ба баъзе тавозуни қаноатбахш оварда расонад.

Масалан, аксари татбиқи MLFQ ба шумо имкон медиҳанд, ки таъиноти гуногунро таъин кунед
фосилаҳои вақт барои навбатҳои гуногун. Одатан навбатҳои афзалиятноки баланд
фосилаҳои кӯтоҳ муқаррар карда мешаванд. Ин навбатҳо аз вазифаҳои интерактивӣ иборатанд,
гузариш дар байни онҳо хеле ҳассос аст ва бояд 10 ё камтар аз он мегирад
Бону. Баръакс, навбатҳои афзалиятноки паст аз вазифаҳои дарозмуддат иборатанд, ки истифода мебаранд
ВПМ - ВОҲИДИ ПАРДОЗИШИ МАРКАЗӢ. Ва дар ин ҳолат, фосилаҳои дарозмуддат хеле хуб мувофиқанд (100ms).
Системаҳои оператсионӣ: Се дона осон. Қисми 5: Банақшагирӣ: Навбати бисёрсатҳии бозгашт (тарҷума)

Дар ин мисол 2 вазифа мавҷуд аст, ки дар навбати авлавияти баланд 20 кор мекарданд
ms, ба тирезаҳои 10ms тақсим карда мешавад. 40ms дар навбати миёна (равзанаи 20ms) ва дар афзалияти паст
Равзанаи вақти навбат 40ms шуд, ки дар он вазифаҳо кори худро анҷом доданд.

Татбиқи Solaris OS MLFQ як синфи ҷадвалҳои мубодилаи вақт мебошад.
Банақшагиранда маҷмӯи ҷадвалҳоро пешниҳод мекунад, ки маҳз ҳамон тавре ки лозим аст, муайян мекунанд
афзалияти процесс дар давоми умри худ тагьир меёбад, андоза бояд чй гуна бошад
равзанаи ҷудошуда ва чанд вақт ба шумо лозим аст, ки афзалиятҳои вазифаҳоро баланд бардоред. Администратор
системаҳо метавонанд бо ин ҷадвал ҳамкорӣ кунанд ва боиси рафтори нақшасоз гардад
ба таври дигар. Бо нобаёнӣ, ин ҷадвал дорои 60 навбат бо афзоиши тадриҷан мебошад
андозаи тиреза аз 20ms (афзалияти баланд) то чандсад мс (афзалияти паст) ва
инчунин бо афзоиши ҳама вазифаҳо як маротиба дар як сония.

Дигар банақшагирандагони MLFQ ҷадвал ё ягон чизи мушаххасро истифода намебаранд
қоидаҳое, ки дар ин лексия тасвир шудаанд, баръакс, онҳо афзалиятҳоро бо истифода аз ҳисоб мекунанд
формулаҳои математикӣ. Масалан, нақшаи FreeBSD формулаи барои
афзалияти ҷории вазифаро аз рӯи он, ки ин раванд то чӣ андоза давом мекунад, ҳисоб кунед
CPU истифода бурда мешавад. Илова бар ин, истифодаи CPU бо мурури замон таназзул мекунад ва ғайра
Ҳамин тариқ, афзоиши афзалият нисбат ба дар боло тавсифшуда ба таври дигар сурат мегирад. Ин дуруст аст
алгоритмҳои таназзул номида мешаванд. Аз версияи 7.1, FreeBSD нақшаи ULE-ро истифода мебарад.

Ниҳоят, бисёр барномасозон хусусиятҳои дигар доранд. Масалан, баъзе
Банақшагирандагон сатҳҳои баландтаринро барои кори системаи оператсионӣ нигоҳ медоранд ва ҳамин тавр
Ҳамин тариқ, ҳеҷ як раванди корбар наметавонад афзалияти баландтаринро дар
система. Баъзе системаҳо ба шумо имкон медиҳанд, ки барои кӯмак маслиҳат диҳед
планкаш афзалиятхоро дуруст муайян карда метавонад. Масалан, бо истифода аз фармон хуб
шумо метавонед афзалияти вазифаро зиёд ё кам кунед ва ба ин васила зиёд кунед ё
кам кардани имконияти барнома барои истифодаи вақти CPU.

MLFQ: Хулоса

Мо як равиши банақшагириро бо номи MLFQ тавсиф кардем. Номи вай
ба принсипи кор дохил карда шудааст - он якчанд навбат дорад ва фикру мулоҳизаҳоро истифода мебарад
барои муайян кардани афзалияти вазифа.
Шакли ниҳоии қоидаҳо чунин хоҳад буд:

  • Қоидаи 1: Агар афзалият (A) > Афзалият (B), вазифаи А оғоз карда мешавад (B не)
  • Қоидаи 2: Агар афзалият (A) = Афзалият (B), A&B бо истифода аз RR оғоз карда мешаванд
  • Қоидаи 3: Вақте ки супориш ба система ворид мешавад, он дар навбати авлавияти баландтарин ҷойгир карда мешавад.
  • Қоидаи 4: Пас аз он ки супориш вақти ҷудокардаи худро дар навбати ҷорӣ истифода кард (новобаста аз он ки он CPU-ро чанд маротиба озод кардааст), авлавияти он вазифа паст мешавад (он дар навбат поён меравад).
  • Қоидаи 5: Пас аз як давраи муайян S, ҳамаи вазифаҳои системаро ба навбати баландтарин интиқол диҳед.

MLFQ бо сабаби зерин ҷолиб аст - ба ҷои талаб кардани дониш дар бораи
хусусияти супоришро пешакӣ муайян мекунад, алгоритм рафтори гузаштаи супориш ва маҷмӯи онро меомӯзад
мувофиқи афзалиятҳо. Ҳамин тариқ, ӯ кӯшиш мекунад, ки якбора дар ду курсӣ нишинад - барои иҷрои вазифаҳои хурд (SJF, STCF) ҳосилнокӣ ба даст орад ва ростқавлона давида дароз кунад,
Корҳои боркунии CPU. Аз ин рӯ, бисёр системаҳо, аз ҷумла BSD ва ҳосилаҳои онҳо,
Solaris, Windows, Mac як намуди алгоритмро ҳамчун нақшакаш истифода мебаранд
MLFQ ҳамчун асос.

Маводи иловагӣ:

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. en.wikipedia.org/wiki/Scheduling_(ҳисоббарорӣ)
  3. pages.lip6.fr/Julia.Lawall/atc18-bouron.pdf
  4. www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf
  5. chebykin.org/freebsd-process-scheduling

Манбаъ: will.com

Илова Эзоҳ