Systemy operacyjne wykład 7. Zarządzanie pamięcią Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.2 Wykład 7. – zarządzanie pamięcią • Wprowadzenie • Wymiana • Przydział ciągły pamięci • Stronicowanie • Struktura tablicy stron • Segmentacja • Przykład : Intel Pentium Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.3 Cel wykładu • Szczegółowy opis róŜnych sposobów organizacji sprzętu pamięci • Przedyskutowanie róŜnych technik zarządzania pamięcią włączając stronicowanie i segmentację • Szczegółowy opis zarządzania pamięcią przez procesor Intel Pentium, który wykorzystuje zarówno samą segmentację jak i segmentację ze stronicowaniem Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.4 Podstawy • Program musi być pobrany (z dysku) i umieszczony w pamięci w procesie, aby mógł być wykonany • Pamięć główna i rejestry są jedynymi nośnikami danych do których CPU ma bezpośredni dostęp • Dostęp do rejestru w jednym (lub mniej) cyklu zegara • Dostęp do pamięci głównej moŜe zajmować więcej cykli • Pamięć podręczna znajduje się pomiędzy pamięcią główną, a rejestrami CPU • Ochrona pamięci jest niezbędna do zagwarantowania poprawnej pracy Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.5 Rejestr bazowy i graniczny • Para rejestrów ( bazowy i graniczny ) definiuje przestrzeń adresów logicznych Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 1.6 Wiązanie ( binding ) adresów • Wiązanie adresów instrukcji i danych z adresami w pamięci moŜe zostać wykonane na trzech róŜnych etapach – Faza kompilacji : JeŜeli podczas kompilacji znamy adres w pamięci, gdzie proces będzie umieszczony moŜna wygenerować kod bezwzględny ( absolute code) ; konieczność rekompilacji w przypadku zmiany adresu początkowego – Faza ładowania : JeŜeli lokalizacja procesu w pamięci nie jest znana podczas kompilacji, trzeba wygenerować kod relokowalny ( relocatable code) – Faza wykonania : JeŜeli proces moŜe być przemieszczany z jednego segmentu pamięci do drugiego podczas swojego wykonania, powiązanie musi zostać odłoŜone aŜ do czasu wykonania. Wymaga specjalnego
(…)
…
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.31
Strony dzielone
• Dzielony kod
– Jedna kopia kodu wznawialnego (reentrant) kodu typu read-only
współdzielona przez wiele procesów (np.: edytory tekstu, kompilatory,
systemy okienek).
– Współdzielony kod musi się pojawić pod tym samym adresem w
logicznej przestrzenie adresowej wszystkich procesów…
… Edition, Silberschatz, Galvin and Gagne ©2009
1.6
Wieloetapowe przetwarzanie programu
uŜytkownika
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.7
Logiczna i fizyczna przestrzeń adresowa
• Koncepcja logicznej przestrzeni adresowej związanej z oddzielną fizyczną
przestrzenią adresową (physical address space) jest sednem właściwego
zarządzania pamięcią…
… jest w
przestrzeni adresowej procesu
• Konsolidacja dynamiczna jest szczególnie uŜyteczna w przypadku dołączania
bibliotek
• System zwany bibliotekami dzielonymi - shared libraries
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.12
Wymiana ( Swapping)
•
•
•
Proces moŜe zostać odesłany/wymieniony (swapped) z pamięci do pamięci
pomocniczej a później sprowadzony…
…
– Logiczna przestrzeń adresowa o rozmiarze 2m i rozmiarze strony 2n
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.21
Sprzęt stronicujący
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.22
Model stronicowania pamięci logicznej i
fizycznej
Opracowano na podst.: Operating System Concepts – 8th Edition…
… System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.27
Sprzęt stronicujący z TLB
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.28
Efektywny czas dostępu do pamięci
• Czas przeszukiwania pamięci asocjacyjnej = ε
• Zakładamy czas dostepu do pamięci 1 mikrosekunda
• Współczynnik trafień (Hit ratio) – procent numerów stron odnajdywanych w
TLB; wielkość zaleŜna od liczby buforów asocjacyjnych
• Współczynnik trafień = α
• Efektywny czas dostępu (Effective Access Time) (EAT):
EAT = (1 + ε) α + (2 + ε)(1 – α)
=2+ε–α
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.29
Ochrona pamięci
• Ochrona pamięci zaimplementowana za pomocą przypisania bitu ochrony z
kaŜdej ramce
• Bit…
…; trzeba równieŜ przeszukiwać całą listę
• Pozostawia największą pozostałość (dziurę w pamięci) po przydziale
• Strategie wyboru pierwszego lub najlepszego dopasowania są lepsze od
najgorszego dopasowania pod względem szybkości i zuŜycia pamięci
Opracowano na podst.: Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
1.18
Fragmentacja
• Fragmentacja zewnętrzna (External Fragmentation…
... zobacz całą notatkę
Komentarze użytkowników (0)