Wykład 7. Zarządzanie pamięcią



Podobne dokumenty
Zarządzanie pamięcią operacyjną

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

architektura komputerów w. 8 Zarządzanie pamięcią

Zarządzanie zasobami pamięci

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Zarządzanie pamięcią. Zarządzanie pamięcią. Podstawy. Podsystem zarządzania pamięcią. Zadania podsystemu: W systemie wielozadaniowym:

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem.

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Schematy zarzadzania pamięcia

Architektura komputerów

dr inż. Jarosław Forenc

Podstawy. Podsystem zarządzania pamięcią - zadania: Wiązanie (binding) rozkazów i danych z adresami pamięci. W systemie wielozadaniowym:

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Od programu źródłowego do procesu

Systemy operacyjne III

System pamięci. Pamięć wirtualna

Zarządzanie pamięcią w systemie operacyjnym

Współpraca procesora ColdFire z pamięcią

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna

dr inż. Jarosław Forenc

Architektura komputerów

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Informatyka 2. Wykład nr 10 ( ) Plan wykładu nr 10. Politechnika Białostocka. - Wydział Elektryczny. ext2. ext2. dr inŝ.

Stronicowanie w systemie pamięci wirtualnej

Systemy Operacyjne Zarządzanie pamięcią operacyjną

Podstawowe zagadnienia informatyki

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

1. Rola pamięci operacyjnej

ARCHITEKTURA PROCESORA,

Hierarchia pamięci w systemie komputerowym

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Budowa systemów komputerowych

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

2.1 Wstęp Kryteria planowania Algorytmy planowania Systemy wieloprocesorowe i czasu rzeczywistego...

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Wykład 10 Zarządzanie pamięcią

Mikroinformatyka. Tryb wirtualny

Systemy operacyjne system przerwań

Pamięć wirtualna w AS/400

Architektura i administracja systemów operacyjnych

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Podstawy. Pamięć wirtualna. (demand paging)

Struktura systemów komputerowych

Systemy Operacyjne Pamięć wirtualna cz. 2

Ograniczenia efektywności systemu pamięci

Architektura mikroprocesorów TEO 2009/2010

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Celem wykładu jest przedstawienie podejść do zarządzania jednym z kluczowych zasobów systemu komputerowego pamięcią operacyjną. Ponieważ zarządzanie

Mikroprocesory rodziny INTEL 80x86

WYKŁAD. Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną i pamięć wirtualna

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Sprzętowe wspomaganie pamięci wirtualnej

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Architektura systemu komputerowego

43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

4. Procesy pojęcia podstawowe

Technologie informacyjne (2) Zdzisław Szyjewski

Zarządzanie dyskowymi operacjami we-wy. Zarządzanie pamięcią operacyjną. dr inż. Jarosław Forenc. systemy plików (NTFS, ext2)

Architektura systemów informatycznych

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Ograniczenia efektywności systemu pamięci

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Przed wykonaniem program musi być pobrany z dysku i. Tam działa a jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z

WINDOWS NT. Diagram warstw systemu Windows NT

Systemy operacyjne Zarządzanie pamięcią

System plików. Warstwowy model systemu plików

Systemy Operacyjne Pamięć wirtualna cz. 1

System pamięci. Pamięć podręczna

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

projektowanie systemu

Działanie systemu operacyjnego

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

Zarz¹dzanie pamiêci¹

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

KOMPONENTY SYSTEMÓW OPERACYJNYCH

Architektura komputerów

Technologia informacyjna. Urządzenia techniki komputerowej

dr inŝ. Jarosław Forenc

Struktury systemów operacyjnych

System plików. dr inż. Krzysztof Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Transkrypt:

Wykład 7 Zarządzanie pamięcią -1-

Świat idealny a świat rzeczywisty W idealnym świecie pamięć powinna Mieć bardzo dużą pojemność Mieć bardzo krótki czas dostępu Być nieulotna (zawartość nie jest tracona po wyłączeniu zasilania) W świecie rzeczywistym pamięć jest Szybka O dużej pojemności Tania Wybierz dowolne dwa z trzech powyższych warunków Cel zarządzania pamięcią: Aby rzeczywistość jak najbardziej przybliżała ideał -2-

Hierarchia pamięci Przemieszczając się w dół hierarchii Zwiększamy czas dostępu Zmniejszamy koszt jednego bajtu -3-

Hierarchia pamięci Rejestry procesora: dostęp najszybszy, pojemność najmniejsza Pamięć podręczna (ang cache memory) Na ogół kilka poziomów (L1,L2, L3) Przechowuje najczęściej używane dane z pamięci operacyjnej Często niewidoczna dla programisty aplikacji Przykład: AMD Athlon XP 128 KB L1 cache (64 KB dane + 64 KB program) 512 KB L2 cache (dane + program) L1 znacznie szybsza od L2 Pamięć operacyjna (DRAM) Średnia szybkość i średni koszt Pamięć dyskowa: Tania, Nieulotna, Duża pojemność, Bardzo duży czas dostępu -4-

Proste zarządzanie pamięcią w systemie jednoprogramowym System operacyjny + sterowniki urządzeń Jeden program użytkownika => Ochrona pamięci nie jest potrzebna 0xFFFF 0xFFFF User program (RAM) 0 Operating system (RAM) Device drivers (ROM) Operating system (ROM) User program (RAM) User program (RAM) Operating system (RAM) -5-0

Systemy wieloprogramowe Partycje o nie zmieniającym się rozmiarze Pamięć operacyjna podzielona na obszary o stałym rozmiarze Rozmiary poszczególnych obszarów mogą się różnić Do którego obszaru załadować program? Program ładowany jest do wolnego obszaru Wspólna kolejka programów Odrębne kolejki dla każdego obszaru Proces trafia do kolejki związanej z najmniejszym obszarem zdolnym zmieścić proces 900K 900K Partition 4 Partition 3 Partition 2 Partition 4 700K 600K 500K Partition 3 Partition 2 Partition 1 700K 600K 500K Partition 1 100K 100K OS OS 0 0-6-

Dygresja: Określanie adresów danych i instrukcji W chwili kompilacji Problem: Nie znamy adresu pod który program zostanie załadowany W chwili ładowania programu Generuj kod relokowalny, który może zostać załadowany pod dowolny adres w pamięci Często wykorzystuje się tablicę relokacji Kod raz załadowany do pamięci nie może być przemieszczany W rozwiązaniu z tablicą relokacji używa się adresów bezwzględnych, obliczonych np względem początku kodu programu Po załadowaniu do wszystkich adresów bezwzględnych (informacje o adresach bezwzględnych przechowuje tablica relokacji) w kodzie dodaje się adres pod który został załadowany kod programu W chwili wykonywania programu: Kod załadowany do pamięci może być przemieszczany Potrzebne jest wsparcie sprzętowe Np rejestr bazowy (i opcjonalnie rejestr limitu) -7-

Rejestr bazowy i rejestr limitu Logiczna i fizyczna przestrzeń adresowa Adres logiczny (zwany czasami adresem wirtualnym): z punktu widzenia procesu Adres fizyczny: z punktu widzenia pamięci Translacja adresu: AdrFizyczny=RejestrBazowy+AdrLogiczny Rejestr Limitu służy do realizacji ochrony pamięci musi być mniejsze niż L AdresFizyczny<L -8-

Realizacja sprzętowa -9-

Fragmentacja Fragmentacja wewnętrzna Obszar pamięci przydzielony dla procesu jest większy niż niezbędny Poważny problem przy partycjach o stałych rozmiarach Fragmentacja zewnętrzna Całkowita pojemność wolnej pamięci jest wystarczająca na zaspokojenie żądania procesu, ale wolna pamięć nie stanowi ciągłego bloku -10-

Dynamiczne partycjonowanie Rozmiar partycji jest dokładnie równy rozmiarowi procesu Brak fragmentacji wewnętrznej Po pewnym czasie wystąpi fragmentacja zewnętrzna ( dziury w pamięci ) Kompakcja: procesy są przesuwane w pamięci tak, aby wolna pamięć tworzyła jeden duży blok Likwiduje fragmentację Czasochłonna Problemy z wejściem wyjściem Wymaga określania adresów w chwili wykonywania programu, np Przy pomocy rejestru bazowego -11-

Przykład partycjonowania dynamicznego -12- Coraz większa fragmentacja zewnętrzna

W którym wolnym bloku pamięci umieścić program? First-fit w pierwszym bloku o wystarczającym rozmiarze Best-fit w największym bloku o wystarczającym rozmiarze Next-fit następny obszar pasujący po ostatnio wybranym Worst-fit- w największym bloku o wystarczającym rozmiarze -13-

Wzrost wymagań procesu na pamięć Proces może zwiększać wymagania na pamięć swoje Dotyczy to stosu i danych Przydziel większy blok pamięci niż wymagany na początku Mała wydajność Wrócimy do stronicowania tego przy Stack Process B Room for B to grow Data Code Stack opisie Process A Room for A to grow Data Code OS -14-

Wymiana (ang swapping) Proces może być tymczasowo przeniesiony z pamięci operacyjnej do pamięci pomocniczej (ang backing store) Zwolniona pamięć może zostać wykorzystana przez inne procesy Wymianie podlegają kompletne procesy -15-

Stronicowanie Pamięć fizyczna jest podzielona na ramki (ang frame) o stałym rozmiarze, będącym potęgą dwójki (np 4KB) Przestrzeń adresowa procesu jest podzielona na strony (ang page), rozmiar strony jest równy rozmiarowi ramki I tej stronie w przestrzeni adresowej procesu odpowiada K-ta ramka Dla dowolnego I, K może być dowolne Adres generowany przez procesor jest podzielony na dwie części: Numer strony (p) oraz przesunięcie na stronie (d) Przykład strona ma rozmiar 4KB=2^12 bajtów, adres ma 32 bity 32-12 = 20 bitów p 12 bitów d 32-bitowy adres logiczny -16-

Translacja adresu w stronicowaniu Numer strony Przesunięcie CPU p d Numer ramki f 0 1 d 0 1 p-1 p p+1 Numer ramki f-1 f f+1 f+2 f Pamięć -17-

Przykład -18-

Stronicowanie wymaga wsparcia sprzętowego Każdy proces ma własną tablicę stron Tablica stron jest przechowywana w pamięci Adres fizyczny początku tablicy stron jest przechowywany w bazowym tablicy stron rejestrze Liczba elementów w tablicy stron jest przechowywana w rejestrze długości tablicy stron Zawartość obydwu rejestrów jest zmieniana przy przełączaniu kontekstu Przy naiwnej sprzętowej implementacji tego schematu każde, odwołanie do pamięci przez proces wymaga wykonania dwóch cykli dostępu do pamięci Jeden cykl aby znaleźć numer ramki w tablicy stron Jeden cykl na wykonanie właściwej operacji Szybkość dostępu do pamięci spada dwukrotnie -19-

Bufor TLB (ang Translation lookaside bufer) Przechowywany w procesorze Zawiera numer strony oraz odpowiadający mu numer ramki dla k (np k=32) najczęściej używanych stron Jeżeli numer strony występuje w buforze TLB, to nie jest wymagany dostęp do tablicy stron Jeżeli nie występuje, wykonywany jest dostęp do tablicy stron a para <Strona,Ramka> jest wprowadzana do bufora TLB Na którą pozycję? W praktyce zapewniany jest ponad 95% współczynnik trafień Uwaga: przełączenie kontekstu opróżnienia bufora TLB!!! wymaga -20- Numer strony 8 unused 2 3 12 29 22 7 Numer ramki 3 1 0 12 6 11 4 Przykładowy bufor TLB

Stronicowanie w systemie wieloprogramowym (d) W pamięci procesy A,B,C (e) Proces B przesłany do obszaru wymiany (f) załadowany proces D Struktury systemu w chwili (f) -21-

Realizacja ochrony przy stronicowaniu Sprzętowy mechanizm ochrony, którego naruszenie (np przez proces wykonywujący się w trybie użytkownika) powoduje zgłoszenie wyjątku (przerwania) stronicowania (ang page fault) Możliwość określenia długości tablicy stron (rozmiaru przestrzeni adresów logicznych procesu) Bit ważności związany z każdą stroną i przechowywany w tablicy stron Strona ważna => obecna w pamięci Strona nieważna => próba dostępu powoduje wyjątek stronicowania Możliwość realizacji dziur w logicznej przestrzeni adresowej Strony, którym nie odpowiada zaalokowana pamięć mają wyzerowany bit ważności Patrz rysunek w jednym z poprzednich slajdów Bit ochrony przed zapisem próba zmodyfikowania strony z ustawionym powoduje wyjątek stronicowania bitem Bit trybu jądra próba dostępu do strony z ustawionym bitem trybu jądra z procesu wykonywującego się w trybie użytkownika powoduje wyjątek stronicowania => w ten sposób jądro chroni swoją pamięć przed programami użytkowników -22-

Pamięć współdzielona pamięć operacyjna Niech pamięć edytora tekstu składa się z 3 stron kodu i jednej strony z danymi Trzech użytkowników uruchomiło edytor Czy musimy trzykrotnie wczytać kod do pamięci (razem dziewięć stron)? Jeżeli kod jest kodem niemodyfikującym się, to nie trzy ramki z kodem zostały odwzorowane w przestrzeń adresową trzech procesów, każda z nich jest współdzielona przez trzy procesy Wymagana jest implementacja bitu ochrony przed zapisem aby nie pozwolić żadnemu z trzech procesów na modyfikację stron z kodem Ponadto pamięć współdzielona może być wykorzystana do bardzo szybkiej wymiany danych pomiędzy procesami większość systemów posiada niezbędne API -23-

Stronicowanie dwupoziomowe Tablica stron może mieć duży rozmiar Niech adres logiczny ma 32 bity, Przestrzeń adresowa na rozmiar 4GB Jeżeli pozycja w tablicy stron ma 4 bajty, to na tablicę stron potrzebujemy 4MB 220 657 401 Stronicowanie wielopoziomowe Idea: Tablica stron podlega stronicowaniu 961 Tablica stron pierwszego poziomu przechowuje numery stron w tablicy drugiego poziomu Każdej pozycji w tablicy stron pierwszego poziomu odpowiada tablica stron drugiego poziomu Tablica stron drugiego przechowuje numery stron poziomu 125 613 884 960 2nd level page tables -24-955 main memory

Przykład Numer strony p1 = 10 bits Page table base Przesunięcie p2 = 9 bits offset = 13 bits Numer ramki 0 1 Adres fizyczny 0 19 1 p1 0 1 p2 13 Pamięć Tablica pier poziomu Tablica stron drug poziomu -<number>-

Zalety stronicowania Eliminuje fragmentacje zewnętrzną Fragmentacja wewnętrzna jest ograniczona do rozmiaru strony Łatwa realizacja ochrony pamięci Łatwa realizacja dynamicznego wzrostu obszaru przydzielonej pamięci Wraz z przydzielaniem dodatkowych ramek zaznaczaj bit ważności Możliwość implementacji pamięci wirtualnej Cześć przestrzeni adresowej procesu w pamięci, część na dysku Rozmiar przestrzeni adresowej procesu większy od pojemności pamięci RAM Temat wykładu w następnym tygodniu!!! -<number>-