logo

Upravljanje pomnilnika v operacijskem sistemu (OS)

V tem članku bomo podrobno razumeli upravljanje pomnilnika.

Kaj mislite z upravljanjem pomnilnika?

Pomnilnik je pomemben del računalnika, ki se uporablja za shranjevanje podatkov. Njegovo upravljanje je ključnega pomena za računalniški sistem, saj je količina glavnega pomnilnika, ki je na voljo v računalniškem sistemu, zelo omejena. V vsakem trenutku se zanj potegujejo številni procesi. Poleg tega se za povečanje zmogljivosti hkrati izvaja več procesov. Za to moramo v glavnem pomnilniku hraniti več procesov, zato je še kako pomembno, da jih učinkovito upravljamo.

Upravljanje pomnilnika

Vloga upravljanja pomnilnika

Sledijo pomembne vloge upravljanja pomnilnika v računalniškem sistemu:

  • Upravljalnik pomnilnika se uporablja za sledenje statusu pomnilniških lokacij, ne glede na to, ali so proste ali dodeljene. Naslavlja primarni pomnilnik z zagotavljanjem abstrakcij, tako da programska oprema zazna, da ji je dodeljen velik pomnilnik.
  • Upravljalnik pomnilnika dovoljuje računalnikom z majhno količino glavnega pomnilnika izvajanje programov, večjih od velikosti ali količine razpoložljivega pomnilnika. To počne s premikanjem informacij naprej in nazaj med primarnim in sekundarnim pomnilnikom z uporabo koncepta zamenjave.
  • Upravitelj pomnilnika je odgovoren za zaščito pomnilnika, dodeljenega posameznemu procesu, pred poškodbami drugega procesa. Če to ni zagotovljeno, lahko sistem kaže nepredvidljivo vedenje.
  • Upravljalniki pomnilnika morajo omogočati deljenje pomnilniškega prostora med procesi. Tako lahko dva programa prebivata na isti pomnilniški lokaciji, čeprav ob različnih časih.

Tehnike upravljanja pomnilnika:

Tehnike upravljanja pomnilnika lahko razvrstimo v naslednje glavne kategorije:

  • Sheme upravljanja neprekinjenega pomnilnika
  • Sheme upravljanja nesosednjega pomnilnika
Upravljanje pomnilnika

Sheme upravljanja neprekinjenega pomnilnika:

V shemi neprekinjenega upravljanja pomnilnika vsak program zaseda en sam sosednji blok lokacij za shranjevanje, tj. niz lokacij pomnilnika z zaporednimi naslovi.

Sheme za upravljanje posameznega neprekinjenega pomnilnika:

Shema upravljanja enojnega neprekinjenega pomnilnika je najpreprostejša shema upravljanja pomnilnika, ki se uporablja v najzgodnejši generaciji računalniških sistemov. V tej shemi je glavni pomnilnik razdeljen na dve sosednji področji ali particiji. Operacijski sistemi se stalno nahajajo v eni particiji, običajno v spodnjem pomnilniku, uporabniški proces pa se naloži v drugo particijo.

Prednosti shem za upravljanje enojnega neprekinjenega pomnilnika:

  • Enostaven za izvedbo.
  • Enostaven za upravljanje in oblikovanje.
  • V shemi upravljanja z enim neprekinjenim pomnilnikom, ko je proces naložen, dobi polni čas procesorja in noben drug procesor ga ne bo prekinil.

Slabosti enojnih sosednjih shem upravljanja pomnilnika:

  • Potrata pomnilniškega prostora zaradi neuporabljenega pomnilnika, saj proces verjetno ne bo porabil vsega razpoložljivega pomnilniškega prostora.
  • CPE ostane nedejaven in čaka, da disk naloži binarno sliko v glavni pomnilnik.
  • Ni ga mogoče izvesti, če je program prevelik, da bi se prilegal celotnemu razpoložljivemu glavnemu pomnilniškemu prostoru.
  • Ne podpira multiprogramiranja, kar pomeni, da ne more obravnavati več programov hkrati.

Več particij:

Enotna shema upravljanja neprekinjenega pomnilnika je neučinkovita, saj omejuje računalnike na izvajanje samo enega programa naenkrat, kar povzroči izgubo pomnilniškega prostora in časa procesorja. Težavo neučinkovite uporabe procesorja je mogoče premagati z večprogramiranjem, ki omogoča sočasno izvajanje več kot enega programa. Za preklapljanje med dvema procesoma morata operacijska sistema naložiti oba procesa v glavni pomnilnik. Operacijski sistem mora razpoložljivi glavni pomnilnik razdeliti na več delov, da v glavni pomnilnik naloži več procesov. Tako se lahko v glavnem pomnilniku hkrati nahaja več procesov.

Sheme več particij so lahko dveh vrst:

  • Fiksno particioniranje
  • Dinamično particioniranje

Fiksno particioniranje

Glavni pomnilnik je razdeljen na več particij fiksne velikosti v shemi upravljanja pomnilnika fiksne particije ali statične particije. Te predelne stene so lahko enake velikosti ali različnih velikosti. Vsaka particija lahko vsebuje en sam proces. Število particij določa stopnjo multiprogramiranja, to je največje število procesov v pomnilniku. Te particije so narejene v času generiranja sistema in po tem ostanejo fiksne.

Prednosti shem upravljanja pomnilnika s fiksno particijo:

  • Enostaven za izvedbo.
  • Enostaven za upravljanje in oblikovanje.

Slabosti shem upravljanja pomnilnika s fiksno particijo:

  • Ta shema trpi zaradi notranje razdrobljenosti.
  • Število particij je določeno v času generiranja sistema.

Dinamično particioniranje

Dinamično particioniranje je bilo zasnovano za premagovanje težav s fiksno particionno shemo. V shemi dinamičnega particioniranja vsak proces zasede le toliko pomnilnika, kot ga potrebuje, ko se naloži za obdelavo. Zahtevanim procesom se dodeljuje pomnilnik, dokler ni izčrpan celoten fizični pomnilnik ali pa preostali prostor ni dovolj za zadrževanje zahtevanega procesa. V tej shemi so uporabljene particije spremenljive velikosti in število particij ni definirano v času generiranja sistema.

Prednosti shem upravljanja pomnilnika z dinamičnim particioniranjem:

  • Enostaven za izvedbo.
  • Enostaven za upravljanje in oblikovanje.

Slabosti shem upravljanja pomnilnika z dinamičnim particioniranjem:

abeceda v številko
  • Ta shema trpi tudi zaradi notranje razdrobljenosti.
  • Število particij je določeno ob segmentaciji sistema.

Sheme upravljanja nesosednjega pomnilnika:

V shemi upravljanja nesosednjega pomnilnika je program razdeljen na različne bloke in naložen v različne dele pomnilnika, za katere ni nujno, da mejijo drug na drugega. To shemo je mogoče razvrstiti glede na velikost blokov in glede na to, ali so bloki v glavnem pomnilniku ali ne.

Kaj je ostranjevanje?

Ostranjevanje je tehnika, ki odpravi zahteve po neprekinjenem dodeljevanju glavnega pomnilnika. Pri tem je glavni pomnilnik razdeljen na bloke fizičnega pomnilnika s fiksno velikostjo, imenovane okvirji. Velikost okvirja mora biti enaka velikosti strani, da se poveča glavni pomnilnik in prepreči zunanja fragmentacija.

Prednosti straničenja:

  • Strani zmanjšajo zunanjo razdrobljenost.
  • Enostaven za izvedbo.
  • Učinkovit pomnilnik.
  • Zaradi enake velikosti okvirjev postane menjava zelo enostavna.
  • Uporablja se za hitrejši dostop do podatkov.

Kaj je segmentacija?

Segmentacija je tehnika, ki odpravlja zahteve po neprekinjenem dodeljevanju glavnega pomnilnika. Pri tem je glavni pomnilnik razdeljen na bloke fizičnega pomnilnika spremenljive velikosti, imenovane segmenti. Temelji na tem, kako programer strukturira svoje programe. S segmentirano dodelitvijo pomnilnika je vsako opravilo razdeljeno na več segmentov različnih velikosti, enega za vsak modul. Primeri takih modulov so funkcije, podprogrami, skladi, nizi itd.