2.1.5 Ressursside haldus protsessidele

iDevice ikoon 2.1.5 Ressursside haldus protsessidele

Riistvara ressursse kasutavad nii OS kui kasutajarakendused. Aktiivsed rakendused saavad kasutada protsessori ressurssi protsessidena. Aktiivseid protsesse on korraga töös palju ja ressursid on piiratud. OS vastutab arvuti riistvararessursside halduse eest, kasutades enda käivitamiseks neidsamu ressursse. Ta peab jagama protsessoriressurssi protsesside tarbeks ja mitmeprotsessorilise süsteemi puhul jagama protsesside käivitamise üle kõigi protsessorite. Teine oluline ressurss, mida OS koos protsessori mäluhaldusriistvaraga jagab on põhimälu. OS otsustab ka millal mingi rakendus saab juurdepääsu S/V seadmele ja kontrollib failidele juurdepääsu ja failide kasutust.
Ressursside jagamise ja planeerimise poliitika peab arvestama järgmisi faktoreid:

  • Erapooletus: kõikidele protsessidele, mis soovivad juurdepääsu samale ressursile, tuleb jagada võrdselt ja õiglaselt vastavat ressurssi.
  • Prioriteetide seadmise võime: eri töödel võivad olla erinevad prioriteedid ja OS peab suutma teha ressursijagamise ja planeerimise otsused kõikidest nõuetest lähtuvalt ning suutma teha neid otsuseid dünaamiliselt vastavalt asjaolude muutumisele.
  • Efektiivsus: OS peab püüdma maksimeerida tulemuslikkust ja minimeerida viivitusi.

OS haldab järjekorda protsessidest, mis ootavad mingit ressursi. Üldine strateegia on anda igale protsessile järjekorras võrdne aeg ressurssi kasutada. Seda nimetatakse ringiratast (Round-robin) tehnikaks. Täiendavate prioriteetide seadmisega on võimalik protsessidele ressursijagamist ühes või teises suunas mõjutada.
S/V ressursside kasutamiseks on igal S/V seadmel oma järjekord. OS otsustab, milline protsess saab õiguse esimeses järjekorras seadet kasutada. Teatud seadme puhul võib olla põhjendatud ressursside jagamise järjekorda korrigeerida, et seadme andmevahetusoperatsiooni viivitused oleksid minimaalsed. Näiteks kõvaketta poole pöördumisel on mõttekas järjestada päringud nii, et seadmelt andmete lugemine oleks korraldatud võimalikult järjest, kuna kõvaketta pea ümberpaigutamine sisaldab olulisi viivitusi andmevahetusel.
Seadmete draiverid on need liidesprogrammid, mille kaudu OS saab juurdepääsu konkreetse seadmega töötamiseks. Seadmete draiverid töötavad kernelirežiimis ja muundavad S/Vfunktsioonide käske spetsiifilisteks riistvaraseadmete S/V päringuteks.
Protsessid saavad kasutada OS'i teenuseid nagu näiteks pöörduda S/V seadme poole kasutades süsteemikutset. Kui katkestust teenindav programm on täidetud naaseb OS uuesti protsessi käivituse juurde.Allpool on loetletud sammud rakenduse pöördumisel S/V seadme poole:

  • Rakendus saadab päringu S/V poole pöördumiseks kasutades süsteemikutsetkernelile
  • Kerneli S/V haldur võtab päringu vastu ja saadab päringu edasi seadme draiverile
  • Seadme draiver eraldab mälupuhvri andmete lugemiseks ja annab käsu edasi seadme kontrollerile selle juhtregistri mäluaadressi kaudu
  • Seadme kontroller suhtleb konkreetse seadmega, et täita andmevahetusoperatsioon
  • Draiveri poolt saab määrata kuidas andmevahetusoperatsioon läbi viiakse ja kas draiver jälgib selle kulgu või on andmevahetusoperatsioon hallatud DMA kontrolleri poolt, mis kutsub esile katkestuse protsessorile kui andmevahetus on täidetud
  • Protsessor võtab katkestuse vastu ja suunab selle täitmise katkestust teenindavale alamprogrammile, mis salvestab andmed seadme draiveri puhvris ja teavitab sellest seadme draiverit ning naaseb katkestuse täitmisest
  • Seadme draiver saadab andmevahetuse info edasi kerneliS/V haldurile
  • KerneliS/V haldur edastab andmed päringu alustanud protsessile ja vabastab protsessi blokeeritud staatusest
  • Järgmisel protsessi täitmisel protsessori poolt jätkab protsess töötamist süsteemikutse režiimist tagasipöördumisega.

Microsoft Windows OS'is on seadmete S/Voperatsioonid hallatud kasutades järgmisi komponente:

  • S/V haldur (I/O Manager) on keskne komponent S/Voperatsioonidele, mis ühendab rakendused ja süsteemikomponendid virtuaalseteks, loogilisteks ja füüsilisteks seadmeteks ja defineerib infrastuktuuri, et toetada seadmete draivereid.
  • Seadme draiver (Device Driver) on S/Vliides konkreetsele seadmele. Seadme draiver saab käske S/V haldurilt ja seadmedraiverid informeerivad S/V haldurit käsu täitmisest.
  • PnP (Plug and Play) haldur töötab koos S/V halduriga, et jagada riistvararessursse ning tuvastada ja reageerida seadmete lisamisele ja eemaldamisele
  • Võimsuse haldur (Power Manager) töötab koos S/V halduriga ja seadmete draiveritega, et hallata süsteemi ja seadmete võimsussäästurežiime
  • Registri andmebaas (Registry) salvestab riistavaraseadmete kirjeldust ja draiverite initsialiseerimise- ja konfiguratsiooniseadeid.
  • INF failid, draiverite installifailid, sisaldavad seadet kirjeldavat spetsiifilist infot ja draiverifailide asukohti.

Riistavara abstraktsioonikiht (HAL - Hardware Abstraction Layer), isoleerib draiverid protsessori ja katkestustekontrolleri spetsiifikast läbi rakendusliideste, mis peidavad platvormidevahelised erinevused.