2010-12-11 28 views

Odpowiedz

30

Zamiana oznacza kopiowanie całej przestrzeni adresowej procesu, lub w każdym razie, segmentu danych, które nie mogą się dzielić tekstem, do urządzenia wymiany lub z powrotem, za jednym razem (zazwyczaj dysk).

Zważywszy stronicowania odnosi się do kopiowania w/z jednej lub większej liczby stron w przestrzeni adresowej. W szczególności jest to o wiele drobniejsze ziarno. Na przykład w ~ 1 GB pamięci RAM znajduje się ~ 250 000 stron o wielkości 4 KB.

Zamiana wykorzystano w początkowym okresie, na przykład DEC pdp-11 era Unix, 1975-80 ish. Jeśli chcesz wiedzieć więcej, polecam dokument The Lions a.k.a. Lions 'Commentary on Unix 6th Ed. z kodem źródłowym, John Lions, ISBN 1-57398-013-7?

Z pewnością docenisz Rozdział 14, "Zamiana programu", który rozpoczyna się: "Unix, podobnie jak wszystkie systemy współdzielenia czasu, oraz niektóre systemy wieloprogramowe, używa" zamiany programów "(zwanych także" roll-in/roll-out ")) do dzielenia ograniczonego zasobu głównej pamięci fizycznej między różne procesy. "

stronicowania (na Unix) przybył z BSD (Berkeley Distribution Systems) na VAX-11/780 począwszy od około 1980.

stronicowania jest również zwykle związane z pamięci na stronie atrybutów (bez dostępu do odczytu tylko, odczyt i zapis, brak wykonywania, wykonywalny) i różne triki zarządzania pamięcią wirtualną, takie jak strony bez wypełnienia, strony kopiowania na zapis i tak dalej.

Sprzętowo, zamiana może być wykonywana bez jakiegokolwiek zarządzania pamięcią HW, chociaż wczesne maszyny używały prostego schematu mapowania pamięci (np. Podstawa i granica lub prosta tabela odwzorowania o jednym stałym rozmiarze strony (np. KB przestrzeni adresowej danych na 8, 8 KB stron w większej fizycznej przestrzeni adresowej (256 KB ... 4 MB)).

W przeciwieństwie do stronicowania wymaga wpisów w tabeli stron wirtualnych, które zazwyczaj kodują adres fizyczny strony, bity PTE, takie jak poprawne, przeczytane, zapisane itp. Maszyna musi również automatycznie (w sposób przezroczysty do aplikacji) pobrać i zinterpretować wpisy w tabeli stron, aby zmapować każdy adres wirtualny na jego adres fizyczny i/lub weź wyjątek błędu strony, aby włączyć system operacyjny w celu udostępnienia strony i/lub zaplanowania operacji we/wy w celu załadowania jej do fizycznej pamięci RAM.

Happy hacking!

-1

Brak. Zwykle nazywa się to również zamianą na platformy unix i przywoływaniem w systemie Windows. Ta sama koncepcja.

+1

@LinuxPenseur: chociaż zgadzam się z tobą w pewnym stopniu, w praktyce terminy są często używane zamiennie. – 0xC0000022L

+0

@LinuxPenseur Komentarz jest nieodpowiedni. Powinieneś go usunąć. Co więcej, uważam, że różnica jest kwestią konwencji, którą Tyler Eaves zapewnił, ale nie zrobiłeś tego !!! – Val

0

przywoławczy ma zastosowanie w przypadku aktywnego procesu aktywny tylko proces można przeprowadzić przywołania. Zamiana jest dokonywana przez nieaktywny proces.

1

Mimo że oba terminy są uważane za odrębne przez, powiedzmy, główne media akademickie, faktem jest, że niektórzy autorzy używają ich jako synonimów. Cytując znakomitą książkę na temat architektury komputerów napisaną przez Davida i Sarę Harris (Cyfrowe projektowanie i architektura komputerów), "zapisywanie fizycznej strony z powrotem na dysk i ponowne ładowanie jej inną stroną wirtualną nazywa się zamieniając, więc dysk w system pamięci wirtualnej jest czasami nazywany swap space ".Tak więc Tyler właściwie odpowiedział na pytanie, a jego odpowiedź nie powinna być w ogóle odrzucana.

Powiązane problemy