Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Plánovanie priority so starnutím:
* Problém: Procesy s vysokou prioritou môžu nepretržite monopolizovať zdroje, čo zabráni procesom nižšej priority, aby sa niekedy dostali šanca na beh a potenciálne spôsobujúce hladovanie.
* Riešenie - starnutie:
* koncept: Postupom času zvyšujte prioritu procesov, ktoré čakajú dlho na získanie zdroja.
* implementácia: OS pravidelne zvyšuje prioritu čakacích procesov. To zaisťuje, že aj procesy s nízkou prioritou sa nakoniec stanú oprávnenými.
* Príklad: Proces čakajúci na čas CPU by mohol mať svoju prioritu narazený každých pár hodín. Nakoniec sa stane najvyšším procesom priority a bude naplánovaný.
2. Spravodlivé fronty a vážené spravodlivé fronty:
* Problém: Procesy požadujúce rovnaký zdroj môžu dostávať nepredvídateľné alokácie, ktoré potenciálne opakujú pred ostatnými.
* Riešenie - spravodlivé fronty:
* koncept: Zaručte každý proces spravodlivý podiel zdroja v priebehu času.
* implementácia:
* Procesy čakajúce na zdroj sú umiestnené vo fronte.
* Zdroj sa prideľuje procesom spravodlivým spôsobom, často s použitím okrúhleho robota alebo podobných plánovacích algoritmov.
* Každý proces je uvedený v časovom plátku (alebo inej kvóte zdrojov) skôr, ako sa otočí iný proces.
* vážené férové fronty (WFQ):
* koncept: Variácia spravodlivého frontu, kde sa každému procesu pridelí váhu, ktorá určuje jeho relatívny podiel na zdroji.
* implementácia:
* Procesy s vyššími váhami dostávajú proporcionálne väčšie plátky zdroja.
* To umožňuje uprednostňovanie dôležitých procesov a zároveň zabezpečiť, aby iné procesy získali určitý prístup.
3. Pridelenie zdrojov s prevenciou/vyhýbaním sa zablokovaniu:
* Problém: Detam môže viesť k hladovaniu. Ak sú procesy uviaznuté čakaním na zdroje druhej strany, niektoré môžu byť neurčito zablokované. Aj keď je uviaznutie prerušené, rovnaké procesy by sa mohli opakovane vybrať ako obete, čo viedlo k hladovaniu.
* Riešenie:
* Prevencia na zablokovanie: Štrukturálne navrhnúť systém prideľovania zdrojov na odstránenie podmienok, ktoré spôsobujú patovú situáciu. To by mohlo zahŕňať:
* Eliminácia vzájomného vylúčenia (zvyčajne nie je možné): Umožňuje, aby zdroje používali súčasne viaceré procesy.
* Hold and Wait Fory: Vyžadujte proces, aby ste požiadali o všetky svoje zdroje naraz, alebo prepustenie všetkých držaných zdrojov pred tým, ako požiadate o viac.
* Žiadne preemption: Nechajte OS násilne odobrať zdroje od procesu (ak proces drží zdroj, ktorý potrebuje iný proces, a čaká na iný zdroj).
* kruhové čakanie prevencie: Ukladať celkové objednávanie typov zdrojov a vyžadovať procesy na požadovanie zdrojov vo vzostupnom poradí.
* Vyhýbanie sa na zablokovaní: Dynamicky monitorujte stav prideľovania zdrojov a vyhnite sa prideľovaniu zdrojov, ak by to mohlo viesť k uviaznutiu. Bankerov algoritmus je častým príkladom.
* Prečo to pomáha hladovať: Tým, že sa vyhýba patlníkom, OS zaisťuje, že zdroje sa nakoniec uvoľnia a sprístupňujú čakacie procesy, čím sa znižuje pravdepodobnosť neurčitého blokovania.
4. Rezervačné systémy:
* Problém: Ostatné procesy môžu ostatné nepretržite prekonávať, pokiaľ ide o prístup k zdrojom.
* Riešenie:
* koncept: Umožnite procesom rezervovať zdroje vopred.
* implementácia:
* Proces môže požiadať o zaručené pridelenie zdroja na konkrétne obdobie.
* OS zaisťuje, že zdroj je k dispozícii, keď ho proces potrebuje.
* Prečo to pomáha hladovať: Rezervácia bráni opakovane zamietnutiu procesu procesu, pretože nemôže konkurovať okamžitým požiadavkám na iné procesy. Zabezpečuje určitú minimálnu úroveň služieb.
5. Plánovanie lotérie:
* Problém: Procesy môžu byť neustále nešťastné v náhodných schémach prideľovania.
* Riešenie:
* koncept: Dajte procesy „Lottery Lickets“ pre zdroj. OS náhodne vyberie lístok a proces, ktorý drží tento lístok, získa zdroj.
* implementácia:
* Každému procesu je pridelené množstvo lístkov úmerných jeho dôležitosti alebo potrebám.
* OS drží lotériu na určenie, ktorý proces získa zdroj.
* Prečo to pomáha hladovať: Aj keď je stále možné, aby proces bol nešťastný v jednej lotérii, postupom času, procesy s viacerými vstupenkami štatisticky dostanú väčší podiel na zdroji, čím sa zabráni trvalému odmietnutiu služieb. Čím viac lístkov má proces, tým vyššia je pravdepodobnosť výhry. Dokonca aj procesy s niekoľkými lístkami majú nenulovú šancu na výhru, čo zabráni úplnému hladovaniu.
6. Mechanizmy spätnej väzby:
* Problém: Algoritmy statického plánovania sa nemusia dobre prispôsobiť meniacim sa podmienkam systému.
* Riešenie:
* koncept: Monitorujte výkonnosť procesov a podľa toho upravte pridelenie zdrojov.
* implementácia:
* OS sleduje, ako dlho čakali procesy na zdroje.
* Ak proces čakal na nadmerné množstvo času, OS môže zvýšiť svoju prioritu, prideliť viac zdrojov alebo prepnúť na iný algoritmus plánovania.
* Prečo to pomáha hladovať: Mechanizmy spätnej väzby umožňujú OS dynamicky reagovať na situácie hladovania a podniknúť nápravné opatrenia.
Kľúčové úvahy:
* Riadenie: Všetky tieto riešenia prichádzajú s niektorými réžiami. Zložitosť algoritmu ovplyvňuje využitie CPU a sledovanie čakacích časov si vyžaduje pamäť.
* Spravodlivosť vs. účinnosť: Často existuje kompromis medzi spravodlivosťou (zabránením hladovaniu) a celkovou efektívnosťou systému. Dokonale spravodlivý systém nemusí byť najefektívnejší z hľadiska priepustnosti.
* kontext špecifické: Najlepší prístup na prevenciu hladovania závisí od prideleného špecifického zdroja, povahy procesov a celkových cieľov systému. Operačný systém v reálnom čase (RTOS) má prísnejšie požiadavky ako OS všeobecne navyše.
Stručne povedané, operačné systémy využívajú rôzne techniky, často v kombinácii, aby zabránili hladovaniu a zabezpečili, že všetky procesy nakoniec dostanú zdroje, ktoré potrebujú na dokončenie svojich úloh. Kľúčom je vyvážiť spravodlivosť, efektívnosť a špecifické požiadavky systému.