Stronicowanie pamięci: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
stronicowanie jest dużo starsze niż jego użycie przez inż Karpińskiego w K-202 - to mówię ja, Marcin 'Matmiś' Stefaniak, howgh!
ToSter (dyskusja | edycje)
m WP:SK, drobne redakcyjne
Linia 7:
* Przy wykonywaniu procesu, strony z [[Cache|pamięci pomocniczej]] wprowadzane są w dowolne ramki [[Pamięć operacyjna|pamięci operacyjnej]].
 
W systemach [[komputer|komputerowych]]owych podział [[pamięć|pamięci]] na mniejsze obszary o ustalonej lub zmiennej wielkości przydzielanie tym blokom adresów fizycznych lub logicznych.
 
== Historia ==
W światowym przemyśle komputerowym stronicowanie stosowano co najmniej we wczesnych latach 60. W Polsce, inż. [[Jacek Karpiński]] przy konstruowaniu komputera [[K-202]] w latach [[1970]] - [[1973]] innowacyjnie rozwiązał problem adresowania większej ilości pamięci poprzez ''stronicowanie''. Inne porównywalne ówczesne komputery 16-bitowe dostępne na świecie mogły zaadresować jedynie 64 kilobajty (były to [[Super-Nova]] i [[Modular One]]). Dzięki owemu mechanizmowi komputer K-202 adresował do 8 megabajtów pamięci operacyjnej.
W światowym przemyśle komputerowym stronicowanie stosowano co najmniej we wczesnych latach 60'tych.
W Polsce, inż. [[Jacek Karpiński]] przy konstruowaniu komputera [[K-202]] w latach [[1970]] - [[1973]] innowacyjnie rozwiązał problem adresowania większej ilości pamięci poprzez ''stronicowanie''. Inne porównywalne ówczesne komputery 16-bitowe dostępne na świecie mogły zaadresować jedynie 64 kilobajty (były to [[Super-Nova]] i [[Modular One]]). Dzięki owemu mechanizmowi komputer K-202 adresował do 8 megabajtów pamięci operacyjnej.
 
== Stronicowanie pamięci fizycznej ==
Stronicowanie pamięci fizycznej wykonywane było z powodu ograniczenia przestrzeni adresowej procesora (stronicowanie fizyczne). Stronicowanie takie stosowano w systemach 8- i 16-bitowych, w których ilość zainstalowanej pamięci przekraczała możliwości adresowania procesora.
 
W pamięciach [[Flash EEPROM]] zapis do pamięci następuje poprzez wypełnienie bufora (strony) i następnie na wybrany rozkaz: bufor zostaje przeniesiony do pamięci, co trwa od 1 ms do 10 ms.
 
== Stronicowanie pamięci w systemie MS DOS ==
 
System MS DOS używa procesora 8086 lub jego następcy w [[tryb rzeczywisty|trybie rzeczywistym]]. W trybie tym procesor może zaadresować 1 MB pamięci. Na początku lat dziewięćdziesiątych pojawiła się koncepcja wykorzystania w MS DOS pamięci w obszarze ponad 1 MB, pamięć ta była dzielona na bloki (strony) o wielkości 16 kB i w tej wielkości dostępna przez okienko o wielkości 64 kB w przestrzeni adresowej procesora. Patrz: [[EMS (informatyka)|pamięć EMS]].
== Stronicowanie pamięci w procesorach 80386 ==
 
Procesory [[Intel 80386|80386]] i nowsze pracujące w [[tryb chroniony|trybie chronionym]] umożliwiają dowolne mapowanie adresów logicznych na adresy fizyczne – mechanizm ten nazywany jest ''stronicowaniem'' (ang. ''paging''). Adresy logiczne obejmują całą przestrzeń adresową procesora, czyli 4 GB, niezależnie od tego, ile w rzeczywistości w komputerze zainstalowano pamięci. Zadaniem [[system operacyjny|systemu operacyjnego]] jest odpowiednie mapowanie adresów logicznych na adresy pamięci fizycznej, co pozwala zwykłym programom użytkowym przez cały czas działania odwoływać się do tych samych adresów logicznych.
 
Linia 31 ⟶ 28:
# '''przesunięcie''' w obrębie strony (liczba 12-bitowa).
 
'''Katalog stron''' zawiera [[wskaźnik|wskaźniki]]i do tablic stron, '''tablice stron''' przechowują adresy fizyczne stron. (System operacyjny może zarządzać wieloma katalogami i tablicami stron).
 
Zatem pierwsza część adresu wybiera z katalogu stron tablicę stron. Druga część adresu wybiera pozycję z tablicy stron, która wyznacza fizyczny adres konkretnej strony. '''Przesunięcie''' jest adresem lokalnym w obrębie wybranej strony. Zatem adres fizyczny, na który zamapowano adres logiczny, wyznaczany jest z dwóch składników: adresu fizycznego strony i przesunięcia.
Linia 37 ⟶ 34:
Ponieważ uzyskiwanie dostępu do pamięci w celu odczytania informacji o stronie jest czasochłonne, dlatego procesory posiadają [[Cache|pamięć podręczną]] (ang. [[Translation Lookaside Buffer|TLB]], ''Translation Lookaside Buffer''), w której pamiętane są ostatnio wyznaczone adresy fizyczne stron. TLB przechowuje 32, 64, 256 lub więcej pozycji.
 
[[grafikaPlik:Paging_386Paging 386(pl).svg|center]]
 
Każda pozycja w tablicy stron przechowuje pewne dodatkowe informacje dotyczące strony pamięci, także te przydatne w realizacji [[pamięć wirtualna|pamięci wirtualnej]]:
Linia 44 ⟶ 41:
* '''Bit modyfikacji''' (ang. ''dirty'' lub ''modified'') – jest ustawiany podczas zapisu danych. Jeżeli dana strona jest usuwana z pamięci, to w przypadku ustawienia bitu modyfikacji musi być zapisana na dysk. Wartość zerowa bitu modyfikacji oznacza, że strona w pamięci oraz strona na dysku jest taka sama, więc podczas usuwania strony z pamięci nie ma konieczności ponownego zapisywania jej na dysk.
 
== Zobacz też ==
* [[Pamięć komputerowa]]
* [[Pamięć wirtualna]]
* [[Adres pamięci]]
 
[[Kategoria:Budowa systemu operacyjnego]]