8.1. Wyjaśnij różnicę między adresami logicznymi a fizycznymi.
8.2. Wyjaśnij różnicę między wewnętrzną a zewnętrzną fragmentacją pamięci.
8.3. Wyjaśnij następujące algorytmy przydziału miejsc w pamięci:
a) pierwsze dopasowanie,
b) najlepsze dopasowanie,
c) najgorsze dopasowanie.
8.4. Proces usunięty z pamięci traci możliwość używania procesora
(przynajmniej chwilowo). Opisz inne sytuacje, w których proces traci możliwość użytkowania procesora, ale nie zostaje wysłany do pamięci pomocniczej.
8.5. Mając dane obszary pamięci o rozmiarach: 100 KB, 500 KB, 200 KB,
300 KB i 600 KB (tak uporządkowane), rozważ, w jaki sposób algorytmy z punktów (a), (b) i (c) ulokują procesy o wielkości 212 KB, 417 KB, 112 KB i 426 KB (w takim porządku)? Który z algorytmów zagospodaruje pamięć najlepiej?
8.6. Rozważ system, w którym program można podzielić na dwie części: kod i
dane. Procesor rozróżnia, czy potrzebuje rozkazu (pobranie rozkazu) czy danych (pobranie lub zapamiętanie danych). W tym celu rejestry bazowy i graniczny występują w dwu parach - jednej dla rozkazów i jednej dla danych. Para rejestrów (bazowy j graniczny) przeznaczona dla rozkazów automatycznie umożliwia tylko czytanie, wiec programy mogą dzielić różni użytkownicy. Omów zalety i wady takiego schematu.
8.7. Dlaczego rozmiary stron są zawsze potęgami liczby 2 ?
8.8. Rozważmy przestrzeń adresów logicznych utworzoną z ośmiu stron po
1024 słowa każda, którą odwzorowano na pamięć fizyczną składającą
się z 32 ramek.
(a) Ile bitów zawiera adres logiczny?
(b) Z ilu bitów składa się adres fizyczny?
8.9. Co powoduje, że proces, który nie jest właścicielem strony w systemie ze
stronicowaniem, nie ma do niej dostępu? W jaki sposób system operacyjny mógłby umożliwiać dostęp do innych obszarów pamięci? Dlaczego powinien to umożliwiać lub dlaczego nie powinien na to pozwalać?
8.10. Rozważmy system stronicowania z tablicą stron przechowywaną w pamięci.
(a) Ile potrwa odwołanie do pamięci stronicowanej, jeśli czas dostępu do pamięci wynosi 200
ns?
(b) Ile wyniesie czas efektywnego odwołania do pamięci, jeśli dodamy rejestry asocjacyjne i 75% adresów wszystkich odwołań do tablicy stron będzie znajdowanych w tych rejestrach? (Załóżmy, że jeśli wpis z tablicy stron znajduje się; w rejestrach asocjacyjnych, to jego odnalezienie dokonuje się w czasie zerowym).
8.11. Jakie są skutki zezwolenia na tor by dwie pozycje tablicy stron wskazywały tę samą ramkę w pamięci? Wyjaśnij, jak można spożytkować uzyskiwany efekt w celu zmniejszenia czasu potrzebnego do kopiowania wielkich ilości pamięci z jednego miejsca do innego. Co stanie się im jednej stronie w wyniku Uaktualnienia jakiegoś bajta na drugiej z tych stron?
8.12. Dlaczego segmentację i stronicowanie łączy się czasami w jeden schemat?
8.13. Opisz mechanizm, z pomocą którego jeden segment będzie mógł należeć
do przestrzeni adresowej dwu różnych procesów.
8.14. Wyjaśnij, dlaczego łatwiej jest dzielić moduł wznawiamy przy użyciu
segmentacji niż przy zastosowaniu czystego stronicowania?
8.15. Wspólne użytkowanie segmentów przez procesy bez wymagania, by dany
segment miał ten sam numer w każdym procesie, jest możliwe w systemie segmentacji z dynamicznym łączeniem.
(a) Zdefiniuj system umożliwiający statyczne łączenie i wspólne użytkowanie segmentów bez wymagania, aby numery segmentów wspólnych były takie same.
(b) Opisz schemat stronicowania pozwalający dzielić strony bez wymagania, by ich numery były takie same.
8.16. Rozważmy następującą tablicę segmentów:
Segment | Baza | Długość |
0 | 219 | 600 |
1 | 2300 | 14 |
2 | 90 | 100 |
3 | 1327 | 580 |
4 | 1952 | 96 |
Jakie adresy fizyczne odpowiadają następującym adresom logicznym:
(a) 0,430 (d) 3,400
(b) l,10 (e) 4,112
(c) 2, 500
8.17. Rozważ schemat tłumaczenia adresów procesora Intel pokazany na rys. 8.28.
(a) Opisz wszystkie kroki wykonywane przez procesor Intel 80386 podczas tłumaczenia adresu logicznego na adres fizyczny.
(b) Jakie zalety dla systemu operacyjnego ma sprzęt wyposażony tak złożone środki tłumaczenia adresów pamięci?
(c) Czy taki system tłumaczenia adresów ma jakieś wady?
8.18 W komputerze IBM/370 ochrona pamięci odbywa się za pomocą kluczy. Klucz ma 4 bity. Każdemu blokowi 2048 KB pamięci jest przyporządkowany klucz (klucz pamięci). Również procesor ma przypisany klucz (klucz ochrony). Operacja zapamiętania jest dozwolona, jeśli oba klucze są równe lub gdy któryś z nich jest zerem. Który z poniższych schematów zarządzania pamięcią można by z powodzeniem zastosować na takim sprzęcie:
(a) maszyna nieosłonięta,
(b) system z jednym użytkownikiem,
(c) wieloprogramowanie ze stała liczbą procesów,
(d) wieloprogramowanie ze zmienną
(e) stronicowanie,
(f) segmentacja?