logo

Správa pamäte v operačnom systéme (OS)

V tomto článku podrobne porozumieme správe pamäte.

Čo myslíš pod správou pamäte?

Pamäť je dôležitou súčasťou počítača, ktorá sa používa na ukladanie údajov. Jeho správa je pre počítačový systém rozhodujúca, pretože množstvo hlavnej pamäte dostupnej v počítačovom systéme je veľmi obmedzené. V každom čase o ňu súperí mnohé procesy. Okrem toho sa na zvýšenie výkonu vykonáva niekoľko procesov súčasne. Na to musíme mať v hlavnej pamäti niekoľko procesov, takže je ešte dôležitejšie ich efektívne riadiť.

Správa pamäte

Úloha správy pamäte

Nasledujú dôležité úlohy správy pamäte v počítačovom systéme:

  • Správca pamäte slúži na sledovanie stavu pamäťových miest, či už je voľná alebo pridelená. Primárnu pamäť rieši poskytovaním abstrakcií, takže softvér vníma, že je mu pridelená veľká pamäť.
  • Správca pamäte umožňuje počítačom s malým množstvom hlavnej pamäte spúšťať programy väčšie ako veľkosť alebo množstvo dostupnej pamäte. Robí to presúvaním informácií tam a späť medzi primárnou pamäťou a sekundárnou pamäťou pomocou konceptu swapovania.
  • Správca pamäte je zodpovedný za ochranu pamäte pridelenej každému procesu pred poškodením iným procesom. Ak to nie je zabezpečené, systém môže vykazovať nepredvídateľné správanie.
  • Správcovia pamäte by mali umožniť zdieľanie pamäťového priestoru medzi procesmi. Dva programy sa teda môžu nachádzať na rovnakom mieste pamäte, hoci v rôznych časoch.

Techniky správy pamäte:

Techniky správy pamäte možno rozdeliť do nasledujúcich hlavných kategórií:

  • Schémy správy súvislej pamäte
  • Nespojité schémy správy pamäte
Správa pamäte

Schémy správy súvislej pamäte:

V schéme správy súvislej pamäte každý program zaberá jeden súvislý blok úložných miest, t.j. množinu pamäťových miest s po sebe idúcimi adresami.

Schémy správy jednej súvislej pamäte:

Schéma správy jednej súvislej pamäte je najjednoduchšia schéma správy pamäte používaná v najstaršej generácii počítačových systémov. V tejto schéme je hlavná pamäť rozdelená na dve súvislé oblasti alebo oddiely. Operačné systémy sú trvalo umiestnené v jednom oddiele, zvyčajne v nižšej pamäti, a užívateľský proces je načítaný do druhého oddielu.

zoznam náboženstiev

Výhody schém správy jednej súvislej pamäte:

  • Jednoduchá implementácia.
  • Jednoduché ovládanie a dizajn.
  • V schéme správy jednej súvislej pamäte, akonáhle je proces načítaný, dostane celý čas procesora a žiadny iný procesor ho nepreruší.

Nevýhody schém správy jednej súvislej pamäte:

  • Plytvanie pamäťovým priestorom v dôsledku nevyužitej pamäte, pretože proces pravdepodobne nevyužije všetok dostupný pamäťový priestor.
  • CPU zostáva nečinný a čaká, kým disk nahrá binárny obraz do hlavnej pamäte.
  • Nedá sa spustiť, ak je program príliš veľký na to, aby sa zmestil celý dostupný priestor hlavnej pamäte.
  • Nepodporuje multiprogramovanie, t.j. nedokáže spracovať viacero programov súčasne.

Viacnásobné rozdelenie:

Jediná schéma správy súvislej pamäte je neefektívna, pretože obmedzuje počítače na vykonávanie iba jedného programu naraz, čo vedie k plytvaniu pamäťovým priestorom a časom CPU. Problém neefektívneho využitia CPU možno prekonať použitím multiprogramovania, ktoré umožňuje súbežné spustenie viac ako jedného programu. Na prepínanie medzi dvoma procesmi musia operačné systémy načítať oba procesy do hlavnej pamäte. Operačný systém potrebuje rozdeliť dostupnú hlavnú pamäť na viacero častí, aby do hlavnej pamäte načítal viacero procesov. V hlavnej pamäti tak môže byť súčasne viacero procesov.

Viacnásobné schémy rozdelenia môžu byť dvoch typov:

  • Pevné rozdelenie
  • Dynamické rozdelenie

Pevné rozdelenie

Hlavná pamäť je rozdelená na niekoľko oddielov s pevnou veľkosťou v schéme správy pamäte s pevným oddielom alebo v statickom delení. Tieto priečky môžu mať rovnakú veľkosť alebo rôzne veľkosti. Každý oddiel môže obsahovať jeden proces. Počet partícií určuje stupeň multiprogramovania, t.j. maximálny počet procesov v pamäti. Tieto oddiely sú vytvorené v čase generovania systému a potom zostávajú pevné.

Výhody schém správy pamäte s pevným delením:

  • Jednoduchá implementácia.
  • Jednoduché ovládanie a dizajn.

Nevýhody schém správy pamäte s pevným delením:

  • Táto schéma trpí vnútornou fragmentáciou.
  • Počet oddielov je špecifikovaný v čase generovania systému.

Dynamické rozdelenie

Dynamické rozdelenie bolo navrhnuté tak, aby prekonalo problémy s pevnou schémou rozdelenia. V schéme dynamického rozdeľovania každý proces zaberá iba toľko pamäte, koľko potrebuje pri načítaní na spracovanie. Požadovaným procesom sa prideľuje pamäť, kým sa nevyčerpá celá fyzická pamäť alebo kým zostávajúci priestor nie je dostatočný na udržanie žiadajúceho procesu. V tejto schéme majú použité oddiely premenlivú veľkosť a počet oddielov nie je definovaný v čase generovania systému.

Výhody schém správy pamäte dynamického delenia:

algebra množín
  • Jednoduchá implementácia.
  • Jednoduché ovládanie a dizajn.

Nevýhody schém správy pamäte dynamického delenia:

  • Táto schéma tiež trpí vnútornou fragmentáciou.
  • Počet oddielov je špecifikovaný v čase segmentácie systému.

Nespojité schémy správy pamäte:

V schéme správy nespojitej pamäte je program rozdelený do rôznych blokov a načítaný v rôznych častiach pamäte, ktoré nemusia nevyhnutne susediť. Táto schéma môže byť klasifikovaná v závislosti od veľkosti blokov a od toho, či sa bloky nachádzajú v hlavnej pamäti alebo nie.

Čo je stránkovanie?

Stránkovanie je technika, ktorá eliminuje požiadavky na súvislú alokáciu hlavnej pamäte. V tomto je hlavná pamäť rozdelená na bloky fyzickej pamäte s pevnou veľkosťou nazývané rámce. Veľkosť rámca by mala byť rovnaká ako veľkosť stránky, aby sa maximalizovala hlavná pamäť a zabránilo sa externej fragmentácii.

Výhody stránkovania:

  • Stránky znižujú vonkajšiu fragmentáciu.
  • Jednoduchá implementácia.
  • Pamäťovo efektívne.
  • Vďaka rovnakej veľkosti rámov je výmena veľmi jednoduchá.
  • Používa sa na rýchlejší prístup k údajom.

Čo je segmentácia?

Segmentácia je technika, ktorá eliminuje požiadavky na súvislú alokáciu hlavnej pamäte. V tomto je hlavná pamäť rozdelená na bloky fyzickej pamäte s premenlivou veľkosťou nazývané segmenty. Je založená na spôsobe, akým programátor sleduje štruktúru svojich programov. Pri segmentovanom prideľovaní pamäte je každá úloha rozdelená na niekoľko segmentov rôznych veľkostí, jeden pre každý modul. Funkcie, podprogramy, zásobník, pole atď. sú príklady takýchto modulov.