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

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Paweł Ziemian BOT (dyskusja | edycje)
m Dodaję nagłówek przed Szablon:Przypisy
Usunięto subiektywne opinie autora na temat komputera K-202 (nie znajdujące potwierdzenia w dostępnych materiałach źródłowych, bez podanych przez autora źródeł). Uproszczono opis tak by był bardziej zrozumiały dla przeciętnego odbiorcy. Uzupełniono Historię o informacje dotyczące wczesnego wykorzystania Stronicowania pamięci w przemyśle komputerowym na świecie (a nie tylko w Polsce, gdzie nie stanowiło to już innowacji i nie było niczym nowym). Dodano przypisy i linki do artykułów w polskiej Wik
Linia 1:
{{dopracować|źródła=2012-06}}
 
'''Stronicowaniem pamięci''' nazywamy w komputerowych [[System operacyjny|systemach operacyjnych]] jeden ze sposobów [[Zarządzanie pamięcią|zarządzania pamięcią]], w którym komputer przechowuje i pobiera dane z [[Pamięć komputerowa|pamięci dodatkowej]] do wykorzystania w [[Pamięć komputerowa|pamięci podstawowej]]. Dane pobierane są z pamięci dodatkowej w blokach o jednakowym rozmiarze nazywanych stronami. Stronicowanie jest istotnym elementem implementacji [[Pamięć wirtualna|pamięci wirtualnej]], we współczesnych systemach operacyjnych, pozwalającym na przekroczenie ograniczeń komputera wynikających tak z ilości dostępnej pamięci fizycznej, jak też np. wykorzystywanej architektury procesora (potrafiącego zaadresować mniejszą ilość pamięci niż faktycznie dostępna).
'''Stronicowanie''' – jeden ze sposobów rozwiązania problemu zewnętrznej fragmentacji, polegający na dopuszczeniu nieciągłości rozmieszczenia logicznej [[Przestrzeń adresowa|przestrzeni adresowej]] [[Proces (informatyka)|procesu]] w pamięci fizycznej. Zostało użyte przez polskiego inżyniera [[Jacek Karpiński|Jacka Karpińskiego]] w architekturze komputera [[K-202]].
Podstawowa filozofia stronicowania:
Linia 8:
* Rozmiary stron i ramek są identyczne.
* Przy wykonywaniu procesu, strony z pamięci pomocniczej wprowadzane są w odpowiednie ramki [[Pamięć operacyjna|pamięci operacyjnej]].
 
Stronicowaniem w systemach [[komputer]]owych nazywamy podział [[pamięć|pamięci]] na mniejsze obszary o ustalonej lub zmiennej wielkości i przydzielanie tym blokom adresów fizycznych lub logicznych.
 
== Historia ==
W światowym przemyśle komputerowym stronicowanie stosowano od wczesnych lat 60. Firma [[Ferranti]] wprowadziła stronicowanie w komputerze [[ATLAS (komputer)|ATLAS]], termin stron pamięci na rynku masowym w odniesieniu do architektury komputerowej był wykorzystywany, niezależnie od tego, czy strona była przenoszona między obszarami pamięci RAM czy między pamięcią RAM a dyskiem<ref>{{Cytuj |autor = Deitel, Harvey M. |tytuł = An Introduction to Operating Systems |data = 1983 |isbn = 0-201-14473-5 |wydawca = Addison-Wesley |s = 181, 187}}</ref><ref>{{Cytuj |autor = Belzer, Jack; Holzman, Albert G.; Kent, Allen, eds |tytuł = "Operating Systems". Encyclopedia of computer science and technology |data = 1981 |isbn = 0-8247-2261-2 |wolumin = 11 |wydawca = CRC Press |s = 433 |url = https://books.google.pl/books?id=uTFirmDlSL8C&redir_esc=y |archiwum = https://web.archive.org/web/20170227051057/https://books.google.com/books?id=uTFirmDlSL8C&printsec=frontcover}}</ref>. Na przykład w komputerze [[PDP-8]] 7 bitów instrukcji zawierało adres pamięci, który wybierał jedno ze 128 słów. Ta strefa pamięci została nazwana stroną. Takie użycie terminu jest obecnie rzadkie. W latach 60. zamiana stron pamięci była wczesną techniką pamięci wirtualnej pozwalając na podmianę całych programów (podmieniony program stawał się nieaktywny w czasie gdy pamięć RAM wykorzystywana była przez inny program)<ref>{{Cytuj |autor = Belzer, Jack; Holzman, Albert G.; Kent, Allen, eds |tytuł = "Operating systems". Encyclopedia of computer science and technology |data = 1981 |isbn = 0-8247-2261-2 |wolumin = 11 |wydawca = CRC Press |s = 442 |url = https://books.google.com/books?id=uTFirmDlSL8C |archiwum = https://web.archive.org/web/20170227051057/https://books.google.com/books?id=uTFirmDlSL8C&printsec=frontcover}}</ref><ref>{{Cytuj |autor = Cragon, Harvey G. |tytuł = Memory Systems and Pipelined Processors |data = 1996 |isbn = 0-86720-474-5 |wydawca = Jones and Bartlett Publishers |s = 109 |url = https://books.google.com/books?id=q2w3JSFD7l4C |archiwum = https://web.archive.org/web/20170227205647/https://books.google.com/books?id=q2w3JSFD7l4C}}</ref>.
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 (MB) [[pamięć operacyjna|pamięci operacyjnej]].
 
Wynalezienie tablicy stron pozwoliło procesorowi działać na dowolnych stronach w dowolnym miejscu pamięci RAM jako pozornie ciągła logiczna przestrzeń adresowa. Strony te stały się jednostkami wymienianymi między dyskiem a pamięcią RAM.
 
W światowym przemyśle komputerowym stronicowanie stosowano co najmniej we wczesnych latach 60. W Polsce inż. [[Jacek Karpiński]] wykorzystał stronicowanie pamięci przy konstruowaniu komputera [[K-202]] w latach [[1970]]–[[1973]] innowacyjniew rozwiązał problemcelu 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 (MB) [[pamięć operacyjna|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 pamięci przez procesor.
 
== W pamięciach flash ==