V. VIIES
OPERATSIOONISÜSTEEM
LOENGU KONSPEKT
koostanud Allan Lahe
1995
EKSAMIKÜSIMUSED
1. Arvuti arhitektuur, operatsioonisüsteemi ja programmeerimise struktuur.
2. Operatsioonisüsteemide tüübid.
3. Operatsioonisüsteemi põhikomponendid (tuum, ülesanded, teenindusprogrammid).
4. IBM suurarvutite operatsioonisüsteemid, VM/ESA.
5. Operatsioonisüsteemi ajaline struktuur.
6. Protsessid(mõiste), ja kulgemine.
7. Täitmiskeskkond.
8. Plaanurid.
9. Dispetserid ja dispetseerimise meetodid. (Protsessi ajaline jaotamine.)
10. Mälujuhtimine.
11. Mitmetasemeline mälu, virtuaalmälu.
12. Virtuaalarvutid.
13. Süsteemi kasutajad ja nende ressursid vms.
14. Operatsioonisüsteemi juhtkeeled, kasutamine, REXX, SHELL.
15. Alamsüsteemid.
16. Andmete juhtimise hierarhiline süsteem.
17. Andmebaaside paketid kui alamsüsteemid.
18. Programmeerimissüsteemi komponendid.
19. Translaatorid ja linkurid.
20. Transleerimise etapid.
21. Mikroarvuti operatsioonisüsteemid, ketas operatsioonisüsteem.
22. Operatsioonisüsteemi projekteerimine.
23. Lihtsamate operatsioonisüsteemide komponentide projektskeemid.
24. Reaalaja operatsioonisüsteemi koostamine.
25. Operatsioonisüsteemi koostamine rakenduspaketi abil.
26. Riistvara ja tarkvara ühtsus ning orienteeritus.
SISUKORD
Sissejuhatus 4
IBM suurarvutite operatsioonisüsteemid
5
Arhitektuur 7
Operatsioonisüsteemide klassifikatsioon
8
Operatsioonisüsteemide
struktuurne organisatsioon 11
Täitmiskeskkond 12
Protsessid 15
Süsteemsed töötlusprogrammid 18
Linkurid ja laadurid 20
Alamsüsteemid 21
Operatsioonisüsteemi põhifunktsioonid
23
Mälu juhtimine 26
Virtuaalmälu 27
Mälukaitse 30
Andmete juhtimine 30
Andmebaasid 31
Sisend/väljundi juhtimine
s/v süsteem 34
Programmeerimise süsteem 35
Multiprotsessorisüsteemid
40
Mikroarvutite opsüsteemid 42
Mikroarvutite reaalajaoperatsiooni
süsteemid 45
Ülesanded 49
Kordamisküsimused 50
SISSEJUHATUS
Operatsioonisüsteemi arengu ajaloost.
-
MK- masinkäsud (1950)
-
TR- translaatorid (1960)
-
JP+K - juhtprogrammid + kasutaja (1965- 1970)
-
OS - operatsioonisüsteem (1969)
Esimene töö masinkoodis. Kui töömaht üle 1000 sõna, mindi üle ASM.
1952. Haward, MARK IV püüti luua makro laiend, mis asendaks ASM-i.
Tarkvaraline suund sai rohkem võitu.
1955 tekkis selline ASM, nagu praegu IBM 650.
1956 -hakkasid arenema esimesed translaatorid. Esimesed olid UNIVAC
- BO ja ALGOL’i translaatorid. Probleem - programmi silumine, mälu valel
ajal kustutamine. Välisseadmed - perfokaardid.
1957 - magnetilint.
1958 - IBM - esimene masin, mis juhtis perifeeriat. Seda püüti ka
tarkvaraliselt teha. IBM 1401-1761. Sel ajal idee PC loomiseks.
1963 - esimesed operatsioonisüsteemi moodi programmid - perifeeria
juhtimise programmid. Honegwell 800 ideoloogiline läbimurre samal ajal
- korraga võib masinal töödelda mitut tarbijat. Tekkis multiprogrammeerimine.
Seega oli loodud alused OS arenguks.
1969 -UNIX.
Iga op. peab:
Optimaalselt kasutama süsteemi ressursse.
Olema orienteeritud tarbijale, s.t. peab võimalikult kiiresti ja täielikult
rahuldama tarbija tellimusi.
Mis on operatsioonisüsteem?
Operatsioonisüsteemi definitsioonid:
-
Operatsioonisüsteem on programmide kompleks arvuti juhtimiseks.
-
Operatsioonisüsteem on riistvara tarkvaraline laiend.
-
Operatsioonisüsteem on programmi või seosed programmi kompleksist,
mis esineb vahendaja rollis tarbija ja arvuti vahel.
-
Operatsioonisüsteem on tarkvara. Andmetöötlusprotsessi plaanimiseks,
organiseerimiseks ja juhtimiseks.
Operatsioonisüsteemi nõuded:
-
peab vastama arvuti arhitektuurile;
-
peab olema sama töökindel kui riistvara;
-
peab olema kaitstud nii sise- kui välistarbija eest;
-
efektiivsus ressursside jaotamisel st. paralleel tööjaotuse võimalus;
-
mugavus tarbijale.
Operatsiooni loojad ütlevad, et kaks viimast on alati omavahel konfliktis.
Operatsioonisüsteem jaotab :
-
protsessori aega;
-
põhimälu, selle juhtimise kaudu;
-
s/v seadmeid s/v juhtimise kaudu;
-
andmete kasutamist andmete hierarhilise juhtsüsteemi kaudu.
Protsessori ajajaotamine saavutatakse katkestussüsteemi abil, mida teostab
operatsioonisüsteemi osa nimega dispetser.
Operatsioonisüsteemi mälu juhtimine võib alluda eri juhtskeemidele,
(kõrgplaanur) kuid igal juhul operatsioonisüsteem eraldab endale mälus
kaks osa:
-
osa: residentne - pidevalt mälusolev;
-
osa: transiitne - võib olla kord suurem, kord väiksem.
S/v juhtimine teostatakse:
igale seadmele spetsiaalselt juhtprogrammiga, kutsutakse sel eesmärgil
ellu spetsiaalne perifeeriaprotsessor.
IBM SUURARVUTITE OPERATSIOONISÜSTEEMID
1965 |
CP40 |
|
|
1967 |
CP67 |
|
|
1972 |
VM/370 |
|
|
1976 |
|
VM/XA |
|
1980 |
VM/SP |
|
|
1981 |
VM/SP APO |
|
|
|
|
1983 |
VM/XAMA |
|
|
1987 |
VM/XASP |
|
|
|
* VM/XASP |
1990 |
VM/ESA |
|
|
1993 |
VM/ESA 2.0 |
|
|
VM/XA - Külalissüsteemi toetus, tarbija võis arvutis teha tööd
mitmes operatsioonisüsteemis.
VM/SP - Süsteem kasutas optimaalselt ressursse ning tarbija töötas
alamsüsteemide kaudu. Tarbija ise ei pääsenud ressursside jaotamise
juurde.
VM/ESA - Laiendatud süsteemi arhitektuuri toetus, mis muutis
süsteemi avatud süsteemiks.
VM/ESA/ESA - Laiendatud süsteemi laiendatud süsteem.
Põhioperatsioonisüsteem jaotab ressursse, kus konkreetsete ressursside
haldamist teostab konkreetselt süsteemi poolt loodud virtuaalmasinad.
1965-67 ei olnud operatsioonisüsteemi loodud, kuid kasutati juhtprogrammi
CP67
1972 jõuti esimese operatsioonisüsteemini s.o. VM võeti kasutusele
virtuaalmasina idee
1976 eraldus IBM ideoloogias VM/XAMA suund, mis toetas
andmetöötlust. Andmetöötlus võis olla teise masina halduses. (Satelliitmasinad)
Andmete ülekanne selektorkanalis.
1980 tekkis klassikaline pakktöötluse süsteem VM/SP. Alustati mälu
jaotamist lehekülgedeks, mis võimaldas paremini ressursse jaotada.
1990 VM/ESA paketi üksikuteks liikmeteks on eri masinad. Iga masin
omakorda võib samaaegselt töödelda eriülesandeid.
ARHITEKTUUR
Funktsionaalses osas pannakse paika juhtkeel, kodeerimis- ja dekodeerimismeetodid,
käsukujundid, ressursside jaotumise reeglid, info kooditabeli, jne.. Määratakse
ära kolme põhiressursi juhtimise meetodid (protsessor, mälu, andmed).
Oma iseloomult kuulub ta tarkvara hulka.
Topoloogia all vaadatakse kuidas konkreetsed seadmed (üksikud komponendid)
ühendatakse teineteisega. Kas nad ühendatakse kanalitega ( selektor-
või multiplekskanalid) või kasutatakse ühissiini ideed (riputakse
kõik ühisele siinile nagu PC), kus fikseeritakse ühenduspistikud ning
spetsiaalseid vaheseadmeid arvuti ühendamiseks ei kasutata. Klassikalises
mõttes realiseerib selle riistvara,
Programmerimisüsteem - kogum, mis võimaldab sellist arhitektuuri,
kasutada oma ülesannete realiseerimiseks.
OPERATSIOONISÜSTEEMIDE KLASSIFIKATSIOON
Operatsioonisüsteemi liigitused on vajalikud teooria arendamiseks ja
kindla prototüübi loomiseks. Neid on liigitatud lähtudes kolmest aspektist:
Mäluvajaduse suurusest (kui palju vajab tööks mälu)
-
kuni 8k
-
kuni 16k
-
kuni 64k
-
suurem
Kasutusalast / eesmärgist
-
tarkvara loomine
-
töö andmebaasidega
-
vastused päringutele - ka iga ülesanne, mida tarbija käivitas.
Töötlusest:
-
reaalajasüsteemid (peavad ette antud ajalimiidis reageerima välissündmusele)
-
ajajaotussüsteemid (peavad võimaldama üheaegselt tööd paljudele
tarbijatele, luues samal ajal igale tarbijale illusiooni personaalsest
arvutikasutusest)
-
pakktöötlussüsteemid (peavad tagama arvuti kõigi ressursside
optimaalset kasutamist)
-
hajustöötlussüsteemid (peavad tagama ülesande lahendamise sünkroonsuse
füüsiliselt eri paikades asuvates arvutites)
-
üldotstarbeline süsteem (peavad tagama üheaegselt mitme funktsiooni
täitmist)
Reaalajasüsteemid
Reaalajasüsteemides andmetöötluse juhtimine toimub sõltuvalt välistest
sündmustest, mis toimuvad eelnevalt määramata ajahetkedel. Välissündmus
on andmete või päringu vastuvõtt mingilt asünkroonselt seadmelt. Reaalajasüsteem
on monitorsüsteem, mis minimiseerib inimese osa juhtimisprotsessis. On
olemas 2 riistvara konfiguratsiooni ning seega ka 2 eritüübilist reaalaja
operatsioonisüsteemi klassi.
A. Range reaalajasüsteem
Operatsioonisüsteem on jäigalt sees, selle muutmine tähendab süsteemi
uut genereerimist. Antud süsteemis juhitakse vaid ühte objekti ning sel
juhul süsteemi projekteerimine ja loomine käib koos vastava riistvara
projekteerimisega ja loomisega .
B. Objekt on seotud arvutiga läbi mingi perifeeriaseadme.
Kasutaja töötab esiplaantagaplaan süsteemis. Juhtimine toimub
esiplaanil, üldotstarbelised tagaplaanil. Dispetseerimine peab olema
perfektne. Vaheplaneerimine tähtis.
Pakktöötlussüsteemid
Eesmärgiks on optimaalselt koormata arvuti ressursse s.t. võimaldada
palju paralleeltöötlemist. Pakktöötlussüsteemid peavad omama
dünaamilist mälujuhtimist, paindlikku protsessori ajajaotust, võimast
käsukeelt, juhtkeelt ja võimaldama operaatori osavõttu riistvarajuhtimisest.
Sisend kopeeritakse välismälu kandjale ja siis paralleelselt kantakse
kiiresti töötlusse, sama väljundiga. Tekkis alamsüsteemi mõiste. Esimeseks
alamsüsteemiks oli mitme kasutaja režiim.
Operatsioonisüsteem ise peab täitma nõudeid:
-
Optimaalne ressursijaotus või optimaalsete ülesannete valik, arvestades
olemasolevaid ressursse.
-
Operatsioonisüsteem peab olema kindlalt kaitstud tarbija ülesannete
eest.
-
Avatud alamsüsteemidele s.t. toetama uute alamsüsteemide loomist.
Esimeseks perekonnaks, mis kasutas pakktöötlust oli IBM.
Ajajaotus
Masinat kasutab samaaegselt mitu tarbijat tuli määrata iga tarbija
ajakvant. Operatsioonisüsteemi põhiraskus langes dispetseerimisele e.
madalamale astmele.
Võrkorganisatsioon ja hajussüsteemid
Võrksüsteemi ideoloogiaks on protokoll - ühetasemeliste objektide
suhtlemist tagavate kooskõlastatud reeglite ja formaatide kogum.
Protokollid omavad 7 erinevat taset(kiht).
Tase (kiht) - on infosüsteemi kindlal hierarhiliste tasemete tasemel
asuvate funktsioonide kogum.
Infosüsteem - on arvutite ühisus, mis on mõeldud info kogumise,
säilitamise, vahetuse ning töötluse ülesannete lahendamiseks.
OSI-võrguarhitektuuris on need järgmised:
1. Füüsiline kiht (physical layer) pakub ülemistele kihtidele bitivoo
toimetamist ühest punktist teise. Füüsiline kiht sisaldab moduleerimist
ja signaalitöötlemist.
2. Kanalikiht (data link layer) muuta füüsiline kiht usaldusväärsemaks,
sisaldab veaparandust ja ülespoole veatu andmeedastuse teenust.
3. Võrgukiht (network layer) sooritakse marsruutimise ja multipleksimisega
seotud toimingud ja korraldatakse saadetise kulg õigele saajale.
4. Transpordikiht ( transport layer) tagab edastavate pakettide ülekande
ühest otspunktist teise: vigadeta, õiges järjestuses, kaotsiminekuta
ja kordistuseta.
5. Seansikiht ( session layer) hoolitseb ühenduste loomise ja lahutamise
ning õige seansiprotokolli eest.
6. Esituskiht ( presentation layer) hoolitseb eritüübiliste esitusviiside
õigeks muutmise eest rakenduste vahel.
7. Rakenduskiht (application layer) kasutab OSI-tüüpi võrkude teenuseid
mitmesugusteks rakendusteks.
Võrksüsteemid jagunevad vahemaa järgi kolme rühma
-
kaugvõrk (WAN)
-
linnavõrk
-
kohtvõrk (LAN)
Kõigi nende operatsioonisüsteemide ühiseks komponendiks on protokollid.
Võrksüsteemid olenevad palju võrgu arhitektuurist s.o. topoloogiast
ja tulenevalt sellest jaotakse põhimõttelt kahte:
-
info marsruutimisega (suunamisega)
-
info selekteerimisega
Vastav operatsioonisüsteem e. võrgutarkvara toetab kas infosõnumite
ülekandmist marsruutimisega või selekteerimisega (Info “keerleb”
võrgus - võtab välja see, kellele aadresseeritud).
Võrk võib omada topoloogiliselt erisuguseid ühendusskeeme, nagu
täht, võrk struktuur, silmus jne. Erineva topoloogia tingib, kas võrgus
olevad objektid on ühesugustes õigustes või on mõni neist juhtarvuti.
Viimane määrab ära kas võrgu operatsioonisüsteem peab paiknema ainult
sõlmedes või võib ta olla ka hajutatud tarbijate masinates.
Iga võrksüsteem peab võimaldama:
-
jaotada koormust erinevate protsessorite vahel,
-
sisaldama konkreetseid programmi süsteeme,
-
osutama võimalikele kasutajatele erinevaid mailiteenuseid.
Hajustöötlus erineb võrgust selle poolest, et selle abil toimub rakendusülesannete
lahendamine üheaegselt ja nii, et andmed või funktsioonid on jaotatud.
Maailmas ollakse arvamusel, et kuni selle sajandi lõpuni operatsioonisüsteemide
väljatöötamine järgneb riistvaralistele uuendustele, mitte vastupidi.
Tundub, et oleks otstarbekam arvutisüsteemi projekteerimist alustada operatsioonisüsteemidest.
OPERATSIOONISÜSTEEMIDE
STRUKTUURNE ORGANISATSIOON
Operatsiooni struktuuri ajaline käsitlus.
Operatsioonisüsteem selle laiemas mõttes peab toetama arvutisse saabuvat
ülesannet, tema sisestamise hetkest kuni tulemuse väljastamiseni. Antud
käsitluse aluseks on võetud ülesande täitmise käik arvutis, s.t. ülesande
sisestamisest töötluse täielikku lõppemiseni. Eristame järgmisi ajalisi
staadiume, mida operatsioonisüsteem endale kujundab:
1 päring tellimuse vastuvõtmise keskkond, mille
pikkuse määrab päringuaeg. See on aeg, millal kasutaja registreerib
ennast sisse. Kui on tegemist pakktöötlusega siis on see aeg, millal
registreeritakse ülesannete kompleks. Teisiti öeldes ajaintervall, mil
süsteem võtab vastu tellimuse, milleks võib olla kas dialoogsüsteemis
tarbija registreerimine süsteemi või pakktöötluses laetava paki kirjeldus
(juhtstruktuurid).
2 valik valiku aeg, mis määrab ära valikukeskkonna
ja mille jooksul süsteem kas alustab täitmist või loobub sellest. Kas
tegu alustatakse. Teisiti öeldes ajaintervall, mil süsteem alustab ülesande
täitmist. Sel ajal alustab tööd operatsioonisüsteemi osa - kõrgtasemeplaanur.
3 transleerimine transleerimise keskkond. Ajaintervall,
mille jooksul lähtetekst teisendatakse arvutisisesse koodi.
4 kompileerimine (link) enamikel juhtudel transleerimise
keskkonnale lisandub linkimise keskkond. Selle määrab ära ajaintervall,
mille jooksul arvutisisene kood viiakse kujul, mis sobib vahetuks täitmiseks
arvutis.
5 käivitamine e. laadimine käivitamise keskkond,
mille määrab ära käivitamise aeg - intervall, mille jooksul ülesanne
initsieeritakse, luuakse tegu s.t. protsessile kogum, talle jaotakse seadmed
ja eraldatakse mälu kuid ka selliste ressursside eraldamine võib puududa.
6 täitmine täitmiskeskkond, mille määrab täitmise
aeg, mille ajal on tegu (job) aktiivne. Teisiti öeldes ajaintervall, mille
jooksul ülesanne (programm) on süsteemis aktiivne operatsioon,
s.o. juhtblokk, kuhu kantakse ülesande nimi ja olek. Täitmise ajal kasutab
programm vahetult arvutussüsteeemi ressursse ja operatsioonisüsteemi
vahendeid.
7 lõpetamine ajaintervall, mil täidetakse tellimus
kõrvaldatakse süsteemist ning ressursid vabastatakse.
Selline ajaline jaotus kehtib nii pakktöötluses kui ka dialoogsüsteemis.
Igas ajajaotuses juhib arvuti tööd operatsioonisüsteemi mingi struktuurne
komponent. Sellele lisaks kasutakse mingis ajastaadiumis mõnda töötlusprogrammi
või programmisüsteemi osa. Sisuliselt juhtimise- ja töötlusprogrammid
erinevad põhiliselt selle poolest, kes ja kuidas neid käivitab. Seejärel
neile muutuvast katkestuse maskist. Kõigis nendes 7 keskkonnast on operatsioonisüsteemis
kõige tähtsam täitmiskeskkond.
TÄITMISKESKKOND
Selles keskkonnas lisatakse: kasutaja programmis olevatele funktsioonidele
täiendavad funktsioonid operatsioonisüsteemi poolt. Need võivad
olla kas ilmutatud või ilmutamata kujul.
Ilmutatud - seotud privileegitud makrokäskudega.
Ilmutamata - seotud multiprogrammeerimise toetamisega.
Täitmiskeskkonna ajal on operatsioonisüsteemi tuum faktiliselt riistvara
laiend. Kõik tema programmid on residentsed ning neid ei saa katkestada.
Heas süsteemis tuleb minimiseerida iga üksiku sellise programmi täitmisaega.
Täitmiskeskkonna funktsioonid jaotuvad 3-ks grupiks:
1) Ühised funktsioonid paljudele rakendusprogrammidele.
Need on makrokäsud, mida ei kompileerita, vaid realiseeritakse täitmiskeskkonnas
residentsete alamprogrammide abil. Viimane võimaldab tõsta multiprogrammeerimist
ja vähendada mälus olevate programmide kogumahtu.
2) Süsteemsed funktsioonid nende ülesanne on jaotada
ressursse dünaamiliselt programmi täitmise käigus. Sellised programmid
on operatsioonisüsteemi koosseisus juhul, kui toetatakse multiprogrammeerimist
ning ressursside kasutamise optimeerimist. Reaalajasüsteemis ei pea süsteemseid
funktsioone olema, kuid samas ajajaotussüsteemis kindlasti.
3) Multiprogrammilised funktsioonid on vajalikud
ressursside jaotamise koordineerimiseks. Toetatakse järjekordi, mis tekkivad
üheaegse pöördumise korral ressursi poole ja just neist programmidest,
mis ei arvesta multiprogrammeerimist, protsessori ümberlülitamine, swapping
korraldamine (raalimine) - eritasemeline mälu vahel info liigub pidevalt.
Siia tuleb ka ülesannete prioriteetide muutmine.
Täitmiskeskkonna struktuur
Struktuurprogrammeerimise tekkega operatsioonisüsteemi projekteerijad
arvasid, et saab ka operatsioonisüsteemi koostada rangelt struktueeritult,
fikseeritud reeglite järgi lihtsatest algoritmidest. Kuna operatsioonisüsteemi
ajajaotuses on võimalik eraldada eri ajaintervalle siis on loogiline,
et iga ajaintervallil töötaks eri operatsioonisüsteemi osa. Kui see
on saavutatud, siis operatsioonisüsteemi võiks koostada moodul
reziimis s.t. kokkupanna eri osadest. Esimene selline süsteem loodi
1970 a. Dijkstra teooria alusel - ning nimetati teda T.H.E. Sellise
süsteemi operatsioonisüsteem oli rangelt hierarhiline.
Hierarhiline eesmärk: kõrgema taseme programmid saavad kasutada
vaid madalama programmi teenuseid. Katsetamise käigus defineeriti
viis erinevat taset, ainuüksi täitmiskeskonna jaoks ning määrati ära
järgmised reeglid.
Tase |
Nimi |
Ülesande funktsioon |
0 |
Tuum |
Protsesside juhtimine ja sünkroniseerimine |
1 |
Mälusuperviisor |
Mälujuhtimist ja virtuaalmälu toetamine |
2 |
Operaatori interfeis |
Dialoog kasutajaga |
3 |
Seadmete juhtimine |
Loogiliste ja füüsiliste seadmete
vastavusse viimine. S/V seadmete puhverdamise organiseerimine |
4 |
Ülesande juhtimise programmid |
Juhtkeel interpreteerimine, kasutaja
protsesside juhtimine |
Kõrgema taseme programmid võivad pöörduda ainult madalama taseme
programmi poole ning madala taseme programmid on nende jaoks võrdsustatud.
Madalama taseme programmid peavad olema kiiremad. Ja seda nii palju,
et kõrgemal tasemel ei tekiks nende kasutamisel ooteaega.
KOKKUVÕTE: madalama taseme programmi jaoks on ette nähtud
aparatuuri funktsioonid. Igalt tasemelt võib pöörduda vahetult vaid
alumise naabri poole. Selline hierarhia võimaldab andmeid lokaliseerida
igal tasemel, sest iga tase töötab oma andmetega. Praktikas sellist ei
ole täielikult realiseeritud, kuid osaliselt küll. RT-11 - tuum,
oli vahetatav, oli võimalik SJ, MTJ, MUJ.
SJ - üks ülesanne ja üks kasutaja, 1:1
MTJ - multiprogrammerimist toetatakse ühte kasutajat, palju ülesandeid,
1:M
MUJ - mitu ülesannet, mitu kasutajat, M:M
Hierarhiline struktuuri korral on kõik O taseme programmid kõrgeima
prioriteediga, neid nimetatakse primitiivideks. Nende töötamise ajal
on katkestused keelatud. Sellistel programmidel puudub vajadus programmi
juhtploki järele, mis omakorda võimaldab nende lihtsamat käivitamist.
PROTSESSID
Programm arvutis jaguneb iseseisvate protsesside jadaks, kus igale protsessile
vastab üks kindel ressurss ning mille täitmiseks moodustatakse juhtkirje,
mille alusel protsessor eraldab ajaintervalle.
-
Kui programm on käskude jada, siis protsess on käskude täitmise
järgnevus.
-
Protsessi kirjeldab programm, mida interpreteerib protsessor.
-
Protsessid on sõltumatud tegurendid (jobid), mis kulgevad paralleelselt
ja erineva kiirusega.
Igal ajahetkel on arvutil interpreteeritult mitu protsessi, mis on erinevates
staadiumites. Öeldakse, et operatsioonisüsteemi ülesanded on protsessi
hulga loomine, initsieerimine, arendamine ja lõpetamine.
Protsesse liigitatakse:
-
järjestikulisteks ja paralleelseteks
-
tekitajateks ja tekitatuteks
-
sõltuvad ja sõltumatud
-
sünkroonsed ja asünkroonsed
Järjestikulised luuakse, kui nende täitmise kiirus ei ole oluline.
Paralleelsed tekitatakse selleks, et kompenseerida aeglaselt
kulgevate protsesside mõju ülesande lahendamise ajale.
Tekitajad protsessid on need, mis initsieeritakse operatsioonisüsteemi
poolt ning kulgevad täielikult operatsioonisüsteemi kontrolli all.
Tekitatud võivad olla kas rakendusprogrammi protsessid või
operatsioonisüsteemi omad.
Ühe ülesande lahendamise käigus on alati vähemalt üks protsess
kriitiline - s.o. selline protsess, mille ressursi jaotus süsteemis on
pingeline. On teada, et operatsioonisüsteemid kas toetavad protsessori
ajajaotust või baseeruvad mälu efektiivsele jaotamisele. Kunagi ei ole
nad täpselt tasakaalus.
Igal protsessil võib olla 3 olekut:
-
Arvutamine, protsessi teenindab protsessor.
-
Valmisolek s/v operatsioonideks, üldjuhul protsess on siis perifeerias.
-
Oode, tekib juhul kui antud momendil pole protsessi kulgemiseks
vajalikku ressurssi.
Viimane eristabki oluliselt programmi ja protsessi. Oote vältimiseks või
minimiseerimiseks kasutakse protsesside sünkroniseerimist.
Ressurss, mis korraga võib teenindada vaid üht protsessi nimetakse
kriitiliseks ning temale vastavalt protsessi ülesande lahendamise käigus
kriitiliseks lõiguks.
Protsesside sünkroniseerimine
Protsesside sünkronisatsioon eeldab katkestussüsteemide olemasolu, mis
on operatsioonisüsteemi tuuma osa ja võib olla realiseeritud kas
aparatuurprogrammiga või ainult tarkvaraliselt. Osa protsesse kannab primitiivide
nime ning need on sellised protsessid, mida ei saa katkestada nende kulgemise
ajal (nt. tuumaprotsessid ja tuuma koostisosas olev mälusuperviisori protsessid).
Operatsioonisüsteemi tuum peab olema järgmiste omadustega:
-
residentne st. ta peab asuma pidevalt põhimälus;
-
peab töötama juhtreziimis ja genereerima ainult primitiivseid protsesse
s.t. peab olema katkestamatu;
-
peab omama absoluutset võtit e. kõrgemat prioriteeti juurdepääsuks
kõigi teiste protsesside infole.
On otstarbekas realiseerida järgmised süsteemid:
-
katkestussüsteem
-
põhimälu süsteem
-
protsessori ajajaotuse süsteem
-
s/v süsteemi toetuse süsteem
Pöördumine tuuma poole peab reeglina toimuma läbi katkestussüsteemi,
mis omakorda realiseeritakse aparatuurprogrammiliselt.
Katkestuse kutsub esile katkestuse signaal, millele järgneb operatsioon.
Tavaliselt eristatakse viit erinevat katkestuse põhjustajat, kusjuures
igal liigil on oma prioriteet:
5 välised katkestused (kõige nõrgemad), mida kutsub
esile pöördumine võrgu kaudu teiselt arvutilt, operaatori (kasutaja)
sekkumine arvuti töösse ja taimeri poolt tulevad teated ajalimiidi täitumisest
mõne ülesande lahendamisel.
4 s/v katkestused - s/v katkestuse kood väljastatakse
kui s/v lõpetab töö või erisituatsioonides.
3 programsed katkestused - mälukaitse, ületäitumine
(vale andmetüübi kasutamine), vale operatsiooni kood, vale tehe (nulliga
jagamine).
2 süsteemsed katkestused - tekivad privileegitud
käskude täitmisel, tihti seotud mälu juhtimisega. Selle katkestuse korral
toimub ümberlülitumine superviisorite programmidele (tuuma peale).
1 katkestused kontrollaparatuurilt - toimub ümberlülitumine
diagnostika programmidele.
Iga süsteem võib korraga reageerida vaid ühele katkestusele seepärast
lähtutakse katkestuse töötlemisel maskist. Igale protsessile võib anda
oma maski (nullide ja ühtede vektori), kus märgitakse ära, milline katkestus
on aktsepteeritav ja milline mitte. Seejuures maski ennast võivad muuta
ainult privileegitud korraldused. Iga katkestuse töötlemine iseenesest
jaguneb kolmeks:
1. Peab toimuma analüüs, kas katkestus on aktsepteeritav.
2. Programmi töö katkestamisel toimub katkestatud programmi kohta
vajaliku taastamisinfo salvestamine.
3. Katkestuse töötlemisprogrammi käivitamine.
Katkestusi realiseeritakse enamikel juhtudel neljal meetodil
1. Ühe tasemelise katkestus. Katkestatud programmi sisu, algus
aadress ning juhtimine antakse üle katkestuse töötlemise programmile.
Kõik järgmised katkestused on blokeeritud kuni katkestust töötleva
programmi lõppemiseni.
2. Pinu kasutamine. Kus lubatakse korraga mitmeid katkestusi
ja iga järgmine katkestus, kas tõrjub või lisab pinusse katkestatud
programmi info. Seega katkestuse programm võib olla katkestuse töötluse
programm. Kasutatakse ühe ülesandega süsteemides
3. Tasemete kasutamine. Meetod kus luuakse spetsiaalne juhtstruktuur,
mille erineva taseme programmidele on reserveeritud oma katkestuse töötlemise
piirkonnad e. igale multiprogramse tasemele oma katkestustase. Sellisel
juhul toimub mitme katkestuse paralleelnetöötlus, nii nagu mitme programmi
täitmine multiprogramses re iimis.
4. Kõige paindlikum katkestuse meetod on olekusõna kasutamine.
Olekusõna on juhtstruktuur, mis määrab ära igale protsessile
katkestuse töötlemise reziimi ning fikseerib ka katkestuse hetke oleku.
Iga olekusõna sisaldab vähemalt nelja välja ja nendeks on:
a. katkestuse mask, mis näitab, milliseid katkestused on lubatud ja
millistele reageeritakse;
b. protssesside olek katkestuse hetkel;
c. katkestuse põhjustanud kood;
d. käsuloendi seis;
e. tunnused, mis fikseerivad ära kasutusel olnud ressursid.
Sellise süsteemi kasutamine nõuab kahe järjekorra toetamist superviisori
poolt ja nendeks järjekordadeks on:
-
katkestatud programm PSW järjekord
-
katkestuse programm PSW järjekord
SÜSTEEMSED TÖÖTLUSPROGRAMMID
Võib jaotada 3 gruppi
1) Eeltöötlusprogrammid - nende ülesandeks on kindlustada
ülesande mõistetavus süsteemile ning hinnata ülesande lahendamiseks
vajalikke ressursse. Valmistavad ette ülesande muutmiseks protsesside
kogumiks, s.o translaatorid, linkurid, kõrgtasemeplaanur.
2) Järeltöötlusprogrammid -juhivad töö tulemuste teadete
väljastamist, ressursside vabastamist ja nn. prügikorjamist.
3) Pakktöötluse toetuse programm e. optimaalse paketi moodustamise
aeg.
Süsteemi genereerimisprogramm s.o. programm, mis loob operatsioonisüsteemi
mingi kindla realisatsiooni.
Genereerimine sisaldab järgimisi etappe:
a. vajalike süsteemi moodulite hulga valik;
b. valitud moodulite asukoha kirjeldamine mäluseadmetes;
c. olemasoleva riistvara konfiguratsiooni kirjeldamine e. arvuti arhitektuuri
topoloogia (kuidas mis on arvutiga ühendatud) avamine;
d. genereerimise parameetrite esitamine st. arhitektuuri funktsionaalse
taseme avamine (ressursside jaotamisel konkreetse meetodi valik);
e. süsteemse juhtinfo st. vastavate tabelite puhvrite suuruste määramine;
Genereerimine võib toimuda kas osaliselt või täielikult, kuid mõlemal
juhul toimub see interaktiivselt, spetsiaalsete korralduste abil.
-
Süsteemi genereerimine on konkreetse operatsioonisüsteemi
variandi loomine.
Pakktöötluse toetajateks on neli liiki plaanurid (planeerivad programmid)
ning sisendvoo interpretaator. Pakktöötluse toetamiseks peab selles süsteemis
töötlemisele kuuluv programm sisaldama lisa infot ja nimelt:
-
tema prioriteet, kui ei ole määratud otseselt, siis määratakse
süsteemi vahendite poolt ülesande sisestamisel;
-
orienteeruv täitmisaeg;
-
orienteeruv põhimälu vajadus;
-
orienteeruv perifeeriaseadmete vajadus;
-
töönimi ja selleks vajalike andmete asukoht juhul, kui selline
info ei ole eelnevalt juhtstruktuurina välja toodud, siis luuakse vastav
nimi analüüsides programmi teksti;
Genereerimisse kuuluvad sisendvoo interpretaator ja kõrgtaseme plaanur.
Iga ülesande tulekul arvutisse operatsioonisüsteem moodustab tema juhtploki,
kus märgitud esialgne ressursi vajadus ja ülesande tunnused, mille abil
taastab ülesande lahendamise tema katkestuse korral.
Interpretaator teisendab ülesandega tulnud andmed operatsioonisüsteemi
spetsiaalsesse andmestruktuuri. Plaanur töötleb sisend järjekorda
ja valib ülesande vastavalt prioriteedile. Tuumaülesande kõrgeima prioriteediga.
Tarbija ülesandel prioriteet kas muutuv (n. sõltuvus katkestuste arvust)
või kinnitatud. Ressursside staatiline jaotus toimub samuti plaanuri poolt.
Staatiliselt võib jaotada s/v seade, andmed, sisendmälu.
LINKURID JA LAADURID
Ülesande lahendusel kaks olulist etappi - transleerimine ja täitmine.
Need kaks etappi võivad olla ka ühendatud ning see on ka kohustuslik
dialoogkeelte jaoks.
Transleerimine (ülesande mõistetavaks tegemine arvutile) võtab palju
aega ning selle käigus kasutakse palju mälu. Kui täitmine ja transleerimine
on ühendatud, siis on väga raske programme transleerida osadeks.
Seepärast tavaliselt transleerimise lõpus tehakse iseseiseva ülesande
kirjeldus e. objektmoodul.
Transleerimine ja täitmine on õigustatud:
1) väikese mälumahu korral;
2) dialoogkeele korral, kus iga lause on iseseisev
ülesanne.
Tavaliselt ei ole transleeritud programm e. objektmoodul valmis täitmiseks,
kuna tema kood on suhtaadressides ning puuduvad eraldi viidad alamprogrammidele
ja süsteemsetele alamprogrammidele.
Üldjuhul transleerimine ja täitmise vahel tuleb realiseerida järgmised
neli funktsiooni järgimises järjekorras:
1. Põhimälu eraldamine ja jaotamine programmidele.
2. Süsteemsete alamprogrammide ja eraldi transleeritud programmide
linkimine.
3. Häälestada programme absoluutaadressidele e. üleminek suhtaadressidelt
absoluutsetele.
4. Programmi koodi füüsiline salvestamine põhimällu ja juhtimise
andmine esimesele käsule (esimene käsk käsuloendrisse ning täidetava
fragmendi füüsiline salvestamine põhimällu).
Kõik neid funktsioone realiseerivad süsteemsed programmid: linkur ja
laadur, mis seega kuuluvad operatsioonisüsteemi, mitte programmi keele
koosseisu. On olemas kolme liiki süsteemseid programme selleks otstarbeks:
Absoluutne laadur. Programm, mis eeldab, et objektmoodul on
absoluutaadressides, seega laaditakse programm mälus alati ühele ja samale
kohale. Absoluutset laadurit kasutakse ainult mikroarvutites välissündmusele
vastava katkestusprogrammi täitmiseks.
Häälestav laadur. Objektmoodul on suhtaadressides või on
jaotatud teatud tabeli abil eri osadeks. Laadimine võib toimuda
mistahes mälupiirkonda ja ülesandeks on järeltransleerimine. Sellisel
puhul arvuti arhitektuur peab toetama häälestavat laadurit taasadresseerimisega
ja mälu dispetseerimisega. Enamikel juhtudel võimaldab teostada swappingut
st. ümberlaadimist täitmise ajal.
Linkiv laadur. Ühendab enne laadimist eraldi asuvad objektmoodulid
alati tervikuks ning salvestab saadud mooduli üldjuhul välismällu. Linkimine
sõltub programmi struktuurist.
Toetab nelja struktuuri
A. lihtne struktuur - ei ole alamprogramme;
B. ülekattega (overlay); (mitu objekt moodulit)
C. dünaamiline jada struktuur;
D. dünaamiline paralleel struktuur.
Lihtne struktuur st., et programm koosneb ühest objekt moodulist
ja ühest laademoodulist ning linkimise ajal lisatakse süsteemsed alamprogrammid.
Ülekatte struktuuri programm koosneb mitmest objektmoodulist
ja ühest laademoodulist. Ülekatte antakse linkimise juhtandmetega ja
selle teostab linkur. Ülekaetud osade laadimine toimub automaatselt.
Dünaamilise struktuuri programm koosneb mitmest laaduri moodulist
ning linkimine ja laadimine on programmeeritud ning toimub täitmiskeskkonnas
ilmutatud kujul.
Dünaamiline paralleelstruktuuri korral võivad erimoodulid
moodustada alamjobi ja töötada assünkroonselt. Viimane eeldab, et on
kasutusel mehhanism sünkroniseerimiseks vastavate toodete sisseviimisega.
Üldjuhul operatsioonisüsteemi annab sellistel alamobjektidega jobi endaga
ühised ressursid.
ALAMSÜSTEEMID
Tavaliselt üht ja sama arvutit kasutakse kas erinevate tarbijate poolt
või erinevate ülesannete lahendamiseks. Mõlemal juhul arvuti kasutamine
oleks efektiivsem, kui ta oleks iga kord kohandatav lahendamiseks konkreetsetele
ülesannetele. Süsteemi ümbergenereerimiseks, selle jaoks on mõeldamatu.
Seepärast 1976 jõuti alamsüsteemideni. See on funksiooni hulk, mis on
organisatsioon , kui tervik.
Alamsüsteemid on funktsioonide hulk, mis on
organiseeritud kui tervik.
Alamsüsteem toetab kasutajat ülesannete täitmisel ja seda kõigil etappidel.
Tavaliselt alamsüsteemid luuakse pärast põhilise operatsioonisüsteemi
loomist. Selle põhjuseks on:
-
püüdlus lihtsustada põhilist operatsioonisüsteemi
-
uute vajaduste tekkimine ekspluatatsiooniks (virtuaalsüsteemid,
VM alamsüsteem)
Alamsüsteemi ülesehitus on analoogiline operatsioonisüsteemi ehitusega.
Seega jaguneb kaheks osaks:
-
käsusüsteem (operatsioonisüsteemi)
-
transleerimise süsteem (programmi süsteem)
Kui kasutaja nõuded on hästi teada, realiseeritakse nad spetsiaalsete
käskudega, kui ei, siis transleerimise abil. Universaalse süsteemi korral
on kasutajatega ühised vaid need funktsioonid, mis realiseeritakse operatsioonisüsteemi
kõige madalamal tasemel. Sellisel juhul kandub süsteemi raskuspunkt alamsüsteemidele.
Operatsioonisüsteem teostab sisendja väljundoperatsioonid. Ükski
alamsüsteem ei hakka ise looma uut s/v süsteemi.
Alamsüsteemi põhimõte oli aluseks virtuaalmasinate- ja võrkude
loomisel.
Virtuaalarvuti on arvuti milles töötab korraga mitu operatsioonisüsteemi.
Kasutajal jääb mulje, et ta töötab üksi oma masinas, oma operatsioonisüsteemis.
Tegelikult virtuaalmasinas töötavad operatsioonisüsteemid
kui alamsüsteemid, seejuures üleminek kasutajare iimist juhtre iimi ei
pea olema füüsiline.
Alamsüsteemi loomine oli tarkvara protssessil üks suuremaid
tehnilisi muutusi. Sellele järgnes virtuaalmasin kus ka tuum jaotati ära.
Siis arvutivõrgud, kus jaotati ka riistvara.
Alamsüsteemid liigitakse põhiliselt kaheks:
-
Kasutusala alamsüsteemid e. tarbija ülesannete lahendamiseks.
-
Haldamise alamsüsteemid e. operatsioonisüsteemi toetamise alamsüsteemid
(Norton, Volkov, Windows)
Üldiselt võib alamsüsteemid liigitada lähtudes tarbijatest:
1. Failide voog. Füüsiline juhtimine - failiohjesüsteemid (Norton,
Dos Commander, Windows jne)
2. Võrgud - sidepunktid (Novell jne)
3. Tekstitöötlussüsteemid, tekstiprotsessorid ( Word,
WordPerfect, Q ja A Write jne)
4. Andmebaasid - AB ohjesüsteem (FoxPro, Paradox, Access, Informix,
Oracle jne)
5. Tabelarvutused (Quattro Pro, Excel, SuperCalc, Lotus jne)
6. Ajajoatus ja planeerimis paketid, projekti juhtimis paketid (SuperProject,
Microsoft Project jne)
7. CAD - projekteerimispaketid.
8. Kirjastamine (Corel Ventura, Aldus PageMaker, MS Publisher jne)
9. Kujundamine (Corel Draw, Aldus FreeHand, Floorplan Plus 3D
jne)
10. Muusika, komponeerimine
11. jne. paketid
OPERATSIOONISÜSTEEMI PÕHIFUNKTSIOONID
Selleks, et ressurssi juhtida ja jaotada tarbija vahel on vaja moodustada
sihifunktsioon, et määrata ära need põhimõtted ja funktsioonid, mille
alusel ressursi juhtimine hakkab toimuma. Tavaliselt on sihifunktsiooni
arvatud järgmised muutujad:
-
jobi (tegu) täitmise keskne aeg
-
hilinenud lahenduste arv ajaühikus
-
maksimaalne reaktsiooni aeg
-
seadmete koormatuse aste garanteerib reaktsiooniaja
Kui on valitud nii üks või teine strateegia ilmneb, et ressursi juhtimine
on soodus mõnedele ülesannetele ja ebasoodne teistele ülesannetele.
Näiteks, kui esikohal on reaktsiooni aeg, siis lühemad ülesanded on
ilmselt eelistatud. Juhul kui esikohal on seadmete koormatus on eelistatud
suure ülesande parallelne lahendamine kõigi arvuti seadmetes. Selliseid
põhimõtteid arvestades st. valides sihifunktsiooni, toimub protsessori
juhtimine.
Protsessorit juhivad operatsioonisüsteemi komponendid, mida nim. plaanuriteks.
Protsessi juhivad kolme tüüpi plaanurid:
A. Kõrgtasemeplaanur;
B. Madalataseme plaanur e. dispetser;
C. Vaheplaanur, mis on vajalik arenenud katkestuse süsteemi korral.
(kasut. multiprogrammeerimises ja virtuaalmasinates)
Kõrgtaseme plaanurid
Kõrgtaseme plaanur on operatsioonisüsteemi komponent, mis valib süsteemi
saabunud ülesandeid ning viib nad protsessorite poolt teenindavatesse
järjekordadesse. Plaanurid võivad teostada ka teiste ressurside eeljaotamist.Tavaliselt
on plaanur iseseisev operatsioonisüsteemi tuuma osa ajajaotussüsteemides
ja pakkejaotussüsteemides ning ilmutamata kujul reaalajasüsteemides.
Sisendjärjekorrast protsessorite poolt teenindavasse järjekorda
ülesande viimisel arvestab plaanur tavaliselt järgmisi kriteeriume.
1. ülesande e. jobi prioriteet (operatsioonisüsteemi tuuma enda
poolt tekitatavad ülesanded);
2. mäluvajaduse järgi;
3. sisendväljund seadmete poole pöördumise ja ülesande pikkuse
suhte alusel (sisendväljund/pikkus);
4. ette antud käivitamise aja järgi;
5. ette antud lõpetamise aja järgi.
Esialgse plaanimise käigus jaotatakse ülesandele ka põhimälu, prioriteetsed
perifeeria seadmed (perif. seadmed, mille aja ressurss on piiratud) ja
ülesande poolt kasutatud failid (nt. failisüsteemi)
Tupiksituatsioone peab plaanur vältima. Selleks on kolm meetodit:
a. Ennetamise meetod,st. seda et kunagi ei jaotata ühte ressursi
lõpuni vaid jäetakse selles alati reserv tupiksituatsioonist väljumiseks.
b. Automaatne arvestamine toimub operatsioonisüsteemi programmide
abil ning ressursid on pidevalt kasutamise alusel dünaamilises ümberjaotamises.
c. Häda abinõu, süsteemioperaaatori vahelesekkumine ja ühe
ülesande eemaldamine süsteemist (see ei pea olema inimene, võib olla
ka mingi spetsiaalne programm)
Madalamataseme plaanur e. dispetser.
Dispetser on operatsioonisüsteemi tuuma osa, mis pidevalt otsustab,
milline protsess võetakse valmisoleku järjekorda ja antakse protsessorisse
teenindamiseks. Dispetseri jaoks on igal protsessil 3 olekut:
1. tööolek - töötlusprotsess;
2. asumine valmisoleku järjekorras e. valmisolek;
3. asumine pooleliolevate protsesside järjekorras e. blokeeritud olek.
Vaheplaanur
Igal protsessil võib esineda ooteolek e. oode, mis eristab teda programmist.
Kui süsteem võimaldab paralleelselt töödelda mitmeid ülesandeid ja
blokeeritud ülesandeid koguneb palju, siis süsteemi luuakse vaheplaanur,
mis toob ülesande blokeeritud olekust valmisoleku järjekorda, vastasel
juhul blokeeritud ülesanded lähevad üldjärjekorras sisend järjekorda.
Dispetseerimise ülesanne on protsessi valik valmisoleku järjekorrast
ja ajakvandi määramine talle. On kasutusel neli põhilist dispetseerimise
meetodit.
1. HPF -(Higest Priority First) kõrgeima prioriteediga
esimeseks - dispetseri ülesanne leida valmisoleku järjekorrast kõrgeima
prioriteediga protsess ja tuua see esimeseks. Kasutakse siis kui prioriteedi
määrab ära süsteem lähtudes oma sihifunktsioonist. Meetod realiseeritakse
kasutades kahte erinevat mudelit:
Väljatõrjumisega - nõuab sisendjärjekorra pidevat
reastamist iga programmi saabumisel või selle prioriteedi muutumisel.
Väljatõrjumiseta - ilma eelneva protsessi välja tõrjumiseta,
ainult protsessori ajakava möödumisel.
Selle meetodi alusel kõik protsessid omavad prioriteedti ning paiknevad
järjekorras järjestatud prioriteedi alusel. Selline süsteem taandub
tihti põhimõttele SJF - Shortest Job First lühim ülesanne kõige enne,
kuid on kasutusel lineaarselt kasvav prioriteedi mõiste, ning sellisel
juhul valmisoleku järjekord teatud ajakvandi tagant reastatakse ümber.
2. Round Robin meetod e. mööda ringi. Selle meetodi alusel
katkestatud protsessid ja uued protsessid on võrdväärsed, peetakse ainult
ühte valmisoleku järjekorda ning igale protsessile antakse kordamööda
ajakvant q. Sellise süsteemi korral on tähtis q suuruse õige määramine.
Kui q on liiga väike siis kaudsed aja kulud (ümberlülitumine ühelt
protsessilt teisele) kasvavad. Kui q on liiga suur siis, ooteajad hakkavad
ebapropotsionaalselt pikaks muutuma. Ajasüsteemides on mõistlik määrata
q sõltuvalt sisendjärjekorra pikkusest.
3. Selleks, et vähendada vastuolu pikkade ja lühikeste ülesande vahel
on kasutusele võetud foreground - background meetod. Antud meetod
seisneb selles, et kõigepealt kõik ülesanded saabuvad järjekorda kõrgeima
prioriteediga ning neile antakse ajakvant q. Juhul kui sellest ajakvandist
ei piisanud tuleb teostada katkestus, miis liigutab ülesande järgmisele
tasemele e. järjekorra prioriteediga 2 jne. Põhimõte on, et süsteem
teenindab mittetühja järjekorda, mille number on vähim, seega esiplaanil
on jrk. 1 ning tagaplaanil ülejäänud jrk. numbrid. Kuid sisuliselt nii
2 kui ka 3 meetod eelistavad põhimõtet Shortest Job First. Selle
vastuolu kõrvaldamiseks võetakse kasutusele CORBAT meetod
4. Corbat meetod, mille idee seisneb järgnevas. Igale süsteemi tulevale
ülesandele määratakse järjekorra numbrist lähtudes ja ülesande teksti
pikkusest, individuaalne ajakvant valemiga = q
* 2 i-1 kus i on jrk. nr. Samas kehtib põhimõte, et süsteem teenindab
mittetühja järjekordasid, mille number on vähim.
MÄLU JUHTIMINE
Mälu juhtimise all mõistame operatiivmälu jaotamist multiprogrammsetele
ülesannetele nii, et süsteem lahendaks ülesande ajaliimitide piires.
Teostub operatsioonisüsteemi tuuma koostisosa mälu superviisor ning
juhitakse operatiivmälu ja infovahetust välismäluga. Välismälust vajaliku
info välja otsimine või sinna info ülekandmine, on teenindada superviisorite
ülesanne. Mälujuhtimis skeemid võivad olla järgmised:
1) SJ (single job) - ühe ülesande süsteem .Toimub üksiktarbija
juhtarvutites, kus ei esine eraldi operatsioonisüsteemi ja rakendusprogramme
e. masinas käib korraga ainult üks ülesanne. Üksiktarbija ülesande
programm peavad olema absoluutaadressides ja mälujuhtimise teostab tarbija.
2) süsteem + üksiktarbija - sisendmälu jaotakse kaheks
osaks:
-
residentne;
-
transitiivne.
Sellise mälukorralduse juhul süsteem organiseerib ülesande täitmise
nende laadimisel operatiivmällu. Süsteem vajab kaitset tarbija eest (kus
kaitse kohustuslik). Programm kirjutatakse suhtaadressides. Laadur
suhtabs baasregistri määramise kaudu. Mälu kasutamine ebaökonoomne
kuid äärmiselt lihtne ning suurte ülesannete korral ka otstarbekas.
3) Fikseeeritud fragmanteerimise korral tarbija piirkond jaotatakse
nii mitmeks fragmendiks, kui suur on multiprogramse aste antud süsteemis.
Fragmentide arv ja suurus määratakse süsteemi genereerimisel ja
fragmendid ei pea olema ühesugused. Süsteemi vajalik mälukaitse, peab
kaitsma tarbijaid teineteise ja süsteemi tarbija eest. Sellise süsteemiga
tavaliselt kaasneb prioriteetide süsteem, mis omakorda määrab ära teatud
mälupiirkonnad, millega infovahetus on tihedam.
Süsteemi eeliseks: lihtsus ja multiprogrammi tagamine.
Puuduseks: suur osa mälust reserveeritud aga mitte kasutatud, suured
ülesanded ei pääse korraga mällu. Seega nende järjkjärguline mällu
toomine tekitab ajakadusid.
4) Muutuv fragment süsteemi genereerimisel määratakse ära
võimalike fragmentide arv, aga nende suurus ja nende paiknemine mälus
ei fikseerita. Fragmendid hakkavad paiknema mälus pidevalt. Tarbija ülesanded
võivad suuruselt muutuda vastavalt tegelikele ressursi vajadustele. Süsteemi
põhiülesanne on pidevalt minimiseerida vaba mäluosa. Vajab mälukaitset.
Mälukaitse peab olema arenenud, sest baasaadresside kaitsest enam ei piisa.
Puuduseks ajakaod, mälu osade nihutamisel ühtse vaba piirkonna hoidmisel.
See süsteem võimaldab lahendada suuri ülesandeid, paigutades neid
vajaduse korral ka korraga mällu ning sellise meetodi eesmärk on püüda
mälu täita ühtlaselt, s.t. vaba mälu koguda kokku. Viimane skeem on
mälu loogiline jaotus, mitte füüsiline. Realiseeritakse läbi blokkorganisatsiooni,
läbi lk.-organisatsiooni, blokk lk. org.-ni või toetudes virtuaalmälule.
5) Swapp e. ROLL-IN-ROLL-OUT e. vahelduvlaadimine. Võimaldab
operatiivmälus hoida ainult osa üles. (n: s/v; kui ülesanne ootab ajakvanti,
siis ta ei pea olema operatiivmälus).
Puudus: Tõstetakse operatiivmälust välja kogu ülesanne, palju efektiivsem,
kui saaks välja tõsta ainult mittevajaliku osa (mittetäidetav)
1. segment;
2. fikseeritud segment - jaotatakse lehekülgedeks - iga blokk saab
täisarv lehekülgi;
3. segmentlehekülg, blokklehekülg.
Segmenteerimine
Segmenteerimine on programmi organiseerimis viis, kus programmi aadressstruktuur
peegeldab tema sisulist liigendust. Selleks, et tagada segmenteerimist
peab olema segmentide tabeli registris, kaheosaline aadress. Aadress
peab koosnema segmendi aadressist ja vajaliku info aadressist segmendil
e. kaugusest segmendi alguses.
STR- segmendi tabeli register
ST - segmentide tabel
T - 0, 1
K - kaitse
L - pikkus
B - baasaadress
V - viit lehekülje algusele
Segmentide linkimine loogilisel tasemel, kuna segmendid on nii sise-
kui välismälus. Selleks, et segmente saaks ühendada tervikuks on segmentide
tabelis iga segmentide kohta vähemalt neli tunnust:
1. T - ühekohaline näitab kus asub antud hetkel segment ( T )
0 - operatiivmälus
1 - välismälus
2. Kaitsetunnus - kus Read Only. ( K )
3. Segmendi baasaadress - kus t mälus AA algab meid huvitav
segment
4. Segmendi pikkus, p. ( P )
Iga programmi element on määratud segmendiga ja asukohaga segmendis,
seega pöördumine programmi poole on kahe etapiline.
Eelis. Vahetult toetub moodulprogrammeerimist
Puudus: Infovahetus eripikkuste segmentidega. See osutub nii suureks
(aeglase välismälu korral), et on eelistavam kasutada fikseeritud fragmente
e. lehekülgi.
Lehekülg organisatsioon
Mälu organiseerimis viis, kus aadressväli on jaotatud fikseeritud
pikkusega plokkideks. Neid plokke nim. füüsilisteks lehekülgedeks. Programmid
ja andmed jaotatakse loogilisteks lehekülgedeks, mis suuruselt on võrdsed
füüsiliste lehekülgedega. Seega füüsiline lehekülg laaditakse loogiliste
leheküljele üksühele. Peetakse optimaalseks lehekülje suuruseks pikkust
k-sõna juures (2k baiti)
Eelis: mälujaotus on lihtne, infovahetus lihtne.
Puuduseks: linkimise keerukus, sidemete organiseerimine programmi elementide
vahel.
Sellest ülesaamiseks organiseeritakse segmentlehekülg.
STR- segmendi tabeli register
ST - segmentide tabel
T - 0, 1
K - kaitse
L - pikkus
B - baasaadress
V - viit lehekülje algusele
Segmentlehekülg.
Puuduseks 3-e etapiline pöördumine ülesande osa poole ning selleks,
et vähendada nii tekkivat ajakadu tavaliselt otsitakse paralleelselt paari
segment lehekülge moodustades eraldi tabeli, mille tunnuseks on segment
lehekülgede kombinatsioon.
VIRTUAALMÄLU
Virtuaalmälu on fiktiivne ühetasemeline mälu, mille organiseerib programm.
Fiktiivsele ühetaseme mälule vastab mitmetasemeline reaalne mälu. Virtuaalmälu
loomisel lähtuti ideest, et nii saab automatiseerida infovahetust,
sest s/v programm nõuab kõrget kvalifikatsiooni ja tavaline programm
ei suuda seda optimaalselt teha. Virtuaalmälu baasil sai kinnitust tees,
et programmi täitmiseks on piisav, et vahetult protsessoriga seotud mälus
peab paiknema ainult täidetava programmi fragment. Kõik muu võib olla
mõne muu taseme mälus. Seega on pidevalt vaja virtuaalmälu organiseerimise
korral transportida programmi fragmente. Selle organiseerimiseks kasutatakse
kas segmenteerimist, lehekülje organiseerimine või segmenteerimine +
lk organisatsioon. Virtuaalmälu korral oluline see, et konkreetne mäluorganiseerimine
toimub tarbija eest varjatult ja seda kas aparatuurselt või operatsioonisüsteemi
tasemel. Virtuaalmälu korral mälu juhtimise ülesanne läheb keerulisemaks,
sest on vaja lahendada kolm ülesannet:
a. igal tasemel mälu jaotamine;
b. segmenteerimine või lehekülje operatiivmällu toomise momendi
määramine;
c. segmendi või lehekülje vabastamise momendi määramine uue toomiseks
operatiivmällu.
Ennetav toomine e. preparing nende kahe kombinatsioon
Ideaalne preparing-u puhas kasutamine st. pöördumise hetkeks
oleks vajalik lehekülg juba mälus, kuid selle lehekülje toomise ja kindlaks
määramise algoritmid ei ole nii täiusliku, et saaks välistada täielikult
esimest meetodit.
Mälu vabastamine võib toimuda kas juhusliku valiku põhjal või kasutades
Mälu on võimalik vabastada prioriteetide alusel. Programmis näidatakse
ära, millised osad on kõige sagedamini kasutatavad. Neid hoitakse mälus
niikaua kui võimalik.
Virtuaalmälu efekt
Plusspool |
Puudused |
Operatiivmälus võib olla ainult osa
ülesandest, võimaldab see oluliselt tõsta multiprogrammeerimise astmete
arvu. Sellega tõuseb oluliselt protsessori koormus ning süsteemi läbilaskevõime
suureneb. Virtuaalmälu kasutaja nõuab arenenud mälukaitset. See toimub
riist-tarkvaraliselt. |
Nõuab pidevalt andmete liigutamist.
Võtab palju aega. Töökiiruse tõstmiseks hoitakse lehekülgede või
segmentide tabeleid ülioperatiivmälus. Virtuaalmälus realiseeritud programmid
peavad olema tükeldatud nii, et ümberlülitused ühelt leheküljelt teisele
oleksid minimaalsed. Mittestruktuurseid progesid ei toeta. |
MÄLUKAITSE
Klassikaliselt kõik mälukaitse meetodid baseeruvad ühel kahest:
-
püsiaadresside meetodil
-
mäluvõtmete meetodil
Igale multiprogrammerimise piirkondadele eraldatakse viimase astme mälus
kindel mälutsoon, kuhu juurdepääs on ainult selle taseme programmidel.
Kasutusel lehekülg organisatsiooni korral, kus tekitatakse spetsiaalne
juhtstruktuur, võtmemälu ning igale leheküljele fikseeritakse seal oma
kood.
Kuna igal programmil on oma PSW olekusõna, siis igale PSW-le kinnitatakse
teatud hulk mälukoode.
On olemas erandid, superviisori programid, kelledel on 0 võti ehk
juurdepääs kõigile võtmemälus fikseeritud lehekülgedele.
ANDMETE JUHTIMINE
Andmed on ainuke süsteemi ressurss, mis asub süsteemi perifeerias. Seega
andmete juhtimine lahendatakse info vahetuse s/v juhtimise kaudu.
Andmete juhtimise juures kehtivad järgmised nõuded:
1. Välismälu juhtimine peab olema efektiivselt jaotatud ja juhitud.
Arenenud failisüsteem.
2. Andmepöördus peab olema mitmekesine ja paindlik (järjestik ja
suvapöördus)
3. S/v süsteemi sisemine mehhanism peab olema varjatud ja kaitstud
tarbija eest.
4. Andmete kaitstus
5. Andmed peavad olema jaotatavad failideks ning failid omakorda jaotatakse
eri mälupiirkondade vahel. Üheaegne juurdepääs mitme tarbija poolt.
Andmete juhtimine allub hierarhilisele juhtimise printsiibile kahe
subjekti poolt, kellest üks on tarbija ja teiseks operatsioonisüsteem.
Mõtestatud andmed on informatsioon.
Andmed peavad olema salvestatud failidesse unikaalsete nimede alla. Seda
teostab baasfailisüsteem operatsioonisüsteemi juhtimisel.
Failide baasjuhtimisele järgneb failide loogiline juhtimine, millest
võtab osa ka tarbija andes failidele loogilised nimed ja jaotades neisse
andmed. Failidest andmete kätte saamine ja kirjutamine käib läbi pöördusmeetodite
ja selle määrab täielikult tarbija.
Kõrgemaks juhtimiseks on andmebaasi süsteemid, kus üheks tarbijaks
on ka operatsioonisüsteem. Seepärast paljudes operatsioonisüsteemides
vaadatakse andmebaasijuhtimist kui operatsioonisüsteemi laiendit.
Andmed on ainuke ressurss, mille kasutamine on usaldatud tarbijale.
ANDMEBAASID
AB on kooseksisteerivate, omavahel seotud andmete hulk, milledel on min.
liiasus ja mis võimaldab nende optimaalset kasutamist paljudel eesmärkidel.
AB juhtimissüsteem on paindlik programmiline liides tarbija ja andmete
vahel. Iga AB-si töös võib eristada kuni 8 erinevat tegevust.
1 Kui rakendusprogrammmist tahame mingeid andmeid saada, peame
esitama päringu. Peab kindlasti sisaldama skeemi kirjeldust, milliseid
andmeid tahame.
2. AB peab pöörduma oma str. skeemi poole ja vaatama kas tema kirjelduses
on see alamskeem olemas.
3. Andmestruktuur määrab ära andmebaasi füüsilise mudeli ja asukoha
4. Kui teada, kus andmed asuvad, pöördub OS poole ja sellega
tunnistab, et tegemist alamsüsteemiga, selle osa poole, mis juhib s/v.
Püüab andmeid lugeda
5. Operatsioonisüsteem annab korralduse
6. Sorteerimine, toimub valik andmetest milline osa ülekanda
7. Ülekandmine
8. Annab tunnuse kas sai täidetud või ei
AB areng
60 aastate alguses, kui AB tekkisid nende struktuur 1:1 nende
kujutamisega magnetkandjal 60.-de teisel poolel AB füüsiliselt
jaotati osadeks, kuid loogiline ja füüsiline seos säilis, sest osad
olid jaotatud vastavalt baasi üleehitussisule. n. Teaduskonnalt ühte
plokki, üliõpilased teise, suunad 3. -sse, jne. 70. alguses võib rääkida
andmetejuhtimisest, sest pöördumine andmete poole oli võimalik eri teid
pidi, sest oli võimalik erinevaid AB struktuurid: .
-
Hierarhiline põhineb kahendpuul
-
Võrk põhineb objektorienteeritul graafil.
-
Relatsiooniline põhineb korteezil
AB hinnatakse tema kasulikkuse koefitsendist lähtudes. Kasulikkus - vajaliku
info suhe AB suurusse. Sel alusel kõige kasulikum AB hierarhiline ja kõige
ebaratsionaalsele relatsioon. Tarbija seisukohalt päringuid lihtsam teha
relatsioonilises. See enim levinud.
Igal andmebaasi süsteemil peab olema vähemalt 3 keelt millega ta
on seotud : andmebaasi struktuur, pärigngud, aruanded(AB oma keel või
algoritmi keel)
AB struktuuri kirjeldamine saab toimuda kahel eri tasemel:
1. Tase kirjeldatakse rakendus valdkonna mudel loogilisel tasemel või
andmebaasi mudel kirjeldakse füüsiliselt e. määratakse ära, kus regioonides
milline baasi osa hakkab paiknema. Mida suurem on AB seda tähtsam on tema
jaotamine õigetaks regioonideks.
2. AB on keskkond e. struktuur, millel toimub andmete fikseerimine,
salvestamine, edastamine, teisendamine ja kasutamine. Et kiirendada relatsiooni
AB -de töötlust on välja töötatud AB normaalkujul. Relatsiooniline
AB koosneb üldjuhul mitmest tabelist. AB normaliseerimine peaks lahendama
4 põhiküsimust :
-
andmete liiasus
-
andmete võimalik vastu olulisus
-
sagedused andmete lisamisel
-
peab selguma andmete olulisim grupeerimine ja uuendus
Normaalkuju tähendab, et mudeli koostamist kindlate reeglite alusel ning
reeglid järgmised:
-
tabel millele puududvad korduvad grupid
-
igal veerul peab olema nimi
-
igal real peab olema nimi
-
üks või mitu veergu peavad moodustama võtme ja seda nii, et kõik
mittevõtmeveerud sõltuvad võtmest.
-
iga rida peab olema terviklik kirjeldus
Tabel on normaalkujul, kus kõik mitte võtmeveerud sõltuvad ainult võtmest
ja ei sõltu võtme osadest kolmandal normaalkuju korral mittevõtmeveerud
on üksteisest sõltumatud
Iga AB peab täitma 4 tingimust:
1) peab tagama salastatuse,
2) terviklikkuse,
3) kasutamise sünkroniseerimise,
4) taastamise.
Need omadused pandi paika CODASYL rühma töös NY 1971.
1. Juurdepääs vaid sellele, kellel selleks õigus.
2. Kui kuskil infot muudetakse peab igal pool muutuma.
3. AB-sse kirjutada ja seda väljastada üheaegselt ei saa
4. Andmekandja füüsilisi vigu peab ise parandama
SISEND/VÄLJUNDI JUHTIMINE
S/V SÜSTEEM
Üheks s/v probleemiks on tema universaalsuse tagamine. Seda üritatakse
saavutada interface standardiseerimisega st. standartseid kanaleid. S/v
võib olla organiseeritud kas ühissiinsena, s.o. programmeeritava s/v'ga
või kanalitesüsteemsena, s.o. toetudes katkestussüsteemile (kasutakse
suurtes arvutuskompleksides). Ühissiine - enamikus PC-des ja tööjaamades.
S/V juhtiv programm paikneb alati OP-mälus ja kanalistuktuuri korral ta
sisaldab 3'e liiki juhtsõnu.
1. Channel control word (CCW) - kanali käsusõna, mis ütleb
millise operatsioonisüsteemiga on tegemist.
2. Channel address word (CAW) - kanali aadressi sõna, mis on
sisulikanaliprogrammi esimene käsu aadress.
3. Channel status word (CSW) - kanali olekusõna.
OP mälu, andmed, programm. Kanali korral käib andmevahetus:
1 Rakendusprogramm pöördub s/v poole
2 töötatakse välja kanali käsusõna
3 aadressõna poole pöör dumine
4 annab kanalile juhtimisimpulsi s.t. stardib selle.
5. Kanal vastab sellele oma olekusõnaga, mis sisaldab kindlasti olekuvõtit,
mis omakorda määrab, kas kanal on valmis antud tööks.
6. Kui on toimub andmevahetusm, et kanalid võimaldaks kiiret andme
vahetust on kanal spetsialiseeritud vastavalt tarbijale, kes nõuab
infovahetust.
7. Andmed liiguvad sellesse piirkonda kus kanalil on ettenähtud.
Tavaliselt 7 etapp realiseeritakse kahes järgus:
-
vahetu info vahetus s/v süsteemi ja operatsioonimälu vahel (kiire
ja lihtne)
-
edasine töötlus s.o. ümberkodeerimine struktueerimine s.o. aeglasem
ja keerulisem.
1 Failide füüsiline juhtimine e. failide baasjuhtimine. Sisu
- faili deskriptori moodustamine. Deskriptor moodustab faili unikaalse
identifikaatori teisendamisel, kuhu lisatakse füüsilised aadressid
ja faili pikkus.
2. Failide loogiline juhtimine sisaldab unikaalse identifikaatori
moodustamist, mis vastab tarbija nimele. Selle tasandil toimub failide
loomine, avamine, sulgemine, salvestamine, jne. Baasjuhtimises võib toimuda
aga loogiline faili jaotus erinevateks füüsilisteks osadeks ning selle
paigutamine isegi eri taseme mäludesse.
Pöördumismeetodid
Pöördumismeetodid võimaldavad pöörduda faili kirje poole teatud loogilises
järjekorras, mis on sõltumatu faili füüsilisest struktrueerimisest,
sest füüsilise faili osad e. kirjed ei pea paiknema järjestikku, ning
on tavaliselt kas ahelnimistu või tabelnimistu struktuuriga. Sageli faili
kirje on identifikaator e. võtmetega. Kui on olemas võtmed, siis saab
kasutada indeksite tabeleid. (St. iga kirje omab viita sama osavõtmega
kirjele).
Meetodid jagunevad:
-
Baaspöördus - sellisel juhul plokk, mille poole tarbija
pöördub peab vastama faili ühele elemendile. (element - blokk)
-
Järjestikpöördus - pöördumine toimub elementkirje. Kõik
elemendid on ühesugused. (element - kirje)
-
Jadapöördus - rangelt järjestikuline loogiline faili töötlus.
-
Otsepöördus - loogilise faili töötlus suvalises kirjete
jrk -s
-
Indekspöördus e. indeks jadapöördus - vahepealne
otse- ja jadapöörduse vahel.
PROGRAMMEERIMISE SÜSTEEM
Operatsioonisüsteem laiemas mõttes on programmeerimise süsteem. Operatsioonisüsteemi
üks osa, mille ülesanne on sisestada ja tõlkida kasutaja ülesanded
arvuti sisekeelde. Tendetsiks on programmeerimis keelte lähenemine loomulikele
keeltele. Tõlkimine arvuti sisekeelde on üldjuhul mitme etapiline ning
sõltub sisestatava ülesande keele tasemest. Keeled on jaotatud 4. eri
tasemeks:
0 - tasemel arvuti sisekeel;
1 - mnemokoodi e, assembleritase, tõlkimine arvuti sisekeelde
toimub 1:1 s.t. sisendkeele igale sümbolile vastab siseüks sümbol;
2 - Makroassembler. Tõlkimine 1: M Sisend keele ühele elemendile
vastab sisekeele mitu elementi;
3 - Protsess orienteeritud e. algoritmilised keeled. Neid võib
klassifitseerida: Kasutusala järgi, struktuuri järgi (semantiline lähenemine).
Praktiliselt jaotati 5-ks rühmaks.
-
Teadus tehnika
PASCAL
-
Modelleerimiskeeled MODULA
-
Majndusinfo
COBOL
-
Nimistutöötlus
LISP
-
Universaalkeeled
PL/1
4 - Probleemorjenteeritud keeled e, struktuurkeeled (anda ül
- kirjeldus)
Igat loomulikku- ja tehiskeelt iseloomustavad alfabeet, süntaks ja semantika.
Leksika - sõnade hulk;
Süntaks - lauseõpetus;
Semantika - lausete nimeline tähendus.
Alfabeet, leksika ja süntaks määravad täielikukt lubatavate keelekonstruktsioonide
hulga ja nendevahelised seosed. Semantika seob konstruktsioonid erinevates
keeltes. Transleerimine on seotud alati alfabeediga, leksika ja süntaksiga
ning võib olla seotud semantikaga. Transleerimine on tänu sellel
alati mitme etapiline.
I etapp - leksikaanalüüs,
II etapp - süntaksianalüüs,
III etapp - semantikaanalüüs,
IV etapp - semantilise tõlke redigeerimine e. optimeerimine.
Sageli toimub see transleerimine mitte otse lähtekeelest masina sisekeelde;
vaid läbi vahekeele.
I töö teeb ära skanner, mis viib lähteprogrammi standard kujule
jättes ära tühikud ja mitteolulised sümbolid vähendades lähteteksti
mahtu.
II töö teeb ära parser - süntaksianalüüs ning viib teksti st.
kujult vahekeelde.
III töö - vahekuju võtab töötluse alla koodigeneraator, mis lõpetab
transleerimise luues objektmoodulid. Sellise skeemiga saadakse olukord,
kus transleerimine jaguneb 2 suureks osaks:
1) osa sõltub keelest, teine arvutist.Sealjuures - ei olene, kuidas
vahekeel saadud. Praktikas sellest sageli kinni ei peeta. Teoreetiliselt
peaks nii olema võimalik. Õeldakse, et transleerimine on 1, 2 või 3
etapiline vastavalt sellele, mitu iseseisvat faili tekib transleerimise
käigus. Praegu enamasti ühekäigulised. Mitmekäigulist on võäikeste
ressusrssidega kasutatud üpris tihti. PDP11= PAC = MAC = OBJ
PDP-11 - vahekeelena kasutakse sageli assemblerit ja kasutaja pidi
ise käivitama makroassembleri translaatori.
Vahekeelena kasutatud enamikel juhtudel postfikskuju. Dijkstra meetodil
prioriteetidega (poola kuju). Meetodi põhisisu: sisendvoos eraldatakse
operaatoritest operandid nii, et operandid lähevad otse väljundkujusse,
operaator aga läbi pinu. Selleks igale operaatorile antakse prioriteet
0...7. Kehtib reegel: kui saabuva operaatori prioriteet j on suurem pinus
oleva prioriteedist i kui j<=i, siis pinust viiakse välja kõik operaatorid,
kuni j<=i kehtib. On 2 erandit:
1) 0 prioriteediga operaatorid alati kirje pinusse, kuid kunagi ei
tooda välja
2)sulg toob alati välja kõik operandid I avava suluni ning teda ennast
pinusse ei kirjutata.
n. A+B/C-K*(S/L-D)
Kui selline väljundvoog saadud, liigutakse v-p I operandini, võetakse
2 temast vasakul olevat operandi, nendega tehakse tehe. Jne. Kui nii oli
jaotatud kolmikuteks, vaadati skeemi, mis tekste sooritumisel
Rg*M=Rg
Rg*M=M
Vajadusel lisatakse 4-s element ja sooritakse tehe. Seega koodi generaator
moodustub käskude jada, mis adekvaatne poola kujuga.
Kuna transleerimine on keerukas, mitmeetapiline. Translaatori kirjutamine
nõuab vilumust, aega, on rakenduspaketides laialt levinud paketid nimega
translaatorite translaatorid. Sellised programmid koosnevad 2-st osast:
tuuma osast ja juhttabelist. Juhttabelid jagunevad omakorda kaheks: süntaksi
ja semantika tabel. Sellised translaatorid on aeglased, kuid nende koostamine
mõõdetav päevadega. 80 lõpus olid sellised translaatorid eriti levinud
graafika (projekteerimis) pakettide koostamisel.
RESSURSSIDE ORIENTEERITUS
RIISTVARA TASEMEL
Idee: Mälu juhtimine aparatuuri tasemel.
Arvutisüsteemide 3-e põhilist ressurssi, s.o. protsessorit, mälu
ja andmeid kasutada optimaalselt, selleks loodud spetsiaalse operatsioonisüsteemide
abil, kuid paljudel juhtudel ka vastava riistvaralise baasiga.
1) Protsessor. CDC
- esimesed süsteemid. Cyber Gray - masinad. Süsteemi moodulis oli kaks
keskset protsessorit ning kümme perifeeriaprotsessorit, kusjuures peaprotsessori
kiirus oli 10 korda suurem. Perifeeriaprotsessorit võib võrrelda IBM-i
kanaliga, kuid erineb sellest suurema mälumahuga ja korraliku käsusüsteemi
poolest. Sellises süsteemis töötab paralleelselt kaks operatsioonisüsteemi:
-
tuumsüsteem põhiprotsessoritel
-
kasutaja süsteem perifeeria protsessoritel
Paralleelselt on kaks ASM-i keelt. Selline süsteem jätab põhiprotsessori
ainult kasuliku töö tarbeks. Seega põhiprotsessorid võivad olla spetsialiseeritud.
Näiteks koosneda autonoomsetest funktsionaalsetest plokkidest (mitu
erinevat korrutamisplokki jne). Kõik protsessid töötasid sõltumatult
ning mõlemat liiki protsessil olid oma operatsioonisüsteemid ning oma
ASM-d. Olid orienteeritud suure hulga arvutuste sooritamiseks. RISC-protsessid
on läinud samas suunas.
2) Mälu Honeywell
- arvutid HIS. Hajutatud juhtimisega, orienteeritud mälu optimaalsele
kasutamisele. Iga mälumooduli kontroller on passiivne kordineeriv element,
mis jaotab pöördumise mälu poole aparatuursete prioriteetide alusel.
Igal mälu seadmel on 32 katkestuspesa, mis välistab otsesidemed protsessorite
ja s/v kontrollerite vahel. Süsteemis olevaid prioriteete saab muuta.
Protsessorid töötavad paralleelselt ülekattega neljas reziimis:
-
absoluutne
-
prioriteetne
-
baasaadress registriga
-
kasutaja e. mitteprioriteetne
Kasutaja poole pöördutakse läbipärimismeetodil, et vähendada koormus
konkreetsele mälupiirkonnale ja lühendada järjekorda pöördudes füüsilise
kontrolleri poole. Süsteemi virtuaalmälu on organiseeritud segmentlehekülje
meetodil.
Igal protsessil on oma deskriptorite tabel. Ümberlülitumine toimub
selle tabeli baasaadressi laadimise teel. Infovahetus protsesside vahel
toimub ühissegmentide kaudu ülesannete täitmiseks süsteemis kombineeritakse
vajalikud operatsioonisüsteemi segmendid kasutaja programmi segmentidega.
Seega iga realiseeritav protsess on kombinatsioon operatsioonisüsteemist
ja seega on realiseeritud hajutatud operatsioonisüsteem. Samuti süsteemis
oli kasutusele võetud sideprotsessorid, mis seotud mälu süsteemsete
kontrolleritegur, mis omakorda võimaldas paljudel tarbijatel korraga tulla
süsteemi ilma järjekorrata.
3) Protsess ja mälu
korraga Serry Rand arvuti UNIVAC, OS, ECXEC. Moodustas esmakordselt modulaarse
masina, kus moodulisse kuulus nii protsessor kui mäluplokk ning igal protsesoril
oli registritest ülioperatiivmälu ning üksikutest moodulite tööd koordineerisid
valmisolekujuhtseade, mis võimaldas ühe mooduli välja lülitada kogu
süsteemi tööd häirimata s.t. realiseeriti füüsilised virtuaalmasinad.
Võimaldavad ühel ja samal aparatuuril üheaaegselt töötavaid sõltumatuid
struktuure.
Nii protsessorid ja mälu mooduliteks.
Süsteemis on kasutusel kolm planeerimis taset:
-
eelplaanimine (jobide tasemel);
-
dünaamiline mälujaotamine SWAP;
-
dispetseerimine.
4) Douglus - katse optimeerida
andmeid. ILLIAC, ELBRUS. Otsustati lühendada andmete töötlemist ja programmide
lahendamist sellega, et arvuti sisekeeleks postfiks kuju (vahekeel). Transleerimine
vähenes 1 etapi võrra. Loobuti traditsioonilisest Neumanni masinaga arhitektuurist,
sest puudub .... adresserimine, igal sõnal tunnus, käsul puudub spetsiaalne
struktuur. Süsteemis ringlevad andme -3tüüpi
1) infosõnad;
2) deskriptorid;
3) juhtsõnad.
Infosõnad koosnevad kahest osast:
-
info tüüp ja seega kontekstuaalselt mälukaitset;
-
deskriptor vastab muutuja kirjeldusele keelest näidates ära asukoha
ja pikkuse.
Juhtsõna määrab ära tegevuse. Virtuaalmälu on realiseeritud mälujaotuse
segmenteerimisega. Süsteemis töötab üks operatsioonisüsteem ning assembleri
keele asemel on olemas ainult masinkeel, mis on ALGOL tüüpi.
Selline struktuur võimaldas väga tugevat paralleeltöötlust ja kaudse
aadresseerimise kõki võimalusi. Süsteem muutus liiga keeruliseks
ja seetõttu pole kasutusel.
5) IBM - ressursside
optimaalne juhtimine saavutakse sellega, et defineeritakse erinevad arvutid
loogilisel tasemel.
MULTIPROTSESSORISÜSTEEMID
Võimaldavad lihtsamini täita järgmisi nõudeid:
-
süsteemi laiendamise võimalus operatsioonisüsteemi muutmata;
-
ülesande lahendamisel vajaliku reaktsiooniaja tagamine;
-
adapteeritavus muutuvatele nõudmistele.
Operatsioonisüsteemi
-
juhtiv - juhitav operatsioonisüsteem
-
sümmeetrilise töötlusega
-
jaotatud lahendusega
Esimesel juhul on operatsioonisüsteemi tuuma funktsioonid realiseeritakse
vaid ühes protsessoris ja mis on valitud süsteemi administraatori poolt
ja võib olla nii spetsialiseeritud kui ka universaalne. Sellisel juhul
superviisori programmid ei pea olema hajutatud simulaatoritena, kuna nad
töötavad ühes protsessoris. Kuna vaid üks protsessor pääseb ligi
süsteemsetele tabelitele ei teki ka konflikte. Kui protsessoris on rike
, käivitub süsteemi uuesti valides juhtprotsessoriks mõne teise.
On olemas teatud oht: kui juhtprotsessor on aeglane, läheb juhitavate
progede seisuaeg suureks.
Teisel juhul. Juhitava programmi funktsioonid antakse ühelt
protsessorilt teisele. Iga protsessor võib täita superviisori funktsioone.
Seda protsessorit mis hetkel on juhtiv nim. täidesaatvaks. Igal ajahetkel
võib olla ainult üks juhtiv. Süsteem on väga efektiivne, sest mittespetsiifilisi
s/v funktsioone võib täita suvaline vähem kasutatav protsessor. Kõik
operatsioonisüsteemi programmid peavad olema simultaansed, et mitmed protsessorid
saaksid täita samu programme. Kuna mitu protsessorit võivad samaaegselt
töötada superviisorina, on võimalikud konfliktid, mis on seotud
juudrepääsuga süsteemsetele tabelitele.
Kolmandal juhul. Iga protsessor teenindab vaid omaenese vajadusi.
Superviisori programmid võivad olla dubleeritud või simultaansed. Igal
protsessoril on oma juhtabelid, tänu millele on konfliktide arv väike.
Üksikud rikked süsteemi töövõimet ei mõjuta, kuid riknenud protsessori
restart on keeruline. Välismälu ühiskasutamine nõuab spetsiaalset failisüsteemi.
Konfigureerimine ei ole automaatne.
OPERATSIOONI SÜSTEEMI
ARENG JA NENDE PROJEKTEERIMINE
Millal on vaja operatsioonisüsteemi?
1 Mikroarvutil tekib vajadus operatsioonisüsteemi järele siis, kui
-
toimub mälujaotus
-
sisend ja väljund standardeeritakse
Esimene süsteem, mis nõudis operatsioonisüsteemi
Kõigepealt peab teostama sellise operatsioonisüsteemi osa, mis
teostab mälujuhtimise ja s/v juhtimise
1) peab lugema klaviatuurilt kuni lipud on püsti, toimub oleku kontroll.
Olekukontroll on kõrval tegevuseks, selleks, et saaks teostada järjestik
tegevusena lugemist ennast. Üldjuhul mikroarvuti (väikearvuti) operatsioonisüsteem
koosneb monitorist e. tuumast, teenindusprogrammidest ja süsteemi andmetest.
Need osad, mis ei ole residentsed mälu ümberjaotamisel, ei oma prioriteeti
võrreldes kasutaja programmidega. Teenindusprogrammide hulke laiendatakse
tihti süsteemprogrammidega, mis võimaldavad kasutada algkeeles. Monitori
käskudes peavad olema järgmised käsud.
-
mälu initsialiseerimine,
-
mälus andmete muutmine,
-
anda korraldus täita käsk antud aadressil,
-
määrata kontroll punktid ülesande täitmisel,
-
infovahetus korraldus mäluga,
-
andmevahetus korraldus s/v -ga.
Operatsioonisüsteemi osad
1. Klavituurilt lugemine
2. Väljastus
3. Mälu jaotus {plaanur}
4. Käsurada valik { käsu interpretaator}
5. Failide juhtimine
Juhul kui ei ole SWAP-i siis ei saa lahendada multiprogrammeerimist.
IBM compatility ei ole alati IBM copatility. Mälujaotus on teistsugune.
Kolm er itüüpi tuuma:
Single job monitor SJ, hooldusinseneride poolt kasutatud süsteem,
võttis operatiiv mälu alates 16kilost. Suutis täita korraga ainult ühte
(diagnostika) ülesannet.
First and background FB, lubab paralleelselt täita vähemalt
kahte jobi ning fooni täidetakse ainult siis, kui põhiülesandel
oli s/v katkestus.Kasutaja piirkond määratakse ära juhul, kui seal on
ruumi alustatakse fooni ülesannet ja kui ei ole tehakse SWAP.
Extended Memory XM, toetab täielikult multiprogrammeerimist
ning oli mõeldud ajajaotus re iimi programmeerimiseks.
Laiendatud mälu
Tarbija osa jaotatakse vastavalt vajadustele 5 eri liiki faili:
-
lähtevorming ( lähtetekstid ükskõik mis keelsed)
-
objektvorming ( masinorienteeritud keeles, linkuri jaoks lähteandmed)
-
absoluut kahendvormis (failide väljatoomiseks mida kasutakse juhtimisel
juht programmi salvestamisel)
-
laadevorming ( mälu teatud piirkond täpse koopia salvestamiseks,
mida kasutakse juhtimiseks; toetab SWAP-gut)
-
ümberpaigutav vorming ( mõeldud dünaamilise mälu kasutamiseks,
mis oli võimalik käivitada sellisse faili laaditud programmi operatiiv
mälu suvalisest kohast: toetab multiprogrammeerimist)
On antud kahe korralduse vormi
põhikorraldus DIR
erikorraldus <CTRL
MIKROARVUTITE OP-SÜSTEEMID
Lähtudes operatsioonisüsteemi koosseisust on mõistlik jaotada neid 3
ossa:
1) Lintoperatsioonisüsteemid e. operatsioonisüsteemid loetava süsteemse
tarkvaraga
2) Ketasoperatsioonisüsteemid e. universaalsedsüsteemid
3) Reaalajasüsteemid
Tegelikult kolm arenesid mikroarvutitel esimestena ning esialgsete
plaanide järgi oli mikroarvuti mõeldud protsesside juhtimiseks.
Lintoperatsioonisüsteem
On selline operatsioonisüsteem, kus puuduvad välised mäluseadmed,
operatiivmälu kuni 16k ning operatsioonisüsteem koosneb:
-
tekstiredaktor,
-
assemblerist,
-
linkurist,
-
silurist,
-
s/v superviisorist,
-
algoritmilise keele ( BASIC) interpretaatorist.
Sellist operatsioonisüsteemi kasutakse
-
tarkvara väljatöötamiseks,
-
arvutitel, mis juhivad tööpinke kus keskseks osaks on monitor.
Kasutaja programmid võivad kuuluda, võivad ka mitte kuuluda. Arvutitel
CPV, Courol, indikaator, mälu, lindilugeja, klaviatuur. Omapärane operatsioonisüsteemis
tekstiredaktorit vaadeldakse kui süsteemset programmi, kuna ta võimaldab
sisestada operatsioonisüsteemi programme. Süsteemi lahtine veatöötlus
tingib katkestuse. Silur tavaliselt - mälupesade avamine, jne. S/v superviisor
- ette nähtud andmevahetuseks arvuti ja välisseadmete vahel. Korralduste
andmine toimunud programmide sees ning käsud tuntakse ära erikujude järgi.
Operatsioonisüsteemi projekteerimisel oli algul kolm blokkskeemi tüüpi.
-
alamülesanded
-
tsükli tingimus
-
“If” lause
Ketasoperatsioonisüsteem
Koosneb:
-
Monitor
-
Tekstiredaktor
-
ASM
-
Linkur
-
Silur
-
Teekur
-
Failikäsitlusutiliidid
-
Enamikes ka pakktöötlusutiliidid - korraga on töös 1 ülesanne
-
Programmi hooldusutiliidid
-
Draiverid
-
Süsteemiteek
Sellise süsteemi korral on vaja lahendada kaks esmatähtsat ülesannet:
1) määrata monitori käskude süsteem;
2) määrata need monitori komponendid, mis peavad olema residentsed
ja mis võivad olla transiitpiirkonnas.
Enamikel juhtudel peavad olema need käsud. Kui on operatsioonisüsteemi
enamarenenud, siis asendatakse sellised elementaar korraldused alamprogrammidega,
ning need jaotakse residentse ja transiitosa vahel.
Tihti monitor jaotakse omakorda kolmeks osaks:
-
Residentmonitor - sisaldab süsteemi tabeleid ja lühikesi, enamkasutatavaid
süsteemi programme, katkestuste töötlemise programmid.
-
Sõrmistik monitor e. kasutajatoetuse monitor. Kitsamas mõttes
just seda osa monitori all mõeldigi. Mõeldud korralduste vastuvõtmiseks
ja tõlgendamiseks süsteemi terminaali kaudu. Võimaldab laadida kettalt
programme ja neid käivitada ja anda välisseadmetele loogilise seadmete
nimesid ja isegi korraldada multiprogrammeerimist (kui see süsteemis on
ette nähtud)
-
Teenindusprogramm (USR) Võimaldab käivitada faili käsu utiliiti
ning teeb terminalilt sisestatud korralduste süntaksanalüüsi
MS-DOS - ketas operatsioonisüsteem
CP/M - eelneks sellele, I ketas operatsioonisüsteem
Alates I on järgmised korraldused sees:
EDIT - rearedaktor
DIR, COPY, REN-ame, DEL-ete.
Üldjuhul FORMAT - transiitosa. Ketas operatsioonisüsteemid üldjuhul
jaotavad mälu järgnevalt. Süsteemsete katkestusvektorite aadressid,
seadmete nimed. Neid nii tihedalt, kui saab. Täidetakse ülevalt. Kõigepealt
residentne monitor, siis teenindusprogramm . Muidu ei saaks korraldada
süntaksanalüüsi. Siis sõrmistiku monitor KMON - seda surutakse esimesena
kettale - kui ülesannete jaoks ruumi ei jää. Kui ikka ruumi pole, siis
pressitakse välja teenindus programmi teatud osa. Operatsioonisüsteemi
tähtsamaks osaks on draiver. Nende ülesanne on võimaldada kasutada välisseadmeid
ja neid ka juhtida.
Draiverid paigutakse laadimisel vahetult pärast residentset monitori
ning nende paigutus mälu nihutab kõik ülejäänud allapoole. Selle nihutamine
teostub resident monitoriga. Kui monitoriga suhtlemiseks ei ole spetsiaalset
keeletranslaatorit shell, siis talle korralduste andmine toimub päringu
re iimis ning korralduse kuju järgi eristakse, kas nad kuuluvad põhikorralduste
või programmpäringute hulka. Süsteemides, kus välismälud on
kindlalt failikorraldus siis ning enamikel juhtudel failid võivad olla
4 erineval kujul.
Need on failides esitatavate andmete vormingud:
1) Lähtevorming - lähtetekstide hoidmiseks
2) Objektvorming - objektmoodulite salvestamiseks lähteanmed linkuritele.
Linkimise tulemustest moodustakse kas laadevorming või ümberpaigutatava
vorminguga fail.
3) Laadevorming - sisaldab faili, mis on selle mälupiirkonna täpne
koopia, millest antud fail salvestatud.
4) Ümberpaigutatav vorming - fail, mida saab laadida suvalisse mikroarvuti
mälupiirkonda.
MIKROARVUTITE REAALAJAOPERATSIOONI
SÜSTEEMID
Tavaliselt võimaldavad reaalajaoperatsioonisüsteemid täita paljusid
ülesandeid. Tihti need ülesanded on fikseeritud, mis kergendab protsessi
ümberlülitamist ühelt teisele.
Iga selline operatsioonisüsteem koosneb:
-
plaanurist,
-
dispetserist, mis koos moodustavad operatsioonisüsteemi tuuma,
-
monitorist,
-
katkestusohjurist,
-
ajahaldurist,
-
s/v superviisorist.
Viimase koosseisu lülitakse kas välisseadmete draiverid või terminali
emulaatorid vastavalt süsteemis olevate ülesannete vajadustele operatsioonisüsteem
eristab tema poolt teenindatavad ülesannete jobi 5 olekus:
1. Loomisolek -ülesanne initseeritakse - saabuvad algandmed(L)
2. Valmisolek - on üle antud dispetserile (V)
3. Täitmisolek - eraldatud protsessi aeg (T)
4. Ooteolek - kus peatatud või ootab vajalikku sündmust oma jätkamiseks
(O)
5. Lõpetusolek - lahkub süsteemist. (LK)
Seotud graafiga:
A’d -põhjused üleminekuks:
A1- ülesande formeerimise lõpetamine ja tema saabumine plaaneri jrk.
ja siis tema üleviimine valmisoleku järjekorda;
A2- sündmus, mis tingitud jrk. kättejõudmisega ülesande väljatõrjumine
taimeri katkestusega;
A3- kas pöördumine sisendi poole lugemise ootamine või ajakvandi
lõppemine:
A4 - kõrgema prioriteediga ülesande saabumine ja ülesannete katkestamine:
A5, A6 - sündmuse saabumine, mida ülesanne ootab n.sisendandmete
saabumine. Kui täidetav ülesanne temast kõrgema prioriteediga, läheb
valmisolekusse, kui madalamaga, peale protsessori ressurssi:
A7 - ülesande normaalne lõppemine või mittekõrvaldatava vea teke.
Erinevalt üldotstarbeliste operatsioonisüsteemist on reaalaja plaaneri
töö intensiivsem.
Dispetseri ülesanne plaaneri valitud tööd käivitada ja jätkata
nende täitmist valmis- või ooteolekust. Pärast protsessi vabanemist
jooksva ülesande täitmiseks antakse juhtimine tagasi plaanerile uue ülesande
valimiseks.
Katkestusohjuriga katkestatud tüübi kohta sisaldab oma makro ja salvestab
alati katkestutava ülesande oleku. Tavaliselt lõpetab oma töö juhtimise
üleandmisega plaanerile ning see otsustab, kas uus ülesanne või jätkata
sama täitmist.
Ajahaldur realiseerib taimeri poolt antavaid katkestusi ning organiseerib
ülessanete poolt nõutavaid viiteid (sünkroniseerib) Omab alati operatsioonisüsteemis
kõrgeimat prioriteeti. Pärast seda saab juhtimise plaaner.
S/V superviisor tavaliselt makrodekompleks, mille parameetriteks on
sisend või väljund andmete aadress või hulk. S/V ka puhverdab andmeid.
Peale töö lõppu plaanerile juhtimine.
Iga reaalajaoperatsioonisüsteem I töö olulisteks osadeks on kolm
juhtstruktuuri teadete ülesannete e. jobide deskriptorite ja pk deskriptorite
kirjeldused. Enamik mikroarvutite operatsioonisüsteem tagavad ülesande
koostegevust teadete abil. Selline edastusprogramm on funktsionaalselt
lähedane postkastile, millesse 1 ül paneb teate viida teatele . s. t.
teate aadress ja 2.ül võtab selle. Teadet saatev ülesanne määrab üksnes
selle postkasti kuhu see teade peab sattuma, mitte aga antud teadet saava
ülesande nime. Seetõttu edastakse andmeid ülesannete vahel anonüümselt,
mis nõrgendab programmi vahelisi sidemeid ja võimaldab saavutada süsteemi
suuremat töökindlust teade ressurssi hõivamisest. Teade koosneb üldjuhul
6.osast .
Kõik teate osad v.a. 6., milles teate sisu on kindla pikkusega. Väli
viit seob ühe postkasti ülesanded. Selle välja formeerib operatsioonisüsteem
ja seda kasutajad ei saa muuta. Välja pikkus sisaldab teate pikkuse baitides.
Välja tüüp ning tüübi näitab kas teadet töötlevad operatsioonisüsteemi
ülesanded (protsessid) või kasutaja ülesanded. Väli 2 - postkast aadress,
kuhu saata teade siis, kui teda süteemis enam ei kasutata. Selline väli
annab võimaluse koguda kõik läbitöödeldud teated ühte mälupiirkonda,
kas või järgnevaks kasutamiseks. Seda välja nimetakse kodu postkastiks
e. Home exchange. Väli sisaldab selle postkasti aadressi, kuhu tuleb saata
vastus antul teatele.
Ülesanne e. jobi deskriptor. Ette nähtud ülesande identifitseerimiseks
süsteemis ja see moodustakse kas reaalajasüsteemi initsialiseerimisel
, kui lahendatavad ülesanded on jäigalt fikseeritud, või dünaamiliselt,
kui mingi ülesande loob uue ülesande. Sellinne ülesande deskriptor koosneb
2 osast s.o. püsideskriptor ja lisa ,deskriptorist. Püsideskriptor sisaldab
7 välja ja lisadeskriptorid tavaliselt 11 välja. Püsideskriptoris üldjuhul
välja nimi, mis määrab ülesande nime. Käsuloenduri algväärtus -
ülesande poolt täidetava I käsu aadress. Pinuaadress - sisaldab operatiiv
mälu suurima aadressi, mida võib pinus kasutada. Pikkus - sisaldab ülesande
jaoks eraldatud pinu suuruse baitides. Prioriteet sisaldab ülesandele
prioriteedi väärtuse. Algpostkast - sisaldab ülesande esialgse vaikimisi
määratava postkasti aadessi või 0, kui sellist pole. Lisa deskriptori
viit - lisadeskriptori algusaadress. Lisadeskriptori iseloomustab ülesande
lahendamiseks vajalikke ressursse, mis vajalikud ülesande töö jätkamisel
peale katkestust.
Postkasti deskriptor. Eristatakse kahte suguseid. Lihtpostkast
või katkestuse postkast.
Lihtpostkast koosneb 5 -st väljast ning sisaldab järgmisit:
-
teatelisti algus - viit esimesele antud postkastis võtvale teatele;
-
teatelisti lõpuviit - viimase ootava teate aadress.
-
ülesannete listi algus - viit esimesele antud postkastis ootavale
ülesandele 1.jobile.
-
ülesande listi lõpp - viit viimasele antud postkastis ootavale
ülesandele 1.jobile.
-
postkasti listi viit - sisaldab järgmise postkasti aadressi süsteemi
postkastide listis.
Tihti mikroarvutite operatsioonisüsteemi d, mis peavad töötama reaalajas
on väga erinevad ja seotud juhitavate objektidega. Seepärast enamik mikroarvutite
operatsioonisüsteemide genereeritakse unikaalseteks nende installeerimisel
ning seda tehakse ära translaatorite translaator 4 juhttabeli loomisega
1) ITT tabel, seob kirjeldatud süsteemi ülesanded, deskriptorid
2) IET - kirje süsteemis kasutuselevõetavate postkastide nimed ja
deskriptorid;
3) ISLT tabel kus kirjeldakse süsteemis aksepteeritud katkestused
ja neid töötlevad makrod ning need tabelid lingitakse ühte CRTB abil
(Create TABle), mis koosneb ITT aadress, teiseks tööde arv süsteemis.
Siis IET aadress. postkastide arv. ISLT aadress, siis katkestuste ja nende
alamnivoode arv. Lisatakse Stack’ide kirjeldused, mida siis võtabkasutusele.
Sellise genereerimine toimub kas dialoogi käigus või standartse vormingu
täitmisega. Nimetus, mis ülesande, sisend punktid, pikkused, prioriteedid,
postkasti vaikimisi piirkonnad.
Ülesanded
Ülesanne 1: Olgu antud olukord, kus süsteemi tuleb 10 protsessi, igaüks
nõuab 10 ajaühikut, oma täitmiseks. Programmi saadetav ajakvant
-2aü ning katkestuse e. ümberlaadimise reguleerimine -1aü. Leida, milline
dispetseerimise skeem annaks optimaalse tulemuse, kui optimumi kriteeriumiks
on min - ooteaeg ning mitu taset tuleb Corbato meetodil realiseerida. Mitu
Esi - ja tagaplaani meetodil. Palju läheb aega igale protsessile? Mitu
taset tekib? Carbato -2 järjekorda - SISJ ja 1 jrk. 2- saab liiga
palju aega tekkib ajakadu. Kui suur peaks olema ajakvant, et etteantud
situatsioonis Corbato skeem (R-R, FB) oleks optimaalne.
RR -teenindab 5. Korraga
1. - 10 aü - teise saab 10 katkestuse pärast, kolmanda 20 katkestuse
järel. Selleks ajaks, kui saab kätte oma 10aü, on olnud 39 katkestust.
Teised saanud 8*9=72aü. Koguaeg 111 Täitmisi 10. 10/101 Järgmistel:
igal tuleb alguse ooteaeg juurde.
2. -3. 3.-6, jne.
10. -esimeses lisakatkestust + teistetäitmised - kokku 27.
Corbuto - vähem selle võrra, et katkestusi vähem.
Siin teenindab 3. korraga.
1. Kord - 30
2. Kord - 50
10 4*9*2+4*10=40+72=112
Ülesanne 2 Süsteemi tuli korraga 10 ülesannet igaüks neist
vajab 10 ajaühikut ja protsessori q e. Korraga antav minimaalne ajakvant
on võrdne 1-ga.
1. Määrata kindlaks , milline 3st meetodist (RR, Fg-Bg ja Corbato)
annab parima koormatuse näitaja st. Vajalik aeg jagada ooteajaga
2. Mitu järjekorda võib tekkida Corbato meetodil
3. Millisel protsessil ja kui suur on min. ooteaeg
4. Millisel protsessil ja kui suur on max. ooteaeg
Ülesanne 3. Antud lehekülje poole poordumis järjekord. n. ABEAAECA....
Korraga mälu 3 lk. Mälu vabastamise meetod (LIFO,LRU,vms)
Sagedustabel leida.
Ülesanne 4. Üleminek vahekeelde (postfiks kujule) Selle alusel
puu.
Ülesanne 5. On arvuti kuhu saabus 7 protsessi. Iga 5 ajaühikut, korraga
2, ümberlülitumine 1, mis on kasulik dispetser. Corbato või R-R
KORDAMIS KÜSIMUSED
1. Miks jaotakse kaheks sõltumatuks, mida kumbki määrab (eri tüübid
ühendamisel)?
2. Pakktöötlus, hajutatud töötlus, võrksüsteem, esi- tagaplaan?
3. Plaanuri, generaatorid. (3 tasemeline plaanur)
4. Kuidas arenenud, kuidas suunad kokku läksid?
5. Virtuaalmasinate ideoloogia.
6. Käivitus-, täitmisaeg, täituvusaeg,. Mis komponent teenindab?
7. Mis on protsess?
8. Milline osa toetab? Katkestused? Jätkumine? Ajakvandid?
9. 3- taseme planeerimine
10. Esi- ja tagaplaan, Corbato, R-R
11. Mis on käsufailid? MIs vahe programmiga?
12. Kuidas alamsüsteemi programid pöörduvad operatsioonisüsteemi
poole s/v teostamiseks.
13. Redaktor, linkur, translaator, laadur. Kuidas seotud?
14. 1:1, 1:M, M:M. Vahekeel (postfiks kuju)
15. Lintsüsteem, ketassüsteem?
16. Mis tasemel tehakse klaviatuurilt lugemine, käsu täitmine?
17. Erinõuded, monitor, postkastid, ülesannete infovahetus.
18. Erinevad orienteeritused. Kuidas operatsioonid resursse koormavad.
Mis juhtub, kui üks teisest tugevam on?