Opisz różnicę między adresacją logiczną i fizyczną.
Adres oglądany przez jednostkę pamięci zwie się fizyczną przestrzenią adresową;to w jaki sposób fizyczna przestrzeń adresowa jest odwzorowywana jest podstawową cechą zarzadzania pamięcią:
1) Logiczny adres-wygenerowany przez CPU; jeśli odwzorowany na adres fizyczny podczas wykonywania programu wtedy jest to wirtualny adres;
2) Fizyczny adres-adres widziany przez sterownik pamięci. Adres logiczny i fizyczny jest taki sam podczas kompilacji i ładowania; logiczny(wirtulany) i fizyczny adres różnią się podczas wykonania.
Sposoby jak na podstawie listy wolnych dziur spełnić zamówienie procesu na pamięć.
Dziura(hole)-blok dostępnej pamięci;dziury o różnorodnej
wielkości są porozrzucane po całej pamięci operacyjnej. Gdy proces staje się gotowy,alokuje pamięć z dziury w pamięci operacyjnej na tyle pojemnej aby sprostać wymaganiom procesu.
System operacyjny zarządza:a)zaalokowanymi partycjami b)wolnymi partycjami (dziurami w pamięci); l)Pierwsze dopasowanie: (first-fit)-przydziel pierwszą dziurę o wystarczającej wielkości.2) Najlepsze dopasowanie:(best-fit)-przydziel najmniejszą z dostatecznie dużych dziur; przejrzyj całą listę, chyba że jest uporządkowana według rozmiarów. Strategia ta zapewnia najmniejsze pozostałości po przydziale. 3)Najgorsze dopasowanie:(worst-fit)-przydziel największą dziurę; należy również przeszukać całą listę. Strategia ta pozostawia po przydziale największą dziurę, która może okazać się bardziej użyteczna niż pozostałość wynikająca z podejścia polegającego na przydziale najlepiej pasującej dziury. Symulacje wykazały,że first-fit i best-fit są lepsze od worst-fit zarówno ze względu na zmniejszanie czasu jak i zużycia pamięci.
Fragmentacja zewnętrzna i wewnętrzna
1) Fragmentacja zewnętrzna (extemal fragmentation)-suma wolnych obszarów w pamięci wystarcza na spełnienie zamówienia ale nie tworzą one ciągłego obszaru.(ma zmienne jednostki przydziału)
2) Fragmentacja wewnętrzna (internal fragm.)-zaalokowana pamięć jest nieznacznie większa od żądania alokacji pamięci; różnica ta stanowi bezużyteczny kawałek pamięci wewnątrz przydzielonego obszaru; Rozwiązanie problemu zewnętrznej fragmentacji to upakowanie (compaction). Przemieszczenie zawartości pamięci w taki sposób aby cała wolna pamięć znalazła się w jednym wielkim bloku. Upakowanie nie jest możliwe jeśli ustalanie adresówjest statyczne; jest możliwe jeśli ustalanie adresówjest dynamicznie wykonywane podczas działania procesu (ma stałe jednostki przydziału).
Mechanizm stronicowania.
Logiczna przestrzeń adresowa procesu może być nieciągła tj. procesowi można przydzielać dowolne dostępne miejsca w pamięci fizycznej.Pamięć fizyczną dzieli się na bloki stałej długości zwane ramkami (frames)(rozmiar jest potęgą 2, między 512B a 16MB). Pamięć logiczną dzieli się na bloki tego samego rozmiaru zwane stronami (pages). Pamiętana jest lista wolnych ramek. Wykonanie procesu o rozmiarze n stron wymaga znalezienia n wolnych ramek i załadowanie w nie procesu. Utworzenie tablicy stron (page table) do odwzorowywania adresów logicznych na. Fizyczne. Eliminuje się fragmentację zewnętrzna ale może powstać fragmentacja wewnętrzna.
Mechanizm segmentacji.
Segmentacja (segmentation) to schemat zarządzania pamięcią który urzeczywistnia sposób widzenia pamięci przez użytkownika. Program jest zbiorem segmentów czyli jednostek logicznych takich jak: program główny, procedura, funkcja, zmienne lokalne, zmienne globalne, common błock, stos, tablica symboli, arrays. Adres logiczny - segmentacja <numer segmentu, odległość >. Program użytkownika jest tłumaczony za pomocą kompilatora, który automatycznie konstruuje segmenty odpowiadające programowi. Kompilator języka Pascal wytwarza segmenty: 1) zmienne globalne 2)stosu wywołań procedur 3) kod funkcji i procedur 4) lokalne zmienne funkcji lub
5