Jak wielopoziomowa tabela stron oszczędza miejsce w pamięci?

Próbuję zrozumieć, w jaki sposób wielopoziomowa tabela stron oszczędza pamięć. Jak rozumiem, wielopoziomowa tabela stron w sumie zużywa więcej pamięci niż jednopoziomowa tabela stron.

Przykład: rozważ system pamięci o rozmiarze strony 64KB i 32-bitowym procesorze. Każdy wpis w tabeli strony ma 4 bajty.

Jednopoziomowa tabela stron : 16 (2^16 = 64KB) bity sÄ ... wymagane do reprezentowania offsetu strony. Tak więc reszta 16-bitów jest używana do indeksowania do tabeli stron. Więc

*Rozmiar tabeli strony = 2^16 (#stron) * 4 bajty (rozmiar każdego wpisu tabeli strony) = 2^18 bajtów*

Wielopoziomowa tabela stron: W przypadku dwupoziomowej tabeli stron, pozwala użyć pierwszych 10-najważniejszych bitów do indeksowania do tabeli stron pierwszego poziomu. Następne 10-bitów do indeksowania do tabeli stron drugiego poziomu, która ma numer strony do mapowania numerów ramek. Reszta 12-bitów reprezentuje przesunięcie strony.

Rozmiar tabeli stron drugiego poziomu = 2^10 (#wpisów) * 4 bajty (rozmiar każdego wpisu) = 4 KB

Całkowity rozmiar wszystkich tabel stron drugiego poziomu = 2^10 (#tabel stron drugiego poziomu) * 4KB ( Rozmiar każdej tabeli stron drugiego poziomu) = 4 MB

Rozmiar tabeli strony pierwszego poziomu = 2^10 (#wpisów) * (10/8) bajtów (rozmiar każdego wpisu) = 1.25 KB

Całkowita pamięć wymagana do przechowywania tabel stron pierwszego i drugiego poziomu = 4 MB + 1,25 KB

potrzebujemy więc więcej pamięci do przechowywania wielopoziomowych tabel stron.

Jeśli tak jest, w jaki sposób wielopoziomowe tabele stron oszczędzają miejsce w pamięci?

Author: Anil Kumar K K, 2015-04-06

3 answers

  1. w singlelevel pagetable potrzebna jest cała tabela, aby uzyskać dostęp do nawet niewielkiej ilości danych(mniej odwołań do pamięci). czyli 2^20 stron każdy PTE zajmując 4bytes jak zakładałeś.

Przestrzeń wymagana do dostępu do dowolnych danych wynosi 2^20 * 4bytes = 4MB

  1. stronicowanie stron jest wielopoziomowe paging.In wielopoziomowe stronicowanie jest bardziej szczegółowe, możesz za pomocą organizacji wielopoziomowej zdecydować, która konkretna strona spośród stron 2^20 istnieje Twoje dane i ją wybrać . Więc tutaj potrzebujesz tylko ta konkretna strona będzie w pamięci podczas uruchamiania procesu.

W przypadku 2 poziomu, który omówiłeś, potrzebujesz 1st level pagetable, a następnie 1 z 2^10 pagetables na drugim poziomie. Więc, 1. poziom Rozmiar = 2^10 * 4bytes = 4KB 2. poziom potrzebujemy tylko 1 spośród 2^10 pagetables = więc rozmiar to 2^10 * 4bytes = 4KB

Całkowity wymagany rozmiar to teraz: 4KB + 4KB = 8KB.

Ostateczne porównanie to 4MB vs 8KB .

 24
Author: Sai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-27 01:36:39

Oto główna zaleta wielopoziomowych tabel stron:

Po pierwsze, posiekaj tabelę stron na jednostki rozmiaru strony; następnie, jeśli cała strona pozycji tabeli stron (PTE) jest nieprawidłowa, nie przydzielaj tej strony tabeli stron w ogóle.

Źródło. (sekcja 20.3)

Tak więc ilość pamięci potrzebnej dla tabeli stron nie jest zależna od wielkości przestrzeni adresowej, ale od ilości pamięci, z której korzysta proces.

Ponadto wpisy stron tabeli stron mogą być stronicowane, jeśli pamięć fizyczna się zapełni - tylko katalog stron musi być zawsze obecny w pamięci.

 6
Author: Craig S. Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-06 08:29:33

Tabele wielopoziomowe są przede wszystkim potrzebne, ponieważ jeśli struktura pamięci W Intel-land.

Załóżmy, że masz system 32-bitowy i dzielisz przestrzeń adresową tak, że górna część jest zarezerwowana dla systemu, a dolna połowa dla adresów użytkowników.

Z takim podziałem, potrzebowałbyś 2GB sąsiadujących wpisów w każdej tabeli Stron Użytkowników, aby dotrzeć do adresów systemowych.

Stary VAX do prostego podejścia do tego. Podzielił adres 4GB miejsce na 4 regiony (2 Użytkownika, 1 systemowy, jeden bezużyteczny). Trzy obszary użytkowe miały własną tabelę stron.

Każdy region miał własną tabelę stron. Ponieważ istniała dedykowana przestrzeń adresowa systemu, tabele stron użytkownika mogły być adresami wirtualnymi, więc nie wymagały dodatkowej pamięci.

Pierwsza faza translacji adresów polegała na sprawdzeniu dwóch bitów adresów o wysokim porządku, aby wybrać tabelę stron do użycia.

Zamiast posiadania osobnych tabel stron, Intel-land łamie / align = "left" / To zmniejsza problemy z (1) potrzebą sąsiedniej pamięci dla Tabeli; (2) wymaganiem, aby tabela strony obejmowała całą przestrzeń adresową; (3) pozwala na zdefiniowanie adresów jądra, które mogą być współdzielone przez wszystkie procesy.

 0
Author: user3344003,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-10 18:46:59