Operačná pamäť
Operačná pamäť je volatilný vnútorná elektronická pamäť počítača typu RWM-RAM, určená pre dočasné uloženie dát a spusteného programového kódu. Táto pamäť má zvyčajne rýchlejší prístup ako vonkajšiu pamäť (pevný disk). Túto pamäť môže procesor adresovať priamo, pomocou podpory vo svojej inštrukčnej sieti. Strojové inštrukcie sú adresované pomocou inštrukčného ukazovatele a dátam sa zvyčajne pristupuje pomocou adresácie prvku pamäti hodnotou uloženú v registri procesora alebo je adresa dát súčasťou strojovej inštrukcie.
Operačná pamäť je spojená s procesorom pomocou zbernice, zvyčajne sa medzi procesor a operačná pamäť vkladá rýchla vyrovnávacia pamäť typu cache, čiže pamäť, ktorá je priamo prístupná procesoru. Operačná pamäť je určená pre uchovávanie kódu programov respektíve procesov spolu s medzivýsledky a výsledky ich činnosti. Je operačný pamäť reprezentovaná pamätí s priamym prístupom, označujeme adresný priestor ako fyzický adresový priestor (FAP). Veľkosť tohto priestoru je obmedzená buď fyzickou veľkosťou pamäťových modulov, alebo veľkosťou adresy.
Úlohy správy FAP
- prideľovanie a uvoľňovanie pamäťových regiónov na požiadanie procesov
- udržiavanie informácií o obsadenie adresového priestoru
- zabezpečenie ochrany pamäti - zabránenie prístupu procesu k pamäti mimo jeho pridelený región
- u viac úlohových systémov musí podporovať striedavý beh viacerých procesov či v minimálnom prípade mu nesmie brániť
Metódy riadenia FAP
Monolitická pamäť - najjednoduchšie spravovanie operačnej pamäte. FAP je tu rozdelený na dva bloky, na dve súvislé časti, ktoré sú určené počiatočné adresou. Prvý blok je pridelený rutinám jadra operačného systému a jeho dátovým štruktúram. Druhý je potom prideľovaný na požiadanie ostatným procesom. Pamäť jadra zdieľa všetky procesy, pretože rutiny jadra vrátane jeho dátových štruktúr sú využívané všetkými procesmi pri vykonávaní služieb operačného systému. Pamäť procesov je súkromného charakteru, teda prístup k nej má iba vlastník. Regulácia je vykonávaná veľmi triviálne. Je Ak je pamäť voľná je pridelená procesu celá bez ohľadu na požadovanú veľkosť, pričom nesmie presiahnuť veľkosť bloku. V prípade obsadenej pamäti iným procesom je požiadavka na pridelenie odmietnutý. Toto zamietnutie môže mať fatálne dôsledky pre proces žiadajúci o pamäť. K pridelenie pamäti vlastne dochádza len pri spustení procesu a proces ju využíva po celú dobu svojho životného cyklu. K uvoľneniu dôjde po ukončení života procesu.
Statické bloky - Jedná sa o jedno z možných riešení nedostatočného využiť aplikačnej pamäte. Aplikačná pamäť je rozdelená na niekoľko samostatných blokov, ktoré možno alokovať samostatne. Teda ak nepočítame procesy odložené do sekundárnej pamäti, maximálny počet procesov je obmedzený počtom blokov. Jeden proces môže zaberať aj viac nesúvislých blokov. Ide o bloky pevnej veľkosti, ktorých veľkosť býva vzájomne rozdielna a počet s veľkosťou sa stanovujú pri preklade operačného systému. Veľkosť s počtom blokov vychádzajú z druhu aplikácií, ktoré majú byť na danom operačnom systéme prevádzkované. Stratégia prideľovanie blokov je založená na rovnakom princípe u čisto monolitické pamäte s rozdielom, že žiadajúcemu procesu o pridelenie pamäte je pridelený blok o najmenšej veľkosti o dostatočnej veľkosti. Informácie o obsadenie blokov sú udržiavané poli o stanovenej veľkosti. Keďže je aplikačná pamäť rozdelená na už spomínané bloky, je nutné zaisti ich ochranu. Na túto ochranu sa používa limitný register procesora. V limitným registra procesora je uložená hodnota aktuálneho pamäťového regiónu. Hodnota lokálnej adresy sa porovnáva s hodnotou limitného registra. Ak je táto hodnota väčšia, nasleduje vyvolanie výnimky - proces sa pokúša zapísať mimo regiónu.
Adresový priestor procesu sa väčšinou skladá z troch regiónov: kódového, dátového a zásobníkového. Kódový región väčšinou obsahuje kód programu. Dátový región nesie statické dáta programu. Vyžaduje tak zápis, tak čítanie av niektorých systémoch môže zmeniť svoju veľkosť. Zásobníkový región je charakteru LIFO a sú tu obsiahnuté lokálne dátové premenné a návratové adresy funkcií. S týmito stratégiami založenými na statických blokoch sa možno stretnúť na úrovni správy pamäte jadra. Keďže možno požiadavky rutín jadra odhadnúť vrátane ich postupnosti.