Mäluhaldus operatsioonisüsteemis: külgnev, vahetusmäluping, Killustatus
⚡ Nutikas kokkuvõte
Mäluhaldus on operatsioonisüsteemi protsess, mis kontrollib ja koordineerib arvuti mälu, määrates töötavatele programmidele plokke jõudluse optimeerimiseks. See tracks iga mälupesa, liigutab protsesse põhimälu ja ketta vahel ning kaitseb protsesse üksteise eest.

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 põhimälu. See aitab protsessidel põhimälu ja täitmisketta vahel edasi-tagasi liikuda. See aitab operatsioonisüsteemil säilitada track iga mälupesa kohta, olenemata sellest, kas see on eraldatud mõnele protsessile või jääb vabaks.
Miks kasutada mäluhaldust?
Mäluhalduse kasutamise põhjused on järgmised:
- See võimaldab teil kontrollida, kui palju mälu tuleb eraldada protsessidele, mis otsustavad, milline protsessor peaks mis ajal mälu saama.
- Tracks iga kord, kui laoseis vabaneb või jaotamata jääb, ja uuendab vastavalt olekut.
- See eraldab ruumi rakendusrutiinidele.
- Samuti tagab see, et need rakendused üksteist ei sega.
- 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älu haldamise tehnikad:
Üks külgnev jaotus
See on lihtsaim mäluhalduse tehnika. Selle meetodi puhul on igat tüüpi arvuti mälu, välja arvatud väike osa, mis on reserveeritud operatsioonisüsteemile, saadaval ühe rakenduse jaoks. Näiteks MS-DOS operatsioonisüsteem eraldab mälu sel viisil. Manussüsteem töötab samuti ühe rakenduse peal.
Partitsioneeritud jaotus
See jagab primaarmälu erinevateks mälupartitsioonideks, mis on enamasti külgnevad mälupiirkonnad. Iga partitsioon salvestab kogu konkreetse ülesande või töö kohta käiva teabe. See meetod seisneb partitsiooni eraldamises tööle selle käivitamisel ja selle vabastamises selle lõppemisel.
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 vahetusprogrammping?
Vahetamaping on meetod, mille puhul protsess tuleks ajutiselt põhimälust tugisalvestusse vahetada. Hiljem tuuakse see edasiseks täitmiseks tagasi mällu.
Varusalvestusseade on kõvaketas või mõni muu teisene salvestusseade, mis peaks olema piisavalt suur, et mahutada kõigi kasutajate kõigi mälukujutiste koopiaid. See peab pakkuma ka otsest juurdepääsu nendele mälukujutistele.
Vahetuse eelisedping
Siin on vahetuse peamised eelised/plussidping:
- See pakub suuremat multiprogrammeerimist.
- Võimaldab dünaamilist ümberpaigutamist. Näiteks kui kasutatakse aadressi sidumist täitmisajal, saab protsesse vahetada erinevatesse asukohtadesse. Vastasel juhul tuleks kompileerimise ja laadimise ajal sidumise korral protsessid samasse asukohta teisaldada.
- See aitab mälu paremini ära kasutada.
- Minimaalne protsessori aja raiskamine valmimisel, seega saab seda hõlpsalt rakendada prioriteedipõhisele ajastamismeetodile selle jõudluse parandamiseks.
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 jaotamise skeemid:
- Esimene sobivus: Seda tüüpi sobituse korral eraldatakse partitsioon, mis on põhimälu algusest peale esimene piisav plokk.
- Parim sobivus: See eraldab protsessi partitsioonile, mis on vabade partitsioonide seast piisava väikseim.
- Halvim sobivus: See eraldab protsessi partitsioonile, mis on põhimälus piisavalt suur vabalt saadaolev partitsioon.
- Järgmine sobivus: See sarnaneb enamasti esimese sobitusega (First Fit), kuid see sobitus otsib esimest piisavat partitsiooni viimasest eraldamispunktist.
Mis on piipar?
Leheküljendus on salvestusmehhanism, mis võimaldab operatsioonisüsteemil protsesse teisesest salvestusruumist põhimällu lehtede kujul hankida. Leheküljendusmeetodi puhul jagatakse põhimälu väikesteks fikseeritud suurusega füüsilise mälu plokkideks, mida nimetatakse kaadriteks. Kaadri suurus peaks olema sama mis lehe suurus, et põhimälu maksimaalselt ära kasutada ja vältida välist fragmentatsiooni. Piipar kasutatakse andmetele kiiremaks juurdepääsuks ja see on loogiline kontseptsioon.
Mis on killustatus?
Protsessid salvestatakse mällu ja eemaldatakse sealt, mis loob vabu mäluruume, mis on teiste protsesside jaoks liiga väikesed.
Mõne aja pärast ei ole neid protsesse enam võimalik mäluplokkidele eraldada nende väikese suuruse tõttu ja mäluplokid jäävad alati kasutamata. Seda nimetatakse fragmentatsiooniks. Seda tüüpi probleem tekib dünaamilise mälujaotuse süsteemis, kui vabad plokid on üsna väikesed, mistõttu nad ei suuda ühtegi päringut 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 lehekülgimise meetodiga. Ainus erinevus nende kahe vahel on see, et segmendid on muutuva pikkusega, samas kui lehekülgimise meetodis 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älumahu kasutamise.
Mis on dünaamiline linkimine?
Linkimine on meetod, mis aitab operatsioonisüsteemil koguda ja ühendada erinevaid koodi- ja andmemooduleid ühte käivitatavasse faili. Faili saab laadida mällu ja käivitada. Operatsioonisüsteem saab süsteemitasemel teeke linkida programmiks, mis ühendab teegid laadimise ajal. Dünaamilise linkimise meetodi puhul lingitakse teegid käivitamise ajal, seega võib programmikoodi suurus 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 kompileerimise ajal ilma väliste moodulite või programmisõltuvusteta. | Dünaamiliselt laaditud programmis antakse viited ja laadimine toimub käivitamise 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 |
|---|---|
| Staatilisi linke kasutatakse kõigi teiste programmi jaoks vajalike moodulite ühendamiseks üheks käivitatavaks koodiks. See aitab operatsioonisüsteemil vältida igasugust käitusaegset sõltuvust. | Dünaamilise linkimise korral ei pea see moodulit või teeki programmiga linkima. Selle asemel kasutatakse viidet dünaamilisele moodulile, mis esitati kompileerimise ja linkimise ajal. |

