Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)

Ro-ràdh gu siostaman-obrachaidh

Hi Habr! Bu mhath leam sreath de artaigilean a thoirt nad aire - eadar-theangachadh de aon litreachas inntinneach nam bheachd-sa - OSTEP. Tha an stuth seo a’ beachdachadh gu domhainn air obair shiostaman obrachaidh coltach ri unix, is e sin, obair le pròiseasan, diofar chlàran, cuimhne, agus co-phàirtean eile den aon seòrsa a tha a’ dèanamh suas OS ùr-nodha. Chì thu an stuth tùsail uile an seo an seo. Thoir an aire gun deach an eadar-theangachadh a dhèanamh gu neo-phroifeasanta (gu math saor), ach tha mi an dòchas gun do ghlèidh mi am brìgh coitcheann.

Gheibhear obair-lann air a’ chuspair seo an seo:

Pàirtean eile:

Faodaidh tu cuideachd sùil a thoirt air an t-sianal agam aig teileagram =)

Dealbhadh: Ciudha fios air ais ioma-ìre

Anns an òraid seo, bidh sinn a 'bruidhinn mu na duilgheadasan a bhith a' leasachadh aon de na dòighean as ainmeile a thaobh
planadh, ris an canar Ciudha fios air ais ioma-ìre (MLFQ). Chaidh clàr-ama MLFQ a mhìneachadh an toiseach ann an 1962 le Fernando J. Corbató ann an siostam ris an canar
Siostam roinneadh ùine co-fhreagarrach (CTSS). Na h-obraichean seo (a’ toirt a-steach obraichean nas fhaide air adhart
Multics) an dèidh sin ainmeachadh airson Duais Turing. Bha an clàr-ama
an dèidh sin leasachadh agus fhuair e an coltas a lorgar ann mu thràth
cuid de shiostaman ùr-nodha.

Bidh an algairim MLFQ a’ feuchainn ri fuasgladh fhaighinn air 2 dhuilgheadas bunaiteach a tha a’ dol thairis air.
An toiseach, bidh e a’ feuchainn ris an ùine tionndaidh a mheudachadh, a tha, mar a bhruidhinn sinn san òraid roimhe, air a mheudachadh leis an dòigh tòiseachaidh aig ceann a’ chiudha
gnìomhan goirid. Ach, chan eil fios aig an OS dè cho fada ‘s a ruitheas am pròiseas seo no am pròiseas sin, agus seo
eòlas riatanach airson obrachadh algorithms SJF, STCF. San dàrna àite, MLFQ a 'feuchainn
dèan an siostam freagairteach do luchd-cleachdaidh (mar eisimpleir, dhaibhsan a tha nan suidhe agus
a’ coimhead air an sgrion fhad ‘s a tha thu a’ feitheamh ris a ’ghnìomh a chrìochnachadh) agus mar sin lughdaich an ùine
freagairt. Gu mì-fhortanach, bidh algorithms mar RR a 'lùghdachadh ùine freagairt, ach
droch bhuaidh a thoirt air tomhas ùine tionndaidh. Mar sin an duilgheadas againn: Mar a nì thu dealbhadh
clàr-ama a choinnicheas ris na riatanasan againn agus aig an aon àm nach eil fios againn càil mu dheidhinn
nàdar a’ phròiseis, san fharsaingeachd? Ciamar as urrainn don neach-clàraidh feartan gnìomhan ionnsachadh,
a bhios e a’ cur air bhog agus mar sin a’ dèanamh cho-dhùnaidhean clàraidh nas fheàrr?

Tha brìgh na trioblaid: Ciamar a dhealbhadh suidheachadh ghnìomhan gun eòlas foirfe?
Mar a dhealbhaicheas tu clàr-ama a lughdaicheas an ùine freagairt aig an aon àm
airson gnìomhan eadar-ghnìomhach agus aig an aon àm a’ lughdachadh ùine tionndaidh gun fhios
eòlas air ùine cur an gnìomh gnìomh?

Nota: ag ionnsachadh bho thachartasan roimhe

Tha ciudha MLFQ na dheagh eisimpleir de shiostam air a bheil trèanadh
tachartasan san àm a dh’ fhalbh gus ro-innse a dhèanamh air an àm ri teachd. Tha dòighean-obrach leithid seo gu math tric
a lorgar san OS (Agus mòran mheuran eile ann an saidheans coimpiutaireachd, meuran nam measg
ro-innse bathar-cruaidh agus algorithms tasgadan). Tursan coltach ris
brosnachaidh nuair a tha ìrean giùlain aig gnìomhan agus mar sin tha iad ro-innseach.
Ach, bu chòir a bhith faiceallach leis an dòigh seo, oir tha ro-innse gu math furasta.
is dòcha gu bheil e ceàrr agus gun toir e air an t-siostam co-dhùnaidhean nas miosa a dhèanamh na
bitheadh ​​e gun eolas.

MLFQ: Riaghailtean bunaiteach

Beachdaich air riaghailtean bunaiteach an algairim MLFQ. Agus ged a tha buileachadh an algairim seo
Tha grunn ann, tha na dòighean-obrach bunaiteach coltach.
Anns a’ bhuileachadh air am beachdaich sinn, bidh grunnan aig MLFQ
ciudha fa leth, agus bidh prìomhachas eadar-dhealaichte aig gach fear dhiubh. Uair sam bith,
tha an obair deiseil airson a chur gu bàs san aon ciudha. Bidh MLFQ a’ cleachdadh phrìomhachasan,
gus co-dhùnadh dè an obair a bu chòir a ruith airson a chuir gu bàs, i.e. obair le nas àirde
prìomhachas (gnìomh bhon ciudha leis a’ phrìomhachas as àirde) a chuir air bhog aig a’ chiad dol a-mach
ciudha.
Gu dearbh, faodaidh barrachd air aon obair a bhith ann an ciudha sònraichte, mar sin
mar sin bidh an aon phrìomhachas aca. Anns a 'chùis seo, thèid an inneal a chleachdadh
RR airson planadh cur air bhog am measg nan gnìomhan sin.
Mar sin ruigidh sinn dà riaghailt bhunaiteach airson MLFQ:

  • Riaghailt 1: Ma tha prìomhachas (A) > Prìomhachas (B), ruithidh gnìomh A (cha dèan B)
  • Riaghailt2: Ma tha prìomhachas (A) = Prìomhachas (B), tòisichear A&B a’ cleachdadh RR

Stèidhichte air na tha gu h-àrd, is iad na prìomh eileamaidean ann a bhith a’ dealbhadh MLFQ
nam prìomhachasan. An àite prìomhachas stèidhichte a thoirt do gach fear
gnìomh, bidh MLFQ ag atharrachadh a phrìomhachas a rèir an giùlan a chaidh fhaicinn.
Mar eisimpleir, ma bhios gnìomh an-còmhnaidh a’ stad air an CPU fhad ‘s a tha thu a’ feitheamh ri cuir a-steach meur-chlàr,
Cumaidh MLFQ prìomhachas a’ phròiseis àrd oir sin mar a tha
Bu chòir don phròiseas eadar-ghnìomhach obrachadh. Ma tha, air an làimh eile, tha an obair daonnan agus
tha e dian CPU airson ùine fhada, bheir MLFQ ìsleachadh air
prìomhachas. Mar sin, nì MLFQ sgrùdadh air giùlan phròiseasan aig an àm a tha iad a’ ruith.
agus giùlain a chleachdadh.
Nach toir sinn eisimpleir de cò ris a dh’ fhaodadh na ciudha a bhith coltach aig àm air choreigin
ùine agus an uairsin gheibh thu rudeigin mar seo:
Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)

Anns an sgeama seo, tha 2 phròiseas A agus B anns a’ chiudha leis a’ phrìomhachas as àirde. Pròiseas
Tha C am badeigin sa mheadhan, agus tha pròiseas D aig fìor cheann a’ chiudha. A rèir na tha gu h-àrd
tuairisgeul air an algairim MLFQ, cha dèan an clàr-ama ach gnìomhan leis an ìre as àirde
prìomhachas a rèir RR, agus bidh gnìomhan C, D gun obair.
Gu nàdarra, cha toir dealbh statach dealbh iomlan air mar a tha MLFQ ag obair.
Tha e cudromach tuigsinn gu dìreach mar a bhios an dealbh ag atharrachadh thar ùine.

Oidhirp 1: Mar a dh’ atharraicheas tu am prìomhachas

Aig an ìre seo, feumaidh tu co-dhùnadh ciamar a dh’ atharraicheas MLFQ an ìre prìomhachais
gnìomh (agus mar sin suidheachadh na h-obrach anns a’ chiudha) rè a chuairt-beatha. Airson
de seo, feumaidh tu an sruth-obrach a chumail nad inntinn: tomhas sònraichte
gnìomhan eadar-ghnìomhach le amannan ruith goirid (agus mar sin sgaoileadh tric
CPU) agus grunn ghnìomhan fada a bhios a’ cleachdadh an CPU fad na h-ùine obrach aca, fhad ‘s a tha
chan eil ùine freagairt airson gnìomhan mar sin cudromach. Agus mar sin faodaidh tu a 'chiad oidhirp a dhèanamh
cuir an gnìomh algorithm MLFQ leis na riaghailtean a leanas:

  • Rule3: Nuair a thig gnìomh a-steach don t-siostam, thèid a chuir anns a’ chiudha leis an ìre as àirde
  • prìomhachas.
  • Rule4a: Ma chleachdas gnìomh an uinneag ùine slàn aige, bidh e an uairsin
  • tha am prìomhachas air a lughdachadh.
  • Rule4b: Ma dh'fhàgas Gnìomh an CPU mus tig an uinneag ùine gu crìch, an uairsin e
  • fhathast leis an aon phrìomhachas.

Eisimpleir 1: Gnìomh fad-ùine singilte

Mar a chì thu san eisimpleir seo, tha an obair aig faighinn a-steach air a shuidheachadh leis an ìre as àirde
prìomhachas. Às deidh uinneag ùine 10ms, tha am pròiseas air a lughdachadh ann am prìomhachas.
clàr-ama. Às deidh na h-uinneige an ath thuras, tha an obair air a dhol sìos gu mu dheireadh
prìomhachas as ìsle san t-siostam, far a bheil e fhathast.
Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)

Eisimpleir 2: Thog sinn gnìomh goirid

A-nis chì sinn eisimpleir air mar a dh'fheuchas MLFQ ri dhol faisg air SJF. Ann an sin
eisimpleir, dà ghnìomh: A, a tha na ghnìomh fad-ùine an-còmhnaidh
a’ gabhail thairis CPU agus B, a tha na obair ghoirid eadar-ghnìomhach. Osbarr
gun robh A air a bhith a’ ruith airson ùine mu thràth ron àm a thàinig gnìomh B.
Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)

Tha an graf seo a’ sealltainn toraidhean an t-suidheachaidh. Gnìomh A, mar obair sam bith,
bha cleachdadh an CPU aig a’ bhonn. Thig Gnìomh B aig àm T = 100 agus thig e
air a chuir anns a’ chiudha prìomhachais as àirde. Leis gu bheil an ùine ruith goirid,
crìochnaichidh e mus ruig e an ciudha mu dheireadh.

Bhon eisimpleir seo, bu chòir dhut prìomh amas an algairim a thuigsinn: leis nach eil an algairim
tha fios aige air obair fhada no goirid, an sin an toiseach tha e a 'gabhail ris gur e an obair a th' ann
goirid agus a’ toirt a’ phrìomhachas as àirde dha. Mas e fìor obair ghoirid a th’ ann, an uairsin
cuiridh e an gnìomh gu sgiobalta, air neo mas e obair fhada a th’ ann gluaisidh e gu slaodach
ann am prìomhachas sìos agus dearbhaidh i a dh’ aithghearr gur e obair fhada a th’ innte nach eil
feum air freagairt.

Eisimpleir 3: Dè mu dheidhinn I/O?

A-nis leig dhuinn sùil a thoirt air eisimpleir I / O. Mar a chaidh a ràdh ann an Riaghailt 4b,
ma dh’ fhàgas pròiseas am pròiseasar gun a bhith a’ cleachdadh an ùine pròiseasar aige gu h-iomlan,
an uairsin tha e fhathast aig an aon ìre prìomhachais. Tha rùn an riaghailt seo gu math sìmplidh.
- ma bhios an obair eadar-ghnìomhach a’ coileanadh tòrr I/O, mar eisimpleir, a’ feitheamh
bho phrìomh bhuillean no luchag an neach-cleachdaidh, bheir gnìomh mar sin am pròiseasar an-asgaidh
roimh an uinneig ainmichte. Cha bu mhath leinn a leithid de phrìomhachas fhàgail air falbh,
agus mar sin fanaidh e aig an aon ìre.
Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)

Tha an eisimpleir seo a' sealltainn mar a dh'obraicheadh ​​an algairim le pròiseasan mar seo - gnìomh eadar-ghnìomhach B, nach fheum ach an CPU airson 1ms mus tèid a chur an gnìomh
Pròiseas I/O agus obair fhada A, a bhios a’ cleachdadh an CPU fad na h-ùine.
Bidh MLFQ a’ cumail pròiseas B aig a’ phrìomhachas as àirde mar a tha e a’ leantainn
leig às an CPU. Mas e gnìomh eadar-ghnìomhach a th’ ann am B, tha an algairim sa chùis seo air ruighinn
is e an t-amas aige gnìomhan eadar-ghnìomhach a chuir air bhog gu sgiobalta.

Duilgheadasan leis an algairim MLFQ gnàthach

Anns na h-eisimpleirean roimhe seo, tha sinn air dreach bunaiteach de MLFQ a thogail. Agus tha e coltach gu bheil e
a’ dèanamh a chuid obrach gu math agus gu cothromach, a’ cuairteachadh ùine CPU gu cothromach eadar
gnìomhan fada agus a’ ceadachadh gnìomhan goirid no gnìomhan air a bheil mòran ruigsinn
gu I/O airson giullachd gu sgiobalta. Gu mì-fhortanach, tha grunn dhòighean anns an dòigh-obrach seo
duilgheadasan mòra.
An toiseach, duilgheadas an acras: ma bhios mòran eadar-ghnìomhach aig an t-siostam
gnìomhan, ithidh iad an ùine CPU gu lèir agus mar sin chan eil iad fada
chan fhaigh an obair cothrom a bhith air a chur gu bàs (tha iad leis an acras).

San dàrna àite, dh'fhaodadh luchd-cleachdaidh snasail na prògraman aca a sgrìobhadh gus sin
amadan a dhèanamh air an neach-clàraidh. Is e am mealladh rudeigin a dhèanamh gus sparradh
clàr-ama gus barrachd ùine CPU a thoirt don phròiseas. An algairim a
a tha air a mhìneachadh gu h-àrd gu math so-leònte ri leithid de dh’ ionnsaighean: mus bi an uinneag ùine gu practaigeach
thairis, feumaidh tu gnìomhachd I / O a dhèanamh (dha cuid, ge bith dè am faidhle)
agus mar sin saor an CPU. Leigidh giùlan mar seo leat fuireach san aon rud
bidh an ciudha fhèin agus a-rithist a’ faighinn ceudad nas motha de ùine CPU. Ma thèid a dhèanamh
tha seo ceart (me ruith 99% den ùine uinneig mus cuir thu a-mach an CPU),
faodaidh a leithid de ghnìomh dìreach monopolize a dhèanamh air a’ phròiseasar.

Mu dheireadh, faodaidh prògram a ghiùlan atharrachadh thar ùine. Na gnìomhan sin
faodaidh a chleachd an CPU a bhith eadar-ghnìomhach. Anns an eisimpleir againn, coltach
chan fhaigh gnìomhan làimhseachadh ceart bhon chlàr-ama, mar a bhiodh cuid eile
(tùsail) gnìomhan eadar-ghnìomhach.

Ceist don luchd-èisteachd: dè na h-ionnsaighean air a 'chlàr-ama a dh' fhaodadh a bhith air an dèanamh ann an saoghal an latha an-diugh?

Oidhirp 2: Meudaich am prìomhachas

Feuchaidh sinn ris na riaghailtean atharrachadh agus feuch an urrainn dhuinn duilgheadasan a sheachnadh
acras. Dè as urrainn dhuinn a dhèanamh gus dèanamh cinnteach gu bheil sin co-cheangailte
Gheibh gnìomhan CPU an ùine (eadhon mura h-eil iad fada).
Mar fhuasgladh sìmplidh air an duilgheadas, faodaidh tu moladh bho àm gu àm
àrdachadh prìomhachas gach gnìomh mar sin san t-siostam. Tha iomadh dòigh ann
gus seo a choileanadh, leig dhuinn feuchainn ri rudeigin sìmplidh a chur an gnìomh mar eisimpleir: eadar-theangachadh
a h-uile gnìomh aig an aon àm chun phrìomhachas as àirde, mar sin an riaghailt ùr:

  • Riaghailt5: Às deidh beagan ùine S, gluais a h-uile gnìomh san t-siostam chun ciudha as àirde.

Bidh an riaghailt ùr againn a’ fuasgladh dà dhuilgheadas aig an aon àm. An toiseach, na pròiseasan
gealltainn nach bi an t-acras ort: bidh gnìomhan anns a’ chiudha as àirde a’ roinn
ùine pròiseasar a rèir an algairim RR agus mar sin gheibh a h-uile pròiseas
ùine pròiseasar. San dàrna àite, ma tha cuid de phròiseas a chleachdar roimhe
is e dìreach am pròiseasar a bhios eadar-ghnìomhach, fuirichidh e anns a’ chiudha leis an ìre as àirde
prìomhachas às deidh àrdachadh fhaighinn chun phrìomhachas as àirde aon uair.
Beachdaich air eisimpleir. Anns an t-suidheachadh seo, smaoinich air aon phròiseas a 'cleachdadh
Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)

CPU agus dà phròiseas eadar-ghnìomhach, goirid. Air an taobh chlì anns an fhigear, tha am figear a 'sealltainn an giùlan gun àrdachadh prìomhachais, agus mar sin bidh an obair fhada a' tòiseachadh leis an acras às deidh dà ghnìomh eadar-ghnìomhach a 'tighinn air an t-siostam. Anns an fhigear air an taobh cheart, thèid àrdachadh prìomhachais a dhèanamh gach 50ms agus mar sin tha a h-uile pròiseas cinnteach gum faigh iad ùine pròiseasar agus thèid a thòiseachadh bho àm gu àm. Tha 50ms sa chùis seo air a ghabhail mar eisimpleir, ann an da-rìribh tha an àireamh seo beagan nas àirde.
Tha e follaiseach gu bheil cur ris an ùine àrdachadh bho àm gu àm S a’ leantainn gu
ceist loidsigeach: dè an luach a bu chòir a shuidheachadh? Aon den fheadhainn a tha airidh air
thug innleadairean siostaman John Ousterhout iomradh air meudan co-chosmhail ann an siostaman ri voo-doo
seasmhach, leis gu robh feum aca ann an dòigh air choreigin draoidheachd dhubh airson an rud ceart
leigeil ris. Agus, gu mì-fhortanach, tha a leithid de bhlas aig S. Ma shuidhicheas tu an luach cuideachd
bidh gnìomhan mòra - fada leis an acras. 'S ma shuidhicheas tu e ro ìosal,
chan fhaigh gnìomhan eadar-ghnìomhach ùine CPU ceart.

Oidhirp 3: Cunntasachd nas Fheàrr

A-nis tha aon duilgheadas eile againn ri fhuasgladh: mar nach bu chòir
cead a thoirt do ar clàr-ama a mhealladh? Is e na h-eucoraich airson a’ chomas seo
riaghailtean 4a, 4b a leigeas le obair a phrìomhachas a chumail le bhith a’ saoradh am pròiseasar
mus tig an ùine ainmichte gu crìch. Ciamar dèiligeadh ris?
Faodar beachdachadh air an fhuasgladh sa chùis seo mar chunntas nas fheàrr air ùine CPU air gach fear
Ìre MLFQ. An àite a bhith a 'dìochuimhneachadh an ùine a chleachd am prògram
pròiseasar airson an ùine ainmichte, bu chòir dhut aire a thoirt dha agus a shàbhaladh. Às deidh
tha am pròiseas air an ùine ainmichte a chleachdadh, bu chòir a chuir sìos chun ath fhear
ìre prìomhachais. A-nis chan eil e gu diofar ciamar a chleachdas am pròiseas an ùine aige - ciamar
an-còmhnaidh a’ coimpiutaireachd air a’ phròiseasar no mar sheata de ghairmean. Mar sin,
Bu chòir riaghailt 4 ath-sgrìobhadh mar a leanas:

  • Riaghailt4: Às deidh do ghnìomh an ùine ainmichte a chleachdadh anns a’ chiudha gnàthach (ge bith cia mheud uair a shaor e an CPU), tha prìomhachas gnìomh mar seo air a lughdachadh (bidh e a’ gluasad sìos an ciudha).

Bheir sinn sùil air eisimpleir:
Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)»

Tha an dealbh a' sealltainn dè thachras ma dh'fheuchas tu ri cleas a dhèanamh air a' chlàr-ama
nam biodh e leis na riaghailtean roimhe 4a, bhiodh 4b mar an toradh air an taobh chlì. Le ùr
tha an riaghailt gu bheil an toradh air an làimh dheis. Mus deach a dhìon, dh’ fhaodadh pròiseas sam bith fios a chuir gu I / O mus deach a chrìochnachadh agus
mar sin smachd a chumail air an CPU, às deidh dha dìon a chomasachadh, ge bith dè an giùlan
I/O, thèid e sìos anns a’ chiudha fhathast agus mar sin chan urrainn dha a bhith mì-onarach
gabh thairis goireasan CPU.

Ag adhartachadh MLFQ agus cùisean eile

Leis na leasachaidhean gu h-àrd, tha duilgheadasan ùra ag èirigh: aon de na prìomh
ceistean - ciamar a nì thu parameter leithid clàr-ama? An fheadhainn sin. Cia mheud a bu chòir a bhith
ciudha? Dè bu chòir a bhith meud uinneag a’ phrògraim taobh a-staigh a’ chiudha? Ciamar
bu chòir prìomhachas a thoirt do phrògram gu tric gus an t-acras agus an t-acras a sheachnadh
gus aire a thoirt don atharrachadh ann an giùlan a’ phrògram? Airson na ceistean sin, chan eil sìmplidh
freagairt agus dìreach deuchainnean le luchdan agus rèiteachadh às deidh sin
faodaidh clàr-ama leantainn gu cothromachadh iomchaidh.

Mar eisimpleir, leigidh a’ mhòr-chuid de bhuileachadh MLFQ leat diofar a shònrachadh
amannan airson diofar ciudhaichean. Mar as trice tha ciudhaichean àrd-phrìomhachais
ùine ghoirid. Tha na ciudhaichean sin a’ gabhail a-steach gnìomhan eadar-ghnìomhach,
atharrachadh eadar a tha gu math mothachail agus bu chòir dha 10 no nas lugha a ghabhail
ms. An coimeas ri sin, tha ciudhaichean le prìomhachas ìosal a’ toirt a-steach gnìomhan fad-ùine a bhios a’ cleachdadh
CPU. Agus anns a 'chùis seo, tha ùine fhada a' freagairt gu math (100ms).
Siostaman-obrachaidh: Trì pìosan furasta. Pàirt 5: Dealbhadh: Ciudha fios air ais ioma-ìre (eadar-theangachadh)

San eisimpleir seo, tha gnìomhan 2 ann a tha air obrachadh ann an ciudha àrd-phrìomhachais 20
ms air a roinn ann an uinneagan 10ms. 40ms anns a’ chiudha sa mheadhan (uinneag 20ms) agus anns a’ chiudha le prìomhachas ìosal
thàinig uinneag ùine ciudha gu bhith 40ms far an do chuir na gnìomhan crìoch air an obair aca.

Tha buileachadh MLFQ ann an Solaris OS na sheòrsa de chlàran roinneadh ùine.
Bheir an clàr-ama seata de chlàran seachad a mhìnicheas gu dìreach mar a bu chòir dha
atharraich prìomhachas a 'phròiseis thairis air a bheatha, dè am meud a bu chòir a bhith
uinneag ri riarachadh agus dè cho tric airson prìomhachasan gnìomh àrdachadh. Rianaire
faodaidh an siostam eadar-obrachadh leis a’ chlàr seo agus toirt air a’ chlàr-ama giùlan fhèin
gu eadar-dhealaichte. Gu gnàthach, tha 60 ciudha sa chlàr seo le àrdachadh mean air mhean
meud uinneig bho 20ms (prìomhachas àrd) gu grunn cheudan ms (prìomhachas as ìsle), agus
cuideachd le àrdachadh a h-uile gnìomh uair san diog.

Cha bhith luchd-clàraidh MLFQ eile a’ cleachdadh clàr no rud sònraichte
na riaghailtean a tha air am mìneachadh sa chaibideil seo, air an làimh eile, bidh iad a 'tomhas prìomhachasan a' cleachdadh
foirmlean matamataigeach. Mar eisimpleir, bidh an clàr-ama ann an FreeBSD a’ cleachdadh foirmle airson
obrachadh a-mach prìomhachas gnìomh làithreach stèidhichte air dè an ìre sa phròiseas
chleachd an CPU. A bharrachd air an sin, bidh cleachdadh CPU a’ grodadh thar ùine, agus mar sin
Mar sin, tha an àrdachadh prìomhachais beagan eadar-dhealaichte na tha air a mhìneachadh gu h-àrd. Tha seo fìor
ris an canar algorithms lobhadh. Mar an dreach 7.1, bidh FreeBSD a’ cleachdadh clàr-ama ULE.

Mu dheireadh, tha feartan eile aig mòran de luchd-dealbhaidh. Mar eisimpleir, cuid
bidh luchd-clàraidh a’ gleidheadh ​​​​ìrean nas àirde airson obrachadh an t-siostam obrachaidh agus mar sin
Mar sin, chan urrainn do phròiseas cleachdaiche sam bith am prìomhachas as àirde fhaighinn
siostam. Leigidh cuid de shiostaman dhut comhairle a thoirt seachad airson cuideachadh
an neach-clàraidh gus prìomhachas ceart a dhèanamh. Mar eisimpleir, a 'cleachdadh an àithne snog
faodaidh tu prìomhachas gnìomh àrdachadh no lughdachadh agus mar sin àrdachadh no lughdachadh
lughdaich na cothroman a th’ aig a’ phrògram airson ùine CPU.

MLFQ: Geàrr-chunntas

Tha sinn air cunntas a thoirt air dòigh-dealbhaidh ris an canar MLFQ. A ainm
co-dhùnadh ann am prionnsabal obrachadh - tha grunn ciudha agus a 'cleachdadh fios air ais
prìomhachas a thoirt do dh’ obair.
Bidh cruth deireannach nan riaghailtean mar a leanas:

  • Riaghailt1: Ma tha prìomhachas (A) > Prìomhachas (B), ruithidh gnìomh A (cha dèan B)
  • Riaghailt2: Ma tha prìomhachas (A) = Prìomhachas (B), tòisichear A&B a’ cleachdadh RR
  • Riaghailt3: Nuair a thig gnìomh a-steach don t-siostam, thèid a chuir anns a’ chiudha prìomhachais as àirde.
  • Riaghailt4: Às deidh do ghnìomh an ùine ainmichte a chleachdadh anns a’ chiudha gnàthach (ge bith cia mheud uair a shaor e an CPU), tha prìomhachas gnìomh mar seo air a lughdachadh (bidh e a’ gluasad sìos an ciudha).
  • Riaghailt5: Às deidh beagan ùine S, gluais a h-uile gnìomh san t-siostam chun ciudha as àirde.

Tha MLFQ inntinneach airson an adhbhar a leanas - an àite a bhith feumach air eòlas mu dheidhinn
nàdar na h-obrach ro-làimh, bidh an algairim ag ionnsachadh giùlan na h-obrach agus na seataichean san àm a dh'fhalbh
prìomhachasan a rèir sin. Mar sin, bidh e a 'feuchainn ri suidhe air dà chathair aig an aon àm - gus coileanadh a choileanadh airson gnìomhan beaga (SJF, STCF) agus gu h-onarach a' ruith feadhainn fhada,
Obraichean luchdachadh CPU. Mar sin, tha mòran shiostaman, a’ gabhail a-steach BSD agus na toraidhean aca,
Bidh Solaris, Windows, Mac a’ cleachdadh seòrsa de dh’ algairim mar an clàr-ama
MLFQ mar bhun-loidhne.

Stuthan a bharrachd:

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. en.wikipedia.org/wiki/Scheduling_(coimpiutaireachd)
  3. duilleagan.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

Source: www.habr.com