Správa paměti: Porovnání verzí

Smazaný obsah Přidaný obsah
Robot: Opravuji 1 zdrojů a označuji 0 zdrojů jako nefunkční) #IABot (v2.0.9.2
Oprava části "Přidělování veškeré volné paměti"
Řádek 45:
 
=== Rozdělení paměti ===
Při přidělování veškeré volné paměti<ref name="kolar" /> část paměti zabírá jádro operačního systému (kód a datové struktury) a zbytek je k dispozici pro uživatelský program. K&nbsp;přidělení paměti dochází jen při spuštění programu a vzniklý proces ji využívá po celou dobu svého životního cyklu. K&nbsp;uvolnění dojde po ukončení procesu.
Při přidělování veškeré volné paměti<ref name="kolar" /> je paměť rozdělena na dva bloky tj. na dvě souvislé části jež jsou určeny počáteční adresou. První blok je přidělen rutinám jádra operačního systému a jeho datovým strukturám – tzv. paměť jádra z&nbsp;anglického ''Kernel memory''. Druhý je pak přidělován na požádání ostatním procesům – tzv. aplikační paměť z&nbsp;anglického ''Application memory''. Paměť jádra sdílí všechny procesy, protože rutiny jádra včetně jeho datových struktur jsou využívány veškerými procesy při vykonávání služeb operačního systému. Aplikační paměť je soukromého charakteru, tedy přístup k&nbsp;ní má pouze vlastník.
 
=== Princip činnosti ===
Je-li paměť volná tzn. není-li alokována je přidělena procesu celá bez ohledu na požadovanou velikost, přičemž nesmí přesáhnout velikost bloku. V&nbsp;případě obsazené paměti jiným procesem je požadavek na přidělení odmítnut. Toto zamítnutí může mít fatální důsledky pro proces žádající o paměť. K&nbsp;alokování paměti vlastně dochází jen při spuštění procesu a proces ji využívá po celou dobu svého životního cyklu. K&nbsp;uvolnění dojde po ukončení života procesu.
 
=== Ochrana paměti ===
Ochrana paměti u tohoto typu operačních systémů je zdeobvykle realizovánaomezena pouzena v&nbsp;případězabránění, aby uživatelský program zapisoval do paměti používané operačním systémem. Přidělování veškeré volné paměti se však obvykle používalo na procesorech, které prostředky ochrany paměti jádranedisponovaly vůbec nebo jen velmi omezenými. Ochrana paměti může být realizována pomocí tzvdvou mezních registrů vymezujících interval adres, kam může uživatelský program zapisovat. bázovéhoPokud se pokusí zapsat mimo tento interval, zápis se neprovede, OS zpravidla signalizuje chybu a často provádění programu ukončí. Zjednodušením může být použití jednoho mezního registru, kdy program může zapisovat od adresy v registru do konce adresního prostoru nebo od začátku adresního prostoru do adresy v registru. V&nbsp;praxi jdeprvním případě může být mezní registr kombinován s bázovým registrem. Jde o znemožnění použití nižších adres než je báze. V&nbsp;registru je uložena báze bloku aplikační paměti a paměť jádra leží tedy před tímto blokem. Proces tedy paměť jádra ani nemůže adresovat paměť jádra. Registr se nastavuje pomocí privilegované instrukce, která se může volatprovést pouze v&nbsp;režimu jádra.
 
=== Využití ===
Zcela nouzově je tato metoda správy paměti použitelná i pro víceúlohový systém tak, že při přepínání kontextu se paměťové regiony programů přesunují do sekundární neboli odkládací paměti, např. na pevný disk. I při malém rozsahu paměti je však odložení paměti jednoho procesu a obnovení obsahu paměti druhého procesu z&nbsp;pevného disku dost pomalé a těžko si lze představit, že by umožňovalo uspokojivou interaktivní práci více uživatelů současně. Částečně se tento postup používá při návratu do interpretu příkazů po ukončení programu.
Tato strategie správy paměti se jeden čas používala ve více úlohových systémech. Kdy byl tento princip jediného bloku v&nbsp;paměti rozšířen o možnost odkládání paměťového regionu do sekundární neboli odkládací paměti, např. pevný disk. Avšak obnova procesu z&nbsp;pevného disku je velice pomalá a proto je tato strategie v&nbsp;dnešních systémech téměř nepoužitelná. Jak je asi pochopitelné vzniká zde problém s&nbsp;nedostatečným využitím aplikační paměti. V&nbsp;praxi to znamená, že proces s&nbsp;malou velikostí zabere celou aplikační paměť.
 
* operační paměť ISIS-2
** nejdříve OS, pak proměnné a buffery a pak [[Počítačový program|program]] – při změně velikosti OS nebo počtu bufferů se musí programy přizpůsobit, aby mohly pracovat na jiných adresách – to provádí program nazývaný locator
* operační paměť [[CP/M]]
** prvních 100h pro OS, pak paměť pro program a pak proměnné a buffery – výhoda je, že paměťový prostor programu začíná vždy na stejné adrese
 
== Přidělování bloků paměti pevné velikosti [statická aplikační paměť] (Stránkování) ==