Operacinė sistema: Skirtumas tarp puslapio versijų

5 844 pridėti baitai ,  prieš 3 metus
OS procesų vykdymo planavimas
(OS procesų vykdymo planavimas)
{{Main|Procesas (informatika)}}
 
Operacinė sistema veikia kaip sąsaja tarp vartotojo ir techninės įrangos. Vartotojas bendrauja su technine įranga iš „kitos barikadų pusės“. Operacinė sistema servisų programineitechninei įrangai rinkinys, suteikiantis PĮ galimybę abstrahuotiskreiptis nuoį techninėsprocesus, sudarytus iš mažesnių procesų įrangos(servisus). Iš esmės, patį programos vykdymą galima susieti su operacinės sistemos kuriamu procesu, t. y. [[Branduolys (OS)|branduolys]] kuria procesus padalindamas atmintį bei kitus resursus, nustato procesų eiliškumą (sistemose, kuriose vienu metu yra vykdoma keletą užduočių), perduoda programos kodą į atmintį, bet vykdo pačią programą. Tuomet programa yra tarpininkas tarp vartotojo ir įrenginių bei vykdo jai numatytas funkcijas.
 
=== Kompiuterinis tinklas ===
Modernios operacinės sistemos pratęsia laikino proceso pertraukiamumo koncepciją įrangos tvarkyklėmis ({{en|drivers}}) ir operacinės sistemos branduolio kodui ({{en|kernel code}}), taigi suprantama, kad operacinės sistemos turi paskirstymo kontrolę vidiniams procesams. Operacinė sistema [[Windows Vista]] - įžanga į ''Windows'' vaizdo tvarkyklės modelį ({{en|Windows Display Driver Model}}), įdiegia šią galimybę vaizdo tvarkyklėms ({{en|display drivers}}). Operacinėje sistemoje [[Linux kernel|Linux]] laikinai pertraukiamas branduolio modelis pradėtas naudoti nuo [[Linux kernel#Feature history|2.6]] - osios versijos leidžia visoms įrangos tvarkyklėms ir keletui branduolio kodo dalių naudotis pranašumais, gaunamais iš paskirstomo daugiaprogramio apdorojimo ({{en|multi-tasking}}).
Operacinėse sistemose ''Windows'', prieš atsirandant operacinėms sistemoms [[Windows Vista]] ir [[Linux kernel|Linux]] [[Linux kernel#Feature history|2.6]] versijai, visos tvarkyklės vykdymas buvo glaudus, kas reiškė sistemos sustingimą vykdant įrangos tvarkyklių įvedimą begaliniu ciklu.
 
=== Planavimas<ref>https://www.amazon.com/Operating-Systems-Internals-Design-Principles/dp/0130319996</ref> ===
{{Main|Planavimas}}
 
Sistemose, vykdančiose daugelį procesų, vienu metu atmintyje saugoma informacija apie keletą procesų. Kiekvienas procesas turi funkcijas, atliekamas laukiant kol bus įvykdytas įvedimas/išvedimas ar kiti veiksmai susiję su išoriniais įvykiais. Procesorius vykdo vieną procesą, kai kiti procesai yra laukimo režime.
Daugprocesinės sistemos veikimas pagrįstas planavimu.
Sistemų su keliais procesoriais planavimas yra sudėtingesnis, apimantis planavimą kuris vykdomas sistemose su vienu procesoriumi.
 
==== Planavimas kompiuteriuose su vienu procesoriumi ====
{{Main|Planavimas kompiuteriuose su vienu procesoriumi}}
 
Procesoriaus planavimas skirstomas pagal procesų tipą.
Procesai turi nustatytą laiką, per kurį turi būti įvykdyti. Skirstomi į ilgus, vidutinio ilgumo, trumpus procesus.
Ilgos trukmės procesai planuojami, juos skaidant į trumpesnio vykdymo procesus. Vienose sistemose jie statomi į steką, skirtą vidutinio ilgio procesams, kitose - trumpiems procesams. Pirmu atveju procesams, jų statusas ir stadija yra saugomi diske. Pirmenybė skiriama tiems procesams, kuriuos vykdyti naudotojas parinko pirmus.
Vidutinio ilgumo procesai planuojami naudojant ''keitimo'' procesą (angl. swapping). Procesų užkrovimas į atmintį priklauso nuo sistemos galimybių vykdyti procesus vienu metu, nuo virtualios atminties egzistavimo, atminties valdymo, kiek atminties procesui reikalinga.
Trumpi procesai yra vykdomi jų neskaidant. Pertraukiami tik įvykus įvedimui/išvedimui, laiko pertraukimui, operacinės sistemos įvykiams, signalams.
Planavimo algoritmas dažniausiai yra pagrįstas procesų planavimu, ne naudotojo veiksmų aptarnavimui (žemesnis abstrakcijos lygmuo). Procesų parinkimas vykdymui yra atliekant jų vertinimą parenkant jiems skaitines reikšmes. Dažniausiai vertinami proceso vykdymo laikas, pertraukto proceso laukimo laikas, bei proceso sąvybės. Tai įvertinus, procesui nustatomas prioritetas. Procesas iš eilės vykdymui imamas tas, kurio prioritetas yra didžiausias.
 
Planavimo strategijos skiriasi būdu, kuriuo parenkamas vykdymui procesas iš laukiančiųjų eilės. Tai vienas iš planavimo strategijų rūšiavimų.
Trumpi procesai parenkami vykdymui pagal principą - pirmas pradėtas vykdyti, pirmas baigtas vykdyti, vykdymui parenkamas tas, kuris yra eilėje ilgiausiai.
Ciklinis planavimas - naudojant sistemos laikrodį. Praėjus nustatytam laiko tarpui, yra generuojamas pertraukimas, tada vykdymui yra parenkamas kitas procesas iš laukiančiųjų eilės, o vykdytas procesas padedamas į eilę.
Pačio trumpiausio proceso vykdymas - tai planavimo strategija, kai parenkamas procesas pagal tai kiek liko laiko iki jo įvykdymo. Jei užtenka laiko iki kito pertraukimo, tai procesas yra įvykdomas, kitu atveju - padedamas į eilę. Šitam algoritmui yra svarbus teisingas reikalingo procesui įvykdyti laiko įvertinimas, kurį atlieka OS. Dėl klaidos sistema ne laiku gali nustoti vykdyti procesą.
Trumpiausio laiko algoritmas - tai planavimo algoritmas, kai vykdymui parenkamas procesas su trumpiausiu laiku iki jo įvykdymo. Čia procesas vykdomas iki pabaigos.
Planavimas, pagrįstas atsiliepimo į įvykį (reagavimo) greičiu. Paskaičiuojamas statistiškai. Procesas parenkamas iš eilės pagal tai, kaip greitai yra reaguojama į jo įvykius.
Prioriteto mažinimas - planavimo strategija, kai proceso prioritetas yra sumažinamas, jei procesas ilgai vykdomas. Trūkumas - ilgų procesų vykdymo laikas dar labiau padidėja.
 
Vartotojui yra svarbu, kaip bus vykdomas ne vienas procesas, bet jų grupės. Jei jie yra įvertinami, tai naudojamas ''teisingas'' planavimo algoritmas. Čia kiekvienas vartotojas taip pat laikomas procesu. Tai reikalinga, kad įvertinti visus procesus ir jų naudojamus resursus. Šis planavimas naudojamas UNIX sistemose.
 
==== Planavimas kompiuteriuose su keliais procesoriais ====
{{Main|Planavimas kompiuteriuose su keliais procesoriais}}
 
Jei atsiranda procesas, kurį reikia vykdyti, parenkamas tuo metu laisvas procesorius. Tariama, kad visi serveriai yra vienodi. Jei visi serveriai yra užimti, tai procesas atsiduria laukiančiųjų eilėje. Galimas variantas, kad kiekvienas procesorius turi savo eilę.
Planavimo algoritmas daugiaprocesinėje sistemoje vykdo
* proceso paskyrimą procesoriui
* procesų dėjimą į laukiančiųjų eilę
* proceso parinkimą vykdymui iš eilės.
 
==== Realaus laiko sistemų planavimas ====
{{Main|Realaus laiko sistemų planavimas}}
 
Įvertinami ne tik procesoriai, bet ir laikas skirtas vertinimui. Procesai ir procesoriai čia turi savo prioritetus. Procesai valdo arba reaguoja į įvykius, kurie vyksta realiu laiku. Įvykiams apdoroti yra paskirtas laikas. Ar šis požymis yra griežtas, ar orientacinio pobūdžio, tai realaus laiko proceso charakteristika. Realaus laiko procesai skirstomi taip pat pagal tai, ar jie yra periodiniai.
 
Realaus laiko sistemos turi tenkinti reikalavimus:
* determinuotos
* jautrios įvykiams
* jautrios vartotojo veiksmams
* patikimumas
* atsistatymas po klaidos
 
Realaus laiko sistemų planavimo algoritmai skirstomi pagal
* vykdoma planavimo analizė
** planavimo analizė statistinė ar dinaminė
** vykdomas laiko vertinimas procesų parinkimui ar naudojamas keitimas pagal kitus procesų parametrus
 
Realaus laiko sistemų planavimo klasifikacija
* statistinis planavimas, naudojant skaičiavimo lenteles
* statistinis planavimas, naudojant prioritetus (čia kintamas procesų vykdymo laikas)
* dinaminis planavimas pagal eilę
* dinaminis planavimas, atliekamas įvertinimas pasiekti geriausią rezultatą (svarbiausias kriterijus - procesui skirtas laikas)
 
=== Disko prieiga ir failų sistema ===
100

pakeitimų