Mälu haldamine OS-is: külgnev, vahetamine, killustatus
Mis on mäluhaldus?
Mäluhaldus on arvutimälu juhtimise ja koordineerimise protsess, millega määratakse erinevatele töötavatele programmidele plokkideks tuntud osad, et optimeerida süsteemi üldist jõudlust.
See on operatsioonisüsteemi kõige olulisem funktsioon, mis haldab esmast mälu. See aitab protsessidel põhimälu ja täitmisketta vahel edasi-tagasi liikuda. See aitab OS-il jälgida iga mälu asukohta, olenemata sellest, kas see on mõnele protsessile eraldatud või jääb vabaks.
Miks kasutada mäluhaldust?
Siin on mäluhalduse kasutamise põhjused:
- See võimaldab teil kontrollida, kui palju mälu tuleb eraldada protsessidele, mis otsustavad, milline protsessor peaks mis ajal mälu saama.
- Jälgib varude vabastamist või jaotamata jätmist. Vastavalt sellele värskendab olekut.
- See eraldab ruumi rakendusrutiinidele.
- Samuti veenduge, et need rakendused ei segaks üksteist.
- Aitab kaitsta erinevaid protsesse üksteise eest
- See paigutab programmid mällu, nii et mälu kasutatakse täies ulatuses.
Mälu haldamise tehnikad
Siin on mõned kõige olulisemad mäluhaldustehnikad:
Üks külgnev jaotus
See on lihtsaim mäluhaldustehnika. Selle meetodi puhul on ühe rakenduse jaoks saadaval kõik arvuti mälutüübid, välja arvatud väike osa, mis on reserveeritud OS-i jaoks. Näiteks MS-DOS operatsioonisüsteem eraldab sel viisil mälu. Manustatud süsteem töötab ka ühes rakenduses.
Partitsioneeritud jaotus
See jagab esmase mälu erinevateks mälusektsioonideks, mis on enamasti külgnevad mälupiirkonnad. Iga partitsioon salvestab kogu teabe konkreetse ülesande või töö jaoks. See meetod seisneb partitsiooni eraldamises tööle selle käivitamisel ja eraldamises, kui see lõpeb.
Lehendatud mälu haldamine
See meetod jagab arvuti põhimälu fikseeritud suurusega ühikuteks, mida nimetatakse leheraamideks. See riistvaramälu haldusüksus kaardistab lehed raamidesse, mis tuleks eraldada lehtede alusel.
Segmenteeritud mäluhaldus
Segmentmälu on ainus mäluhaldusmeetod, mis ei paku kasutaja programmile lineaarset ja külgnevat aadressiruumi.
Segmendid vajavad riistvaratuge segmenditabeli kujul. See sisaldab sektsiooni füüsilist aadressi mälus, suurust ja muid andmeid, nagu juurdepääsukaitse bitid ja olek.
Mis on Vahetamine?
Vahetamine on meetod, mille puhul tuleks protsess vahetada ajutiselt põhimälust tagavarasalve. Hiljem tuuakse see täitmise jätkamiseks mällu tagasi.
Tagavarasalv on kõvaketas või mõni muu sekundaarne salvestusseade, mis peaks olema piisavalt suur, et mahutada kõigi kasutajate jaoks kõigi mälupiltide koopiaid. Samuti on see võimeline pakkuma otsest juurdepääsu nendele mälupiltidele.
Vahetamise eelised
Siin on vahetamise peamised eelised/plussid:
- See pakub suuremat multiprogrammeerimist.
- Võimaldab dünaamilist ümberpaigutamist. Näiteks kui kasutatakse aadresside sidumist täitmise ajal, saab protsesse erinevates kohtades vahetada. Muul juhul tuleks kompileerimise ja laadimisaja sidumise korral protsessid viia samasse kohta.
- See aitab mälu paremini ära kasutada.
- Minimaalne protsessori aja raiskamine valmimisel, nii et seda saab jõudluse parandamiseks hõlpsasti rakendada prioriteedipõhisele ajastamismeetodile.
Mis on mälu eraldamine?
Mälu eraldamine on protsess, mille käigus arvutiprogrammidele määratakse mälu või ruum.
Siin on põhimälu jagatud kahte tüüpi partitsioonideks
- Vähe mälu - Operaasjade süsteem asub seda tüüpi mälus.
- Kõrge mälu– Kasutajaprotsesse hoitakse kõrges mälus.
Sektsioonide eraldamine
Mälu on jagatud erinevateks plokkideks või partitsioonideks. Iga protsess jaotatakse vastavalt vajadusele. Partitsioonide eraldamine on ideaalne meetod sisemise killustumise vältimiseks.
Allpool on toodud erinevad partitsioonide eraldamise skeemid:
- Esimene sobivus: Seda tüüpi sobitumisel eraldatakse partitsioon, mis on põhimälu algusest esimene piisav plokk.
- Parim sobivus: See eraldab protsessi partitsioonile, mis on vabade partitsioonide seas esimene väikseim partitsioon.
- Halvim sobivus: See määrab protsessi partitsioon, mis on põhimälus suurim piisavalt vabalt saadaolev partitsioon.
- Järgmine sobivus: Enamasti sarnaneb see esimese Fitiga, kuid see Fit otsib viimasest jaotuspunktist esimest piisavat partitsiooni.
Mis on piipar?
Lehekülg on salvestusmehhanism, mis võimaldab OS-il protsesse teisesest mälust lehtede kujul põhimällu tuua. Lehitsemismeetodi puhul jagatakse põhimälu väikesteks fikseeritud suurusega füüsilise mälu plokkideks, mida nimetatakse kaadriteks. Põhimälu maksimaalseks ärakasutamiseks ja välise killustumise vältimiseks tuleks raami suurus jätta samaks kui lehekülje oma. Piipar kasutatakse andmetele kiiremaks juurdepääsuks ja see on loogiline kontseptsioon.
Mis on killustatus?
Protsessid salvestatakse ja eemaldatakse mälust, mis loob vaba mäluruumi, mis on teiste protsesside jaoks kasutamiseks liiga väike.
Mõnikord nimetatakse neid protsesse, mida ei saa mäluplokkidele jaotada, kuna selle väiksus ja mäluplokid jäävad alati kasutamata, killustatuks. Seda tüüpi probleem ilmneb dünaamilise mälujaotuse süsteemi ajal, kui vabad plokid on üsna väikesed, nii et see ei suuda ühtegi taotlust täita.
Fragmenteerimismeetodid on kahte tüüpi:
- Väline killustatus
- Sisemine killustatus
- Välist killustumist saab vähendada mälu sisu ümberkorraldamisega, et paigutada kogu vaba mälu ühte plokki.
- Sisemist killustatust saab vähendada, määrates väikseima partitsiooni, mis on siiski piisavalt hea kogu protsessi läbiviimiseks.
Mis on segmenteerimine?
Segmenteerimismeetod toimib peaaegu sarnaselt lehitsemisele. Ainus erinevus nende kahe vahel on see, et segmendid on muutuva pikkusega, samas kui lehekülgedel on lehed alati fikseeritud suurusega.
Programmi segment sisaldab programmi põhifunktsiooni, andmestruktuure, utiliidi funktsioone jne. OS haldab kõigi protsesside jaoks segmendikaardi tabelit. See sisaldab ka vabade mäluplokkide loendit koos nende suuruse, segmentide numbrite ja mälukohtadega põhimälus või virtuaalmälu.
Mis on dünaamiline laadimine?
Dünaamiline laadimine on programmi rutiin, mida ei laadita enne, kui programm seda kutsub. Kõik rutiinid peaksid olema kettal ümberpaigutatavas laadimisvormingus. Põhiprogramm laaditakse mällu ja käivitatakse. Dünaamiline laadimine tagab ka parema mäluruumi kasutamise.
Mis on dünaamiline linkimine?
Linkimine on meetod, mis aitab OS-il koguda ja liita erinevaid koodi- ja andmemooduleid üheks täitmisfailiks. Faili saab mällu laadida ja käivitada. OS võib linkida süsteemitasemel teeke programmiga, mis ühendab laadimisajal teegid. Dünaamilise linkimise meetodi puhul lingitakse teegid täitmise ajal, nii et programmi koodi suurus võib jääda väikeseks.
Staatilise ja dünaamilise laadimise erinevus
Staatiline laadimine | Dünaamiline laadimine |
---|---|
Staatilist laadimist kasutatakse siis, kui soovite oma programmi staatiliselt laadida. Seejärel lingitakse ja kompileeritakse kogu programm koostamise ajal, ilma et oleks vaja välist moodulit või programmi sõltuvust. | Dünaamiliselt laaditud programmis esitatakse viited ja laadimine toimub täitmise ajal. |
Laadimise ajal laaditakse kogu programm mällu ja alustab selle täitmist. | Teegi rutiinid laaditakse mällu ainult siis, kui need on programmis vajalikud. |
Staatilise ja dünaamilise linkimise erinevus
Siin on peamised erinevused staatilise ja dünaamilise linkimise vahel.
Staatiline linkimine | Dünaamiline linkimine |
---|---|
Staatilist linkimist kasutatakse kõigi teiste programmi jaoks vajalike moodulite ühendamiseks üheks käivitatavaks koodiks. See aitab OS-il vältida mis tahes käitusajast sõltuvust. | Kui kasutatakse dünaamilist linkimist, ei pea see tegelikku moodulit või teeki programmiga siduma. Selle asemel kasutage viidet koostamise ja linkimise ajal pakutavale dünaamilisele moodulile. |
kokkuvõte
- Mäluhaldus on arvutimälu juhtimise ja koordineerimise protsess, mille käigus määratakse erinevatele töötavatele programmidele osad, mida nimetatakse plokkideks, et optimeerida süsteemi üldist jõudlust.
- See võimaldab teil kontrollida, kui palju mälu tuleb eraldada protsessidele, mis otsustavad, milline protsessor peaks mis ajal mälu saama.
- Ühes külgnevas jaotamises on ühe rakenduse jaoks saadaval kõik arvuti mälutüübid, välja arvatud väike osa, mis on reserveeritud OS-i jaoks
- Partitsioneeritud jaotamise meetod jagab esmase mälu erinevateks mälusektsioonideks, mis on enamasti külgnevad mälupiirkonnad
- Paged Memory Management meetod jagab arvuti põhimälu fikseeritud suurusega ühikuteks, mida nimetatakse leheraamideks
- Segmentmälu on ainus mäluhaldusmeetod, mis ei paku kasutaja programmile lineaarset ja külgnevat aadressiruumi.
- Vahetamine on meetod, mille puhul tuleks protsess vahetada ajutiselt põhimälust tagavarasalve. Hiljem tuuakse see täitmise jätkamiseks mällu tagasi.
- Mälu eraldamine on protsess, mille käigus arvutiprogrammidele määratakse mälu või ruum.
- Lehekülg on salvestusmehhanism, mis võimaldab OS-il protsesse teisesest mälust lehtede kujul põhimällu tuua.
- Killustumine viitab ketta seisundile, kus failid on jagatud ketta ümber hajutatud tükkideks.
- Segmenteerimismeetod toimib peaaegu sarnaselt lehitsemisele. Ainus erinevus nende kahe vahel on see, et segmendid on muutuva pikkusega, samas kui lehekülgedel on lehed alati fikseeritud suurusega.
- Dünaamiline laadimine on programmi rutiin, mida ei laadita enne, kui programm seda kutsub.
- Linkimine on meetod, mis aitab OS-il koguda ja liita erinevaid koodi- ja andmemooduleid üheks täitmisfailiks.