Pamięć: stronicowanie i segmentacja

Stronicowanie

Pozwala na logiczną nieciągłość przestrzeni adresowej procesu.

  • Pamięć fizyczna jest dzielona na stałej długości bloki zwane ramkami,
  • Pamięć logiczna jest dzielona na stałej długości bloki zwane stronami,
  • Rozmiary stron i ramek są identyczne,
  • Strony z pamięci pomocniczej wprowadzane są w dowolne ramki pamięci operacyjnej.

Warto wziąć pod uwagę fakt stałej długości strony. Jeśli aplikacja zacznie używać danej strony, ale nie zużyje całej dostępnej w niej pojemności, to pozostałe miejsce zostanie niewykorzystane. To jest właśnie marnotrawstwo wspomniane na slajdzie.

Segmentacja

Segmentacja polega na podzieleniu pamięci fizycznej przez procesor na fragmenty o określonym rozmiarze, atrybutach, identyfikatorze i początku.

Liczba słów w jednym segmencie może być różna, przez co aplikacja może poprosić o dokładnie określoną ilość pamięci - dzięki temu unikamy marnotrawstwa, jakie występuje w przypadku stronicowania.

System tworzy takie segmenty na żądanie aplikacji, przekazując jedynie identyfikator. Oczywiście, aplikacja nie ma dostępu do pamięci z nieswojego segmentu.

Segment może ulec fragmentacji, tzn część segmentu może być w jednym miejscu pamięci, druga w drugim, a może nawet na dysku, choć to ostatnie to raczej pamięć zapasowa, gdzie lądują dane w tym momencie niepotrzebne - swap. Jeśli pamięć na dysku (udawana) jest używana tak, jak pamięć półprzewodnikowa, to jest niedobrze, bo jest ona o wiele wolniejsza od półprzewodnikowej.

 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki