Přístup procesů do paměti
Z MiS
(Rozdíly mezi verzemi)
(Vytvoření stránky) |
(Dodán popis obecný) |
||
Řádka 1: | Řádka 1: | ||
− | [[Category:VSE]][[Category:Informatika]][[Category:Stránky s obrázky]] | + | [[Category:VSE]][[Category:Informatika]][[Category:Procesy]][[Category:Stránky s obrázky]] |
+ | |||
+ | == Pravidla == | ||
+ | * Proces není ovlivněn činností jiných procesů. | ||
+ | * Programátor při psaní kódu neřeší, kolik a jakých procesů v paměti bude. | ||
+ | * Každý proces funguje tak, jako by byl v počítači sám. | ||
+ | |||
+ | == Přístup procesů do paměti == | ||
+ | * Při [[Plánování procesů | přepínání procesů]] se hodnota registrů procesoru aktualizuje tak, aby měl každý proces svou hodnotu registrů. | ||
+ | * Obsah operační paměti ale celý přepnout nelze (příliš velká kapacita, pomalý pevný disk). Procesy se tedy do paměti fyzicky musí vlézt všechny. | ||
+ | |||
+ | == Přístup procesu do paměti == | ||
+ | |||
<div class="NaStred">[[Image:pristup_procesu_do_pameti.png]]</div> | <div class="NaStred">[[Image:pristup_procesu_do_pameti.png]]</div> | ||
+ | |||
+ | ; Řešení | ||
+ | * Každý proces se chová, jako by měl svou virtuální paměť jen pro sebe (množství je pro daný operační systém pevně dané, programátor se tedy o množství paměti nestará). | ||
+ | * Každý požadavek na přístup do paměti neřeší přímo proces, ale využívá služeb operačního systému. | ||
+ | |||
+ | ; Postup při alokaci paměti | ||
+ | * Proces zažádá operační systém o přidělení paměti. | ||
+ | * Operační systém si uloží informaci: | ||
+ | ** který proces žádal (PID) | ||
+ | ** jakou adresu (VPFN) ve '''své''' virtuální paměti chce obsadit, | ||
+ | ** kam data skutečně ukládá ve fyzické paměti (PFN). | ||
+ | |||
+ | ; Postup při čtení/zápisu z/do paměti | ||
+ | * Proces vyžádá od operačního systému zadanou adresu (VPFN). | ||
+ | * Operační systém dohledá v tabulce odpovídající PFN a vyzvedne data. | ||
+ | |||
+ | ; Co když se data do (fyzické) paměti nevlezou? | ||
+ | * V takovém případě je třeba data odložit na pevný disk — ([[Swappování | swappování]]). |
Verze z 10. 10. 2013, 09:35
Pravidla
- Proces není ovlivněn činností jiných procesů.
- Programátor při psaní kódu neřeší, kolik a jakých procesů v paměti bude.
- Každý proces funguje tak, jako by byl v počítači sám.
Přístup procesů do paměti
- Při přepínání procesů se hodnota registrů procesoru aktualizuje tak, aby měl každý proces svou hodnotu registrů.
- Obsah operační paměti ale celý přepnout nelze (příliš velká kapacita, pomalý pevný disk). Procesy se tedy do paměti fyzicky musí vlézt všechny.
Přístup procesu do paměti
- Řešení
- Každý proces se chová, jako by měl svou virtuální paměť jen pro sebe (množství je pro daný operační systém pevně dané, programátor se tedy o množství paměti nestará).
- Každý požadavek na přístup do paměti neřeší přímo proces, ale využívá služeb operačního systému.
- Postup při alokaci paměti
- Proces zažádá operační systém o přidělení paměti.
- Operační systém si uloží informaci:
- který proces žádal (PID)
- jakou adresu (VPFN) ve své virtuální paměti chce obsadit,
- kam data skutečně ukládá ve fyzické paměti (PFN).
- Postup při čtení/zápisu z/do paměti
- Proces vyžádá od operačního systému zadanou adresu (VPFN).
- Operační systém dohledá v tabulce odpovídající PFN a vyzvedne data.
- Co když se data do (fyzické) paměti nevlezou?
- V takovém případě je třeba data odložit na pevný disk — ( swappování).