Algoritmy nahrazování stránek paměti

Z FAV wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (kategorizace)
 
(Nejsou zobrazeny 2 mezilehlé verze od 1 uživatele.)
Řádka 1: Řádka 1:
−
 
 
== Relokace při zavedení do paměti ==
 
== Relokace při zavedení do paměti ==
  
Řádka 76: Řádka 75:
 
== Algoritmus Not-Recently-Used ==
 
== Algoritmus Not-Recently-Used ==
  
−
· Bit R - nastaven na 1 při čtení nebo zápisu do stránky
+
* Bit R - nastaven na 1 při čtení nebo zápisu do stránky
−
· Bit M - nastaven na 1 při zápisu do stránky; označuje, že se stránka má při vyhození zapsat na disk
+
* Bit M - nastaven na 1 při zápisu do stránky; označuje, že se stránka má při vyhození zapsat na disk
−
· Na začátku mají všechny stránky R=0, M=0, bit R je OS nastavován periodicky na 0
+
 
−
· 4 kategorie:
+
Na začátku mají všechny stránky R=0, M=0, bit R je OS nastavován periodicky na 0
−
Třída 0: R=0, M=0
+
 
−
Třída 1: R=0, M=1
+
4 kategorie:
−
Třída 2: R=1, M=0
+
* Třída 0: R=0, M=0
−
Třída 3: R=1, M=1
+
* Třída 1: R=0, M=1
−
· Algoritmus vyhodí stránku z nejnižší neprázdné třídy, výběr mezi stránkami ve stejné třídě je náhodný
+
* Třída 2: R=1, M=0
−
· Jednoduchý, efektivně implementovatelný, ale nevýkonný
+
* Třída 3: R=1, M=1
−
Algoritmus Second Chance
+
 
−
· Vychází z algoritmu FIFO
+
Algoritmus vyhodí stránku z nejnižší neprázdné třídy, výběr mezi stránkami ve stejné třídě je náhodný
−
· Vyhledává nejstarší stránku, která nebyla referencována v poslední době
+
Jednoduchý, efektivně implementovatelný, ale nevýkonný
−
· Pokud byly všechny referencovány => FIFO
+
 
−
{ zabranit vyhozeni casto pouzivane
+
(R = referenced)
−
{ dle bitu R nejstarsi stranky R = 0 ... stranka je nejstarsi, nepouzivana { vyhodime R = 1 ... nastavme
+
 
−
R=0, presuneme na konec seznamu stranek (jako by byla nove zavedena)
+
 
 +
== Algoritmus Second Chance ==
 +
 
 +
* Vychází z algoritmu FIFO
 +
* Vyhledává nejstarší stránku, která nebyla referencována v poslední době
 +
* Pokud byly všechny referencovány => FIFO
 +
 
 +
Snaží se zabranit vyhozeni casto pouzivane - dle bitu R nejstarsi stranky R = 0 ... stranka je nejstarsi, nepouzivana, vyhodime. Pokud R = 1 ... nastavme
 +
R=0, presuneme na konec seznamu stranek (jako by byla nove zavedena) a vezmeme další v pořadí.
 +
 
 +
[[Soubor:Second-chance.jpg]]
 +
 
 +
 
 +
== Algoritmus  Clock ==
  
−
Algoritmus  Clock
 
 
Optimalizace datovych struktur algoritmu Second Chance
 
Optimalizace datovych struktur algoritmu Second Chance
−
� Stranky udrzovany v kruhovem seznamu
+
* Stranky udrzovany v kruhovem seznamu
−
� Ukazatel na nejstarsi stranku { "rucicka hodin\
+
* Ukazatel na nejstarsi stranku { "rucicka hodin\
−
� Vypadek stranky { najit stranku k vyhozeni
+
* Vypadek stranky { najit stranku k vyhozeni
−
� Stranka kam ukazuje rucicka
+
* Stranka kam ukazuje rucicka
−
{ ma-li R=0, stranku vyhodime a rucicku posuneme o jednu pozici
+
** ma-li R=0, stranku vyhodime a rucicku posuneme o jednu pozici
−
{ ma-li R=1, nastavime R na 0, rucicku posuneme o 1 pozici, opakovani,..
+
** ma-li R=1, nastavime R na 0, rucicku posuneme o 1 pozici, opakovani,..
−
� Od SC se lisi pouze implementaci
+
* Od SC se lisi pouze implementaci
−
� Varianty Clock pouzivaji napr. BSD UNIX
+
* Varianty Clock pouzivaji napr. BSD UNIX
 +
 
 +
 
 +
== Algoritmus Aging ==
 +
 
 +
* Každá položka má pole „stáří“, na počátku = 0
 +
* Při každém přerušení časovače - posun pole „stáří“ o 1 bit vpravo, zleva se přidá hodnota bitu R, nastavení R na 0
 +
* Při výpadku stránky se vyhodí stránka, jejíž pole „stáří“ má nejnižší hodnotu
 +
 
 +
{{fav-kiv-bzinf}}
 +
 
  
−
Algoritmus Aging
+
[[Kategorie:fav-kiv-bzinf]]
−
· Každá položka má pole „stáří“, na počátku = 0
+
−
· Při každém přerušení časovače - posun pole „stáří“ o 1 bit vpravo, zleva se přidá hodnota bitu R, nastavení R na 0
+
−
· Při výpadku stránky se vyhodí stránka, jejíž pole „stáří“ má nejnižší hodnotu
+

Aktuální verze z 20. 2. 2014, 06:48

Obsah

[editovat] Relokace při zavedení do paměti

Program volá instrukci na adrese 66 ale sám v paměti běží až od adresy 1000. Tedy instrukce se nechází na adrese 1066. - Při zavedení programu do paměti provede Linker modifikaci, aby adresy souhlasily


[editovat] Mechanismus báze a limitu (Dynamická relokace)

Jednotka správy paměti (MMU) mezi procesorem a pamětí obsahuje dva registry:

Dostává adresu od CPU a pževádí ji na adresu v paměti


[editovat] Pojmy


[editovat] Výpadek stránky

Tabulka stránek procesu - v MMU, obsahuje stránky daného procesu, mapuje číslo stránky na fyzickou adresu rámce, řeší realokaci a ochranu


[editovat] Algoritmus FIFO


[editovat] Algoritmus MIN/OPT


[editovat] Algoritmus Least Recently Used

nejdele nepouzita (pohled do minulosti)

Vyhazovat zbozi, na kterem je v prodejne nejvice prachu = nejdele nebylo pozadovano

Realizece čítače pomocí matice


[editovat] Algoritmus Not-Recently-Used

Na začátku mají všechny stránky R=0, M=0, bit R je OS nastavován periodicky na 0

4 kategorie:

Algoritmus vyhodí stránku z nejnižší neprázdné třídy, výběr mezi stránkami ve stejné třídě je náhodný Jednoduchý, efektivně implementovatelný, ale nevýkonný

(R = referenced)


[editovat] Algoritmus Second Chance

Snaží se zabranit vyhozeni casto pouzivane - dle bitu R nejstarsi stranky R = 0 ... stranka je nejstarsi, nepouzivana, vyhodime. Pokud R = 1 ... nastavme R=0, presuneme na konec seznamu stranek (jako by byla nove zavedena) a vezmeme další v pořadí.

Second-chance.jpg


[editovat] Algoritmus Clock

Optimalizace datovych struktur algoritmu Second Chance


[editovat] Algoritmus Aging


Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje