Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
MTAT.08.006 OPERATSIOONISÜSTEEMID
1. slaidKERSTI TAURUS
Mäluhaldus
MTAT.08.006 OPERATSIOONISÜSTEEMID
2. slaidKERSTI TAURUS
Ülevaade
● Mõisted;● Pidevate mälualade hõivamine;● Lehekülgede saalimine.
MTAT.08.006 OPERATSIOONISÜSTEEMID
3. slaidKERSTI TAURUS
Mälu
● Mälu – adresseeritud baidimassiiv.● Protsessor saab mälust käske ja andmeid
– loe käsk;– loe esimene argument;– loe teine argument;– täida käsk;– salvesta tulemus mällu.
MTAT.08.006 OPERATSIOONISÜSTEEMID
4. slaidKERSTI TAURUS
Aadresside sidumine
● Enamuse elust veedab programm kõvakettal.● Tema täitmiseks tuleb programm tuua mällu.● Programmi täitmiseks tuleb koodis sisalduvad
sümbolaadressid seostada tegelike mäluaadressidega; see võib toimuda:
1) Kompileerimise ajal;
2) Laadimise ajal;
3) Täitmise ajal.
MTAT.08.006 OPERATSIOONISÜSTEEMID
5. slaidKERSTI TAURUS
Aadresside sidumine
1) Kompileerimise ajal:– mälupaigutus on ette teada;
– genereeritakse kood absoluutaadressidega;
– paigutuse muutumisel on vaja ringi kompileerida;
– seda skeemi kasutasid MS DOSi .com programmid.
MTAT.08.006 OPERATSIOONISÜSTEEMID
6. slaidKERSTI TAURUS
Aadresside sidumine
2) Laadimise ajal:– genereeritakse mälus ümberpaigutatav kood;
– reaalsed mäluaadressid asendatakse programmi laadimisel.
MTAT.08.006 OPERATSIOONISÜSTEEMID
7. slaidKERSTI TAURUS
Aadresside sidumine
3) Täitmise ajal:– aadresside sidumine lükatakse edasi konkreetse
aadressi poole pöördumiseni;
– programmi saab täitmise ajal mälus ringi liigutada;
– vajalik riistvaraline tugi.
MTAT.08.006 OPERATSIOONISÜSTEEMID
8. slaidKERSTI TAURUS
Loogilised ja füüsilised aadressid
● Loogiline aadress - programmide poolt kasutatav aadressiruum, nimetatakse ka virtuaalseks aadressiruumiks
● Füüsiline aadress – loogilisele aadressile vastav mälupesa aadress, mida mäluseade tegelikult näeb ja kasutab
● Kompileerimise ja laadimise ajal seotavate aadresside puhul on loogiline ja füüsiline aadress samad, täitmise ajal seotavatel erinevad
MTAT.08.006 OPERATSIOONISÜSTEEMID
9. slaidKERSTI TAURUS
Mäluhaldusplokk
● MMU (Memory-Management Unit) ehk mäluhaldusplokk - riistvaraline seade loogiliste aadresside füüsiliseks teisendamiseks.
● Kasutajaprogramm tegeleb oma loogiliste aadressidega (0..max) ega näe otseselt füüsilisi aadresse.
MTAT.08.006 OPERATSIOONISÜSTEEMID
10. slaidKERSTI TAURUS
Mälukasutus
● Dünaamiline laadimine – protseduuri ei laeta mällu enne kui teda tegelikult vaja läheb.
● Staatiline linkimine – kasutatavad protseduurid kaasatakse käivitatavasse faili.
● Dünaamiline linkimine – käivitatavas failis hoitakse vaid infot protseduuri asukoha kohta.
● Ülekatmine
MTAT.08.006 OPERATSIOONISÜSTEEMID
11. slaidKERSTI TAURUS
Dünaamiline laadimine
● Alamprogramme ei laadita enne, kui neid kord vaja läheb;
● Efektiivsem mälukasutus;● Kasulik näiteks siis, kui harva esinevate
erijuhtude töötlemiseks on kokku palju koodi;● Ei vaja operatsioonisüsteemi tuge, realiseeritav
täiesti programmi enda tasemel;
MTAT.08.006 OPERATSIOONISÜSTEEMID
12. slaidKERSTI TAURUS
Staatiline linkimine
● Teatud operatsioonisüsteemid lubavad vaid seda.● Süsteemsed teegid loetakse samaväärseks muude
objektimoodulitega ja seotakse programmi binaarkoodi.
MTAT.08.006 OPERATSIOONISÜSTEEMID
13. slaidKERSTI TAURUS
Dünaamiline linkimine
● Linkimine lükatakse edasi täitmisajaks● Tegeliku alamprogrammi asemel on viit (stub),
mis esimesel tema poole pöördumisel laadib päris alamprogrammi ja asendab ennast selle alamprogrammiga (enamasti viida vahetusega)
● Operatsioonisüsteemi tuge on vaja juhul, kui tahame neid alamprogramme jagada mitme protsessi vahel ja kasutame seejuures mälukaitset
● Eriti kasulik (süsteemsete) teekide kasutamisel - kettaruumi ja mälu kokkuhoid, mugav teekide uuendamine
MTAT.08.006 OPERATSIOONISÜSTEEMID
14. slaidKERSTI TAURUS
Ülekatmine (overlay)● Rakendusprogramm hoiab mälus ainult seda osa
programmist ja andmetest, mida hetkel vaja on.● Kasutatakse, kui kogu programm kokku on
suurem kui talle antud mälu.● Operatsioonisüsteemilt ei vajata tuge,
realiseeritav kasutaja tasemel.● Näide: DOS ja suured programmid.
MTAT.08.006 OPERATSIOONISÜSTEEMID
15. slaidKERSTI TAURUS
Saalimine (swapping)
● Protsessi võib ajutiselt mälust välja salvestusruumi kirjutada ning hiljem tagasi mällu laadida
● Salvestusruum - kiire ketas, mis mahutab kõigi kasutajaprogrammide mälukujutised, peab olema otsejuurdepääsuga suvalise mälukujutise juurde
● Roll out, roll in - saalimise variant prioriteedil põhinevate planeerimisalgoritmide juurde: madalama prioriteediga protsess saalitakse välja kõrgema prioriteediga protsessi töö ajaks
MTAT.08.006 OPERATSIOONISÜSTEEMID
16. slaidKERSTI TAURUS
Saalimine (swapping)
● Enamuse saalimise ajast võtab andmete kopeerimine välisseadmele, aeg on lineaarselt sõltuv mäluhulgast.
● Erineval kujul on saalimine kasutusel paljudes süsteemides, näiteks UNIX, Linux, Windows.
MTAT.08.006 OPERATSIOONISÜSTEEMID
17. slaidKERSTI TAURUS
Pidevate mälualade hõivamine
● Põhimälu on üldjuhul jagatud kahte ossa:– operatsioonisüsteem (sageli mälualade eesosas
katkestusvektorite asukoha tõttu);
– kasutajaprotsessid.
● Kasutajaprotsessidele mõeldud mälu on omakorda jaotatud väiksemateks tükkideks
● Igale täidetavale protsessile eraldatakse üks sobiva suurusega terviklik mälutükk
● Auk - vaba mäluosa
MTAT.08.006 OPERATSIOONISÜSTEEMID
18. slaidKERSTI TAURUS
Pidevate mälualade hõivamine
● Iga protsessiga on seotud nihke- ja piirregister– Kasutatakse loogiliste aadresside teisendamisel
– Kaitseb teisi protsesse ja opsüsteemi vigaste mälupöörduste eest
MÄLU
nihkeregisterpiiriregister
protsessor < +jah
ei
füüsilineaadress
katkestus; adresseerimise viga
MTAT.08.006 OPERATSIOONISÜSTEEMID
19. slaidKERSTI TAURUS
Fragmenteerumine
● Sisemine – Kui ruumi hõivamisel kasutatakse suuremaid blokke,
siis ka väiksema ruumi vajadusel hõivatakse kogu blokk.
– Vaba ruumi on, kuid ei saa kasutada.
● Välimine – Ruumi hõivamisel antakse sobival hulgal ruumi.
Ruum ei pruugi asetseda järjestikku.
– Vaba ruumi on, kuid see ei asu järjestikku ja kasutada ei saa
MTAT.08.006 OPERATSIOONISÜSTEEMID
20. slaidKERSTI TAURUS
Lehekülgede saalimine (paging)
● Eeldus – protsessi hõivatud mälualad ei pea asetsema füüsiliselt järjestikku.
● Kaader (frame) – pidev blokk füüsilist mälu suurus kahe aste (512, 4096, 8192)
● Lehekülg (page) – pidev blokk loogilist mälu● Protsessi käivitamisel loetakse tema leheküljed
vabadesse kaadritesse● Iga aadress on protsessoris jagatud kaheks:
– Lehekülje number (p) – indeks lehekülje tabelis
– Nihe lehekülje sees (page offset) (d)
MTAT.08.006 OPERATSIOONISÜSTEEMID
21. slaidKERSTI TAURUS
Lehekülgede tabel
p
MÄLU
protsessor
füüsilineaadress
loogiline aadress
d
f
füüsiline aadress
d
lehekülgede tabel
p{p – lk nr
d – nihe
MTAT.08.006 OPERATSIOONISÜSTEEMID
22. slaidKERSTI TAURUS
Lehekülgede saalimine (paging)● Peame arvet vabade kaadrite üle● Suurusega n protsessi jaoks otsime lihtsalt n vaba
kaadrit● Iga protsessi kohta teeme lehekülgede tabeli
loogiliste lehekülgede ja füüsiliste kaadrite vastavusse seadmiseks
● NB! Lehekülgede kaupa hõivamisel tekib paratamatult sisemine fragmenteerumine
MTAT.08.006 OPERATSIOONISÜSTEEMID
23. slaidKERSTI TAURUS
Segmenteerimine
● Segmenteerimine on mäluhalduse skeem, kus kasutatakse paljusid segmente, ühe pideva loogilise aadressruumi asemel
● Läheb paremini kokku paljude kasutajate mõttemaailmaga
MTAT.08.006 OPERATSIOONISÜSTEEMID
24. slaidKERSTI TAURUS
Segmenteerimine
● Programm on komplekt segmente. Segment on loogiline ühik, näiteks– Põhiprogramm
– Protseduur, funktsioon, meetod
– Objekt
– Lokaalsed muutujad, globaalsed muutujad
– Magasin
– . . .
MTAT.08.006 OPERATSIOONISÜSTEEMID
25. slaidKERSTI TAURUS
Aadressi moodustamine segmenteerimisega
s
MÄLU
d
piir
+protsessor <jah
ei
baas
s{
katkestus; adresseerimise vigap – segmendi nr
d – nihe
MTAT.08.006 OPERATSIOONISÜSTEEMID
26. slaidKERSTI TAURUS
Virtuaalmälu
MTAT.08.006 OPERATSIOONISÜSTEEMID
27. slaidKERSTI TAURUS
● Virtuaalmälu — kasutaja loogilise mälu füüsilisest mälust lahti sidumine:– ainult osa protsessi poolt vajatavast mälust on korraga
füüsilises mälus;
– loogiline aadressiruum saab seega olla oluliselt suurem kui füüsiline aadressiruum;
– aadressiruume (aadressiruumide osi) saavad protsessid omavahel jagada;
– võimaldab efektiivsemalt protsesse luua .
● Virtuaalmälu saab realiseerida kahel viisil: – lehekülgede laadimine nõudmisel (demand paging);
– segmentide laadimine nõudmisel (demand segmentation).
MTAT.08.006 OPERATSIOONISÜSTEEMID
28. slaidKERSTI TAURUS
● Virtuaalmälu (VM) suurus– ~1,5 korda tegelik mälu (max 4GB)
– NB! 32bit OS ei suuda adresseerida üle 4GB mälu!
– SSD kõvaketastega arvutitel lülitada VM välja.
– Kui arvutis on 3GB või rohkem aktiivmälu, lülita VM välja (kui ei kasutata).
● Linuxitel on selleks eraldi Swap partitsioon● MS Windows
– NT/2000/XP/2003 fail pagefile.sys
– 9X Win386.swp
Virtuaalmälu praktikas
MTAT.08.006 OPERATSIOONISÜSTEEMID
29. slaidKERSTI TAURUS
Virtuaalmälu seadistamine● Suurus fikseeritud: max 1,5 korda tegelik mälu
– Algsuurus=lõppsuurus
● Asukoht:– Eraldi kiire kõvaketas
– Füüsiliselt kettal alguses oleval partitsioonil
● NTFS failisüsteem ja 4 kB klastri suurus (olenevalt süsteemist)
● RAID0 sobib– Ei sobi: RAID1 ja RAID5 – virtuaalmälu ei vaja
tõrkekindlust
MTAT.08.006 OPERATSIOONISÜSTEEMID
30. slaidKERSTI TAURUS
NX bitt
● Riistvaraliselt realiseeritud– AMD 64-bitine protsessor
– INTEL Itaniumi 64-bitine protsessor (XD eXecute Disable)
● NX – No eXecute – protsessor keelab programmil käivitada koodi väljaspool talle eraldatud mäluala.
● Tagab turvalisuse, takistab viiruste levikut (aitab puhvri ületäitumise vastu ).
MTAT.08.006 OPERATSIOONISÜSTEEMID
31. slaidKERSTI TAURUS
NX bitt
● Tarkvaraline lahendus:– Linux
● Exec Shield● Pax
– Windows● DEP (Data Execution Prevention)
MTAT.08.006 OPERATSIOONISÜSTEEMID
32. slaidKERSTI TAURUS
Süsteemi vahemälu (CPU cache)
● Vahendajaks protsessori ja aeglase mälu vahel– NB! aeglane võrreldes protsessori kiirusega
– Vanematel arvutitel 2 vahemälu nüüdisaegsetel rohkem
MTAT.08.006 OPERATSIOONISÜSTEEMID
33. slaidKERSTI TAURUS
Kettapuhver (disk cache)
● Suurus keskmiselt 2MB kuni 8MB● Seotud kindla seadmega (kõvaketas)● Kasutusvaldkond:
– ette/tahalugemine
– Kiiruse tasakaalustamine
– Kirjutamise kiirendamine
– Käsujärjekorra hoidmine