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! |
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
== Historia ==
W światowym przemyśle komputerowym stronicowanie stosowano co najmniej we wczesnych latach 60. W Polsce
▲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
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.
[[
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]]
|