Monday, January 26, 2015

26/01/2015 Mäluhaldus/Memory Management

kodus vaata barbara hekker video principles of operating: https://www.youtube.com/watch?v=5B4dbnD9DMg -- lisa täiendusi
5 põhimõtet:
1. Protsesside isoleerimine.
2. Autoimaatne mälu hõivamine ja haldus. KUi klikid rakendusele, siis os läheb ise sina ja teeb kõik ära. kasutaja ei pea mõtlema kuhu mälusse panna.
3. Toetus modulaarsele programmide ülesehitusele. Kõik tänapäeva rakendused sellised. tugi peab os-il olema. support of modular programming
4. rakendused töötavad koos, vahetavad omavahel infot. Peab olema nendel juurdepääs ja teiste eest kaitse.protection and access control
5.Pikaajaline hoidmine. Long term storage

protsessor saab kasutada ainult RAM-i ja
CPU töötab ainult kas RAM-i või Cache-ga.
 registrite poole pöördumisekd kulub 1 takt
ühe takti poole pöördutakse 1 taktiga, CPU poole pöördumine võtab kas 2, 4 või 8 tsüklit.
cache paikneb peamälu ja protsessori registrite vahel.
mälu kaitsemehhanisme on vaja rakendada, et tagada tehete/tehingute õigsust/korrektsust.
Mõisted:
Frame e kaader - mälukaader-kindla pikkusega RAM-i(peamälu) blokk
Page e lk - mälulehekulg-kindla pikkusega andmeblokk mis paikneb sekundaarmälus e kettal. Võib ajutiselt kopeerida kaadrisse.
Segment -  muutuva pikkusega andmmeblokk mis paikneb kettal e sekundaarmälus.
Sekundaarmälu- virtual memory - virtuaalmälu - on kettal paiknev puhvermälu, kannab erinevates os-ides erinevat nime. widowsis on ta page file. linuxis on ta swap e saaleala. On lehekülgede fail mis paikneb ketta peal. Suurus tavaliselt poolteistkorda RAM-i suurus. Võimaldab puhverdamist.

http://kuutorvaja.eenet.ee/wiki/Kuut%C3%B5rvaja - infot os-ist eestikeeles.

Ühe kasutaja asjad peavad olema teise eest kaitstud, neid ei tohi samasse kohta kirjutada - mäluhalduse oluline ülesanne.

Mida mäluhaldus teeb:
relocation- mälus ümberpaigutamine. eesmärk failide liigutamisel failis eneses midagi ei muutu.
protsection - mälu kaitse
sharing - mälu piirkondade jagamine
loogiline pälu organiseerimine - leheküljed ja segmendid.
füüsiline mälu organiseerimine - kaadrid
 os peab tagama et programmid töötaksid.
täitmisel oleval protsessid OS võib tõsta saalealasse. Aktiivseid protsese peab saama peamälust välja saalida ja vajadusel tagasi saalida. info on protsessikontrollblokis. protsessi täitmise protsessi faili liigutamine mõjutada ei tohiks. see, et ta pärast liigutamist samasse kohta läheb ei ole võimalik. viited muutuvad.

KAITSE:
protsess peab teatud juhtudel mingeid tulemusi mällu kirjutama selleks et seda järgmine kord kasutada.
ei ole võimalik ennustada kus kohas, mis piirgonnas programm paikneb. kuhu satub jne
mälu viited seatakse/moodustatakse siis kui protsessi käivitad ja neid ka kontrollitakse, eriti saalimise korral.
mehhanism mis toetab ümberpaigutust toetab ka samaaegselt mälu kaitset.
JAGAMINE:SHARING
Jagamiseks peame mõlemale protsesile andma laadimis ajal andmed kuhu tal on juurdepääs teise protsessi piirkonnas. saalimisega ei peaks see muutuma. eesmärk et igast rakendusest on parajasti mälus üks mitte mittu koopiat ja sellega peab selle töö ära tegema.
Kui mitu rakendust tahavad ühte tükki kasutada, siis on eelisõigused.senikaua kui üks protsess töötab selle tükiga, teised protsessid ei näe kas ta töötab või ei.
kui tõstan bloki sisu ühest kohast teise, siis mõlemad uus ja vana koht on praegu kinni.
LOOGILINE ORGANISEERIMINE.
mälju jaotus org, lineaarselt
prog. mis kirjutatud moodulitesse neid saab mällu kirjutada ja aktiveeria
on erinevad kaitseastmed moodulitel, failidel on seotud teatud loa bitid. loabittide süsteem. vt failisüsteeme
tuleneb inimeste endi mõtteviisist
ANDMETE JAGAMINE MOODULITE TASEMEL
see kuidas kasutajad probleeeme lahendavad. segmenteerimine on vahend mis seda võimaldab(üks jaotamise viise, loogiline)
FÜÜSILINE ORGANISEERIMINE.
1.ei saa programmereija ülesandeks jätta mäluhaldust. see välistatakse. talle ei anta võimalust mälu hallata sest see läheks vastuollu 5 olulisima põhimõttega. kipub mäluruumi raiskama kui inimene teeb
2.vajalik mälu mis on prog. ja tema andmete laadimiseka vajalik mälu ei pruugi olla alati olemas.
mäluressersii ei pruugi piisata et vajalik stuff mällu laadida.
3.programmerijad ei tea tavaliselt ette kui palju mäluruumi vaja läheb.
4. overlining, mäluülekattumine. see kui ei ole mul piisavalt ruumi mingis olukorras lubakisme ühel moodulil kirjutada teise peale. selline tegevus raiskab palju aega. selleks tuleb tagada, et allolev moodul moodul välja saalitakse, sest ühe koha peale 2te asja kirjutada ei saa - ütleb error või "läheb lolliks". üks kood ei tohi teise peale kirjutada. viited(pointer) m,uutuvad mingiteks andmeteks ja tõlgendatakse käsune jnejne võib tulla restart vms. ei tohi lubada mälupiirkondade kattumist
MÄLU JAOTAMINE
ketaste partitsioneerimine, mälu jaotamine.
mälu jaotised - tekitamine seotud protsessi peamällu tekitamisega. sisaldab virtuaalmälu. põhineb segmentimisel ja lehekülgede moodustamisel. selleks et rakendust käima panna, luuakse peamälus mälulk-d ja segmendid. siis vaadatakse kuhuu neid füüsiliselt kirjutada saab. kasutatakse variatsioonidena vamenates os-ides ja need ei sisalda virtuaalmälu.
kettajaotised
MÄLUHALDUS TEHNIKAD.
1. Kindla suurusega jaotiste tegemine - peamälu jaotatakse kindla suurusega tükkideks. lihtne rakendada. nõuab os-ilt vähe tööd/tugevust
2. Dünaamiline jaotiste loomine - peamälu jaotatakse vastavalt vajadusele dünaamilisteks tükkideks mille suurused võivad erineda. Eesmärk sellel et iga protsess laaditaks sellisesse jaotisse mis on sama suur kui protsess ise. Tekitada protsessi vastava mahu suurusega mälutükk. tagab sisemist killustatust ei ole. tagab kõige efektiivsema peamälu kasutuse.
3. Lihtsalt lehekülgede moodustamine - peamälu jagatakse võrdse suurusega kaadriteks(peamälujaotuse ühik).  ei ole välist killustatust.
4. Lihtsate segmentide tegemine - iga protsess jaotatakse teatud arvuks segmentideks. üritatakse tükeldada protsessi mõistlikeks suurusteks.
5. Virtuaalmälu lehekülgede loomine - iga protsess jaotatakse teatud arvuks segmentideks. üritatakse tükeldada protsessi mõistlikeks suurusteks. kõiki tükke ei ole vaja laadida. osad tükid jaotatakse välja mida kohe kasutada pole tarvis
6. Virtuaalmälu segmentide loomine -saab välja jätta segmendid mida kohe laadida pole tarvis. koku saab hoida teekide arvu arvelt. põhimõte kutsume välja siis, kui neid vaja on exe laadida ainult vajalike dll-idega ja siis veel laadida veel vajalikud dll-id.( teine põhimiõte laadida terve exe kõikide dll-idega. raiskab rohkem mälu)

Lihtsa jaotiste PUUDUSED
  • mällu laaditav programm võib olla liiga suur, et ära mahtuda ühele jaotisele. siis tuleb prorgamm ülber projekteerida.ülekattuvuse kasutamine (mis teha kui pole piisavalt ruumi, ajaraiskamine ). 
  • Peamälu kasutus on ebaefektiivne, kui iga programm sõltumata suuruset võtab ära ühe jaotise. sisemine kiilustatus(jäävad tühjad/kasutamata kohad)internal fragmentation. sellek et mälurrmi tekitada, peab asju ümber tõstma.
  • mälujaotsiste arv mis süsteemi genetreeritakse algul on seotud akriivsete protsessidega ning pärast peab seda ruumi ümebr tõstma. jaotiste arv valitakse käivitamisel.
  • väiksesed tööd ei tarvita ühu quque suurust ära.
dünaamilisel partitioning
jaotistel eirnev arv
protsessile antakse nii palju mälu kui ta vajab. sisemist killustatust ei teki. mälu kasutatakse vähemalt algul efektiivselt ära, pärastpoole tuleb otsida sobiva suurusega tükki/vaba ruumi või  asju ümber tõstma
selline metoodiks idm suurarvutites
tekib välimine killustumine - mälu üha enam fragmenteeritud, mälu kasutus väheneb. siis tekib compction , kasutatakse välise killustatuse vähendamisekd. os nihutab protsessi niiet nad oleksid järjekorras, et vahel auke ei oleks. kogu vaba ruum saab üheks blokiks. selline tegevus nõuab aega ja raiskab protsessori (CPU) aega.
mällupaigutuse -mäluruumihhõivamise algoritmid:
best-fit - parim paigutus. valib bloki mis on kõige lähedasem soovitud suurusega(tavalistelt pisut suurem)
first-bit - esimene sobitus - valitakse esimene sobiva suurusega tükk. esimene vaba ruum kuhu protsess mahub, see võetakse ära.
next-fit -järgmine paigutus - alustab scannimist viimase paigutuse asukohast ja valib suuruse poolest järgmise bloki mis on piisavalt suur.

Buddy system - kaaslase süsteem
nimi tuleb sellest, et kasutame kahte hõivamismeetodit korraga

koosneb fikseeritud ja dünaamiliselt jaotuskeemist
kasutatakse fix ja dünaamilist põhimõtet.
vaba ruumi käsitletakse kui ühte blokki.
mälublokkide suurused on 2 astmel K sõna. 2 astmel L on väikseim ja 2 astmel U on suurim blokk mida hõivatakse.





No comments:

Post a Comment