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.

 

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üsteemi nõuded: Operatsiooni loojad ütlevad, et kaks viimast on alati omavahel konfliktis.
 
 
 
 
 
 
 
 

Operatsioonisüsteem jaotab :

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:
  1.   osa: residentne - pidevalt mälusolev;
  2.   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)

  Kasutusalast / eesmärgist   Töötlusest: 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:

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

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:

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:

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.

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ä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:

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:

On otstarbekas realiseerida järgmised süsteemid: 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:

 



 

 
 

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.

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: 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: Alamsüsteemi ülesehitus on analoogiline operatsioonisüsteemi ehitusega. Seega jaguneb kaheks osaks: 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:

Ü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: 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:

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: 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: . 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 : Normaalkuju tähendab, et mudeli koostamist kindlate reeglite alusel ning reeglid järgmised: 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:

 

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:

 



 

 
 
 
 
 

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.
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:

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:

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:

        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:

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:
Operatsioonisüsteemi 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

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.  

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:

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:

Sellist operatsioonisüsteemi kasutakse 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.  

Ketasoperatsioonisüsteem

Koosneb:

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:

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:

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 .
 
 

1 2 3 4 5 6
V P T L V K
 

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:

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?