W systemach operacyjnych stronicowanie to mechanizm przechowywania używany do pobierania procesów z pamięci dodatkowej do pamięci głównej w postaci stron.
Główną ideą stronicowania jest podzielenie każdego procesu w formie stron. Pamięć główna również zostanie podzielona w formie ramek.
wstawianie Pythona
Jedna strona procesu ma być zapisana w jednej z ramek pamięci. Strony można przechowywać w różnych miejscach pamięci, jednak priorytetem jest zawsze znalezienie sąsiadujących ramek lub dziur.
Strony procesu są przenoszone do pamięci głównej tylko wtedy, gdy są potrzebne, w przeciwnym razie znajdują się w pamięci dodatkowej.
Różne systemy operacyjne definiują różne rozmiary ramek. Rozmiary każdej ramki muszą być równe. Biorąc pod uwagę fakt, że strony są mapowane do ramek w Paging, rozmiar strony musi być taki sam jak rozmiar ramki.
Przykład
Rozważmy rozmiar pamięci głównej 16 Kb i rozmiar ramki 1 KB, dlatego pamięć główna zostanie podzielona na zbiór 16 ramek po 1 KB każda.
format ciągu
W systemie działają 4 procesy czyli P1, P2, P3 i P4 o rozmiarze 4 KB każdy. Każdy proces jest podzielony na strony o rozmiarze 1 KB każda, dzięki czemu jedna strona może być przechowywana w jednej ramce.
Początkowo wszystkie ramki są puste, dlatego strony procesów będą przechowywane w sposób ciągły.
Ramki, strony i mapowanie między nimi pokazano na poniższym obrazku.
Rozważmy, że po pewnym czasie P2 i P4 przechodzą w stan oczekiwania. Teraz 8 ramek staje się pustych i dlatego w tym pustym miejscu można załadować inne strony. Proces P5 o rozmiarze 8 KB (8 stron) czeka w kolejce gotowych.
Biorąc pod uwagę fakt, że w pamięci dostępnych jest 8 nieciągłych ramek, a stronicowanie zapewnia elastyczność przechowywania procesu w różnych miejscach. Dlatego w miejsce P2 i P4 możemy załadować strony procesu P5.
Jednostka zarządzania pamięcią
Celem jednostki zarządzania pamięcią (MMU) jest konwersja adresu logicznego na adres fizyczny. Adres logiczny to adres generowany przez procesor dla każdej strony, natomiast adres fizyczny to rzeczywisty adres ramki, w której będzie przechowywana każda strona.
próba złapania Java
Kiedy procesor ma uzyskać dostęp do strony przy użyciu adresu logicznego, system operacyjny musi uzyskać adres fizyczny, aby fizycznie uzyskać dostęp do tej strony.
Adres logiczny składa się z dwóch części.
konstruktory w Javie
- Numer strony
- Zrównoważyć
Jednostka zarządzająca pamięcią systemu operacyjnego musi przekonwertować numer strony na numer ramki.
Przykład
Biorąc pod uwagę powyższy obraz, załóżmy, że procesor żąda 10. słowa z 4. strony procesu P3. Ponieważ strona nr 4 procesu P1 jest przechowywana w ramce nr 9, dlatego 10. słowo z 9. ramki zostanie zwrócone jako adres fizyczny.