Zarządzanie pamięcią operacyjną

Podobne dokumenty
Zarządzanie pamięcią operacyjną zagadnienia podstawowe

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

Zarządzanie pamięcią operacyjną

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

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

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

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią operacyjną

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

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

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Architektura komputerów

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

Systemy Operacyjne Zarządzanie pamięcią operacyjną

Zarządzanie zasobami pamięci

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

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

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

dr inż. Jarosław Forenc

Technologie informacyjne (2) Zdzisław Szyjewski

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

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

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

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

Systemy operacyjne III

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Zarz arz dzanie pam dzanie ięci ę ą

dr inż. Jarosław Forenc

Stronicowanie w systemie pamięci wirtualnej

System plików warstwa logiczna

Zarz¹dzanie pamiêci¹

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Hierarchia pamięci w systemie komputerowym

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

Działanie systemu operacyjnego

Zarz arz dzanie pam dzanie ięci ę ą

Współpraca procesora ColdFire z pamięcią

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]

Architektura komputerów

Schematy zarzadzania pamięcia

System plików przykłady. implementacji

Od programu źródłowego do procesu

dr inŝ. Jarosław Forenc

Działanie systemu operacyjnego

Budowa systemów komputerowych

Podstawowe zagadnienia informatyki

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

System plików. Warstwowy model systemu plików

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

dr inż. Jarosław Forenc

System plików przykłady implementacji

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

Pytania do treści wykładów:

Działanie systemu operacyjnego

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

Systemy Operacyjne Pamięć wirtualna cz. 2

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

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

Systemy operacyjne system przerwań

Organizacja typowego mikroprocesora

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Podstawy Informatyki Języki programowania c.d.

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Architektura systemu komputerowego

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

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

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

Działanie systemu operacyjnego

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

Mikrokontroler ATmega32. Język symboliczny

Algorytm. a programowanie -

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

Sprzętowe wspomaganie pamięci wirtualnej

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

Podstawy programowania

Programowanie współbieżne Wykład 2. Iwona Kochańska

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

Architektura systemów informatycznych

16MB - 2GB 2MB - 128MB

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

KOMPONENTY SYSTEMÓW OPERACYJNYCH

4. Procesy pojęcia podstawowe

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Systemy operacyjne III

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Podstawy. Pamięć wirtualna. (demand paging)

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

Programowanie niskopoziomowe

Systemy Operacyjne Pamięć wirtualna cz. 1

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

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

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Transkrypt:

Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci Obraz procesu w pamięci Stronicowania Segmentacja () Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych i programów. Z punktu widzenia systemu pamięć jest zasobem o strukturze hierarchicznej (począwszy od rejestrów procesora, przez pamięć podręczną, pamięć główną, skończywszy na pamięci masowej), w której na wyższym poziomie przechowywane są dane, stanowiące fragment zawartości poziomu niższego. Z punktu widzenia procesu (również procesora) pamięć jest zbiorem bajtów identyfikowanych przez y, czyli tablicą bajtów, w której y są indeksami. (3)

Hierarchia pamięci taśma rejestry pamięć podręczna pamięć główna dysk magnetyczny dysk optyczny pamięć I rzędu (ang. primary) pamięć II rzędu (ang. secondary) (4) Przestrzeń owa Przestrzeń owa jest zbiór wszystkich dopuszczalnych ów w pamięci. W zależności od charakteru u odróżnia się: przestrzeń fizyczną zbiór ów przekazywanych do układów pamięci głównej (fizycznej). przestrzeń logiczną zbiór ów generowanych przez procesor w kontekście aktualnie wykonywanego procesu. (5) Adres logiczny i fizyczny logiczny jednostka zarządzania pamięcią (MMU) jednostka owa szyna owa fizyczny jednostka arytmetycznologiczna (ALU) rejestry PROCESOR jednostka sterująca (6)

Przykład odwzorowania u logicznego na fizyczny rejestr przemieszczenia pamięć 4 procesor logiczny 5 + fizyczny 49 jednostka zarządzania pamięcią (MMU) (7) Przykład weryfikacji poprawności u rejestr graniczny 56 rejestr przemieszczenia 4 pamięć błąd programowy N < T logiczny + fizyczny MMU procesor (8) Podział pamięci Podział stały partycje o równym rozmiarze partycje o różnych rozmiarach Podział dynamiczny Podział na bloki bliźniacze (zwany też metodą sąsiedzkich stert) (9) 3

Ogólny obraz pamięci fizycznej xfff... jądro systemu operacyjnego przestrzeń dla procesów użytkowników przestrzeń dla procesów użytkowników jądro systemu operacyjnego tab. wektorów przerwań przestrzeń dla procesów użytkowników jądro systemu () Fragmentacja Fragmentacja wewnętrzna pozostawienie niewykorzystywanego fragmentu przestrzeni owej wewnątrz przydzielonego obszaru (formalnie fragment jest zajęty, w rzeczywistości nie jest wykorzystany) Fragmentacja zewnętrzna podział obszaru pamięci na rozłączne fragmenty, które nie stanowią ciągłości w przestrzeni owej (może to dotyczyć zarówno obszaru wolnego, jak i zajętego) () Fragmentacja zewnętrzna () 4

Fragmentacja wewnętrzna zapotrzebowanie przydział obszar nie wykorzystany (3) Podział stały Podział pamięci na stałe obszary (strefy, partycje), których rozmiar i położenie ustalane są na etapie konfiguracji systemu. Przydział całego obszaru o rozmiarze większym lub równym zapotrzebowaniu, określonym w żądaniu. Zalety: łatwość implementacji i zarządzania Wady: słaba efektywność wykorzystania pamięci (fragmentacja wewnętrzna, ograniczona odgórnie liczba jednocześnie przydzielonych partycji). (4) Podział stały partycje o równym rozmiarze jądro systemu obraz przed przydziałem obraz po przydziale (5) 5

Podział stały problem zbyt małych partycji jądro systemu nakładki (6) Nakładkowanie jądro systemu część stała sekcja nakładkowania (7) Podział stały partycje o różnych rozmiarach jądro systemu? (8) 6

Podział dynamiczny Podział pamięci tworzony jest w czasie pracy systemu stosownie do żądań procesów. Proces ładowany jest w obszar o rozmiarze dosyć dokładnie odpowiadającym jego wymaganiom. Zalety: lepsze wykorzystanie pamięci (brak fragmentacji wewnętrznej) Wady: skomplikowane zarządzanie, wynikające z konieczności utrzymywania odpowiednich struktur danych w celu identyfikacji obszarów zajętych oraz wolnych. (9) Obraz pamięci przy podziale dynamicznym obraz przed przydziałem obraz po przydziale () Podział dynamiczny problem wyboru bloku Pierwsze dopasowanie (ang. first fit) przydziela się pierwszy wolny obszar (tzw. dziurę) o wystarczającej wielkości. Poszukiwanie kończy się po znalezieniu takiego obszaru. Najlepsze dopasowanie (ang. best fit) przydziela się najmniejszy dostatecznie duży wolny obszar pamięci. Konieczne jest przeszukanie wszystkich dziur. Następne dopasowanie podobnie jak pierwsze dopasowanie, ale poszukiwania rozpoczyna się do miejsca ostatniego przydziału. Najgorsze dopasowanie (ang. worst fit) przydziela się największy wolny obszar pamięci. Konieczne jest przeszukanie wszystkich dziur. () 7

Pierwsze dopasowanie kierunek przeszukiwania () Najlepsze dopasowanie (3) Najgorsze dopasowanie (4) 8

System bloków bliźniaczych Pamięć dostępna dla procesów użytkownika ma rozmiar U. Przydzielany blok ma rozmiar K, gdzie L K U. Początkowo dostępny jest jeden blok o rozmiarze U. Realizacja przydziału obszaru o rozmiarze s polega na znalezieniu lub utworzeniu (przez połowienie) bloku o rozmiarze i takim, że i < s i. (5) System bloków bliźniaczych przykład 56 KB 5 KB 5KB 5KB 56 KB MB 56 KB 56 KB 56 KB 56 KB kolejne żądania przydziału 8K 8 KB 8 KB 8 KB 8 KB 8 KB KB 4 KB 64 KB 5 KB (6) Obraz procesu w pamięci Tworzenie obrazu Kompilacja Konsolidacja Ładowanie kodu Relokacja Ochrona Współdzielenie (7) 9

Tworzenie obrazu procesu program program program źródłowy źródłowy źródłowy translator konsolidacja statyczna moduł wynikowy moduł wynikowy moduł wynikowy konsolidator konsolidacja dynamiczna w czasie ładowania moduł biblioteczny moduł biblioteczny moduł biblioteczny program ładowalny mechanizm ładowania mechanizm łączenia dynamicz. obraz w pamięci operac. program wykonywany (8) Wiązanie i przekształcanie ów W modelu von Neumana y dotyczą rozkazów (instrukcji) oraz zmiennych (danych). Jeśli w programie źródłowym występują y, to mają one najczęściej postać symboliczną (etykiety w asemblerze) lub abstrakcyjną (wskaźniki w C lub Pascalu). Adresy związane z lokalizacją pojawiają się na etapie translacji i są odpowiednio przekształcane aż do uzyskania ów fizycznych. (9) Translacja W wyniku translacji (kompilacja, asemblacja) powstaje przemieszczalny moduł wynikowy (relocatable object module), w którym wszystkie y liczone są względem u początku modułu. Gdyby program składał się z jednego modułu, a jego docelowa lokalizacja w pamięci była z góry znana, na etapie translacji mogłyby zostać wygenerowane y fizyczne. (3)

Konsolidacja Konsolidacja statyczna odniesienia do innych modułów zamieniane są na y w czasie tworzenia programu wykonywalnego. Konsolidacja dynamiczna w czasie ładowania w czasie ładowania programu następuje załadowanie modułów bibliotecznych i związanie odpowiednich ów, w czasie wykonania załadowanie modułów bibliotecznych i związanie ów następuje dopiero przy odwołaniu się do nich w czasie wykonywania programu. (3) Konsolidacja statyczna W czasie łączenia modułów przemieszczalnych w jeden program ładowalny zwany też modułem absolutnym (ang. absolute module), do ów przemieszczalnych dodawane są wartości, wynikające z przesunięcia danego modułu przemieszczalnego względem początku modułu absolutnego. Gdyby docelowa lokalizacja programu w pamięci była z góry znana, na etapie tym mogłyby zostać wygenerowane y fizyczne. (3) Ładowanie kodu () blok kontrolny kod dane kod dane stos plik z programem ładowalnym pamięć operacyjna (33)

Ładowanie kodu () Ładowanie absolutne program ładowany jest w ustalone miejsce w pamięci, znane w momencie tworzenia programu ładowalnego. Ładowanie relokowalne fizyczna lokalizacja procesu ustalana przy ładowaniu do pamięci. Ładowanie dynamiczne w czasie wykonania fizyczna lokalizacja procesu w pamięci może ulec zmianie w czasie wykonywania. (34) Współdzielenie pamięci Efektywność wykorzystania pamięci współdzielenie kodu programu współdzielenie kodu funkcji bibliotecznych Kooperacja procesów synchronizacja działań procesów komunikacja pomiędzy procesami (współdzielenie danych) (35) Ochrona pamięci Weryfikacja poprawności u pod kątem zakresu dopuszczalności Weryfikacja praw dostępu: prawa zapisu prawa odczytu prawa wykonania (36)

Stronicowanie Arbitralny podział pamięci fizycznej na ramki, w które ładowane są odpowiednie strony obrazu procesu. Podział logicznej przestrzeni owej na strony o takim samym rozmiarze, jak ramki w pamięci fizycznej. Zalety: brak problemu fragmentacji zewnętrznej, wspomaganie dla współdzielenia i ochrony pamięci. Wady: narzut czasowy przy transformacji u, narzut pamięciowy (na potrzeby tablicy stron), fragmentacja wewnętrzna (niewielka). (37) Stronicowanie transformacja u Adres logiczny zawiera numer strony i przesunięcia na stronie (ang. offset), np.: nr strony ( bity) przesunięcie ( bitów) Transformacja u polega na zastąpieniu numeru strony numerem ramki. Odwzorowanie numeru strony na numer ramki wykonywane jest za pomocą tablicy stron (ang. page table). (38) Schemat transformacji u w systemie pamięci stronicowanej procesor logiczny p o pamięć p f o o fizyczny f p numer strony f numer ramki o przesunięcie tablica stron (39) 3

Przykład odwzorowania stron w ramki a b c 3 d 4 e 5 f 6 g 7 h 8 i 9 j k l strony g: logiczny = 6 ( ) fizyczny = ( ) 3 3 tablica stron i j k 3 l 4 5 6 7 8 e 9 f g h a 3 b 4 c 5 d ramki 3 (4) Bufory translacji ów stron (TLB) procesor logiczny p o pamięć bufory TLB o f o fizyczny p numer strony f numer ramki o przesunięcie p f tablica stron (4) Stronicowanie wielopoziomowe nr strony zewnętrznej nr strony wewnętrznej przesunięcie na stronie zewnętrzna tablica stron p wewnętrzna tablica stron p ramka pamięci o p p o (4) 4

Segmentacja Przestrzeń ów logicznych jest postrzegana jako zbiór segmentów. Podstawowe atrybuty segmentu: identyfikator, bazowy, rozmiar, informacja o rodzaju zawartości i formach dostępu. Adres logiczny składa się z numeru segmentu i przesunięcia wewnątrz segmentu. Odwzorowanie ów logicznych w fizyczne zapewnia tablica segmentów. (43) Schemat owania z segmentacją tablica segmentów s granica baza pamięć błąd program. N < T + fizyczny s o logiczny (44) Schemat owania z segmentacją i stronicowaniem tablica segmentów błąd program. s granica baza tablicy stron pamięć p o fizyczny N < T + f f o s a logiczny (45) 5

Współdzielenie pamięci przy rozdzieleniu fizycznej i logicznej przestrzeni owej a b c 3d 4e 5 f 6g 7h e f g 3h 4 i 5 j 6k 7 l 3 3 tablica odwzorowania 3 tablica odwzorowania i j k 3 l 4 M 7 8 e 9 f g h a 3 b 4 c 5 d 3 przestrzeń fizyczna przestrzeń logiczna (46) 6