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



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

Zarządzanie pamięcią operacyjną

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

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

Zarządzanie pamięcią operacyjną

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

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

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

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:

Zarządzanie zasobami pamięci

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

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Zarządzanie pamięcią w systemie operacyjnym

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

Paweł Skrobanek. C-3, pok

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

SYSTEMY OPERACYJNE WYKLAD 5 - zarządzanie pamięcią pomocniczą

Technologie informacyjne (2) Zdzisław Szyjewski

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Systemy operacyjne III

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

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

Sprzętowe wspomaganie pamięci wirtualnej

Współpraca procesora ColdFire z pamięcią

Architektura komputerów

Stronicowanie w systemie pamięci wirtualnej

dr inż. Jarosław Forenc

Systemy Operacyjne Pamięć wirtualna cz. 2

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

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

Mikroinformatyka. Tryb wirtualny

Podstawowe zagadnienia informatyki

Zarz arz dzanie pam dzanie ięci ę ą

Mikroprocesory rodziny INTEL 80x86

Pytania do treści wykładów:

Schematy zarzadzania pamięcia

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

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

Systemy Operacyjne Zarządzanie pamięcią operacyjną

dr inŝ. Jarosław Forenc

dr inż. Jarosław Forenc

Zarz¹dzanie pamiêci¹

Architektura systemów informatycznych

dr inż. Jarosław Forenc

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

Mikroinformatyka. Wielozadaniowość

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

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

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

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

Zarz arz dzanie pam dzanie ięci ę ą

WOJSKOWA AKADEMIA TECHNICZNA

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

Od programu źródłowego do procesu

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Zarządzanie pamięcią operacyjną

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)

14. Elementy systemu wykonawczego

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Hierarchia pamięci w systemie komputerowym

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

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]

System pamięci. Pamięć wirtualna

TEMAT 5 Zarządzanie pamięcią operacyjną

Systemy operacyjne Zarządzanie pamięcią

Wykład 10 Zarządzanie pamięcią

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

ARCHITEKTURA PROCESORA,

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

4. Procesy pojęcia podstawowe

Działanie systemu operacyjnego

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

Architektura systemów informatycznych

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

1.1 Definicja procesu

Działanie systemu operacyjnego

Architektura systemu komputerowego

Architektura komputera typu PC z procesorem IA-32

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Adam Kotynia, Łukasz Kowalczyk

1. Rola pamięci operacyjnej

Działanie systemu operacyjnego

KOMPONENTY SYSTEMÓW OPERACYJNYCH

Programowanie w asemblerze Linkowanie

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Integracja systemów transakcyjnych

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

Organizacja zarządzania pamięcią. Systemy operacyjne / Zarządzanie pamięcią str.4/59. Zarządzanie pamięcią. Funkcje systemu operacyjnego

Projektowanie. Projektowanie mikroprocesorów

4. Procesy pojęcia podstawowe

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

1 Instalowanie i uaktualnianie serwera SQL Server

Transkrypt:

Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna stronicowanie segmentacja stronicowanie + segmentacja 2 zarządzanie pamięcią operacyjną realizacja software owa wspomagana sprzętowo > system operacyjny + platforma sprzętowa, model pamięci typowo: wielka tablica oznaczona adresami od 0, złoŝona z komórek o wielkości bajta, jeśli w pamięci moŝna umieścić kilka procesów na raz, to konieczność zarządzania współdzieleniem pamięci, ochroną dostępu, itp. 3 1

PAMIĘĆ WIRTUALNA RZECZYWISTA procesy mogą widzieć więcej dostępne tyle pamięci, ile jest fizycznie pamięci, niŝ posiadamy fizycznie, konieczne zastosowanie odpowiednich mechanizmów STRONICOWANIE SEGMENTACJA STRONICOWANIE + SEGMENTACJA 4 STATYCZNY (static memory allocation) przydział (zaplanowanie) obszarów pamięci w procesie kompilacji (przed wykonaniem programu) PRZYDZIAŁ PAMIĘCI DYNAMICZNY (dynamic memory allocation) moŝliwy przydział /zwalnianie w trakcie wykonywania programu AUTOMATYCZNY (automatic memory allocation) alokacja miejsca przy wprowadzaniu programu do pamięci i zwalnianie przy usuwaniu 5 PAMIĘĆ operacyjna podręczna (cache) BIOS (flasheprom) L1 (Level 1) L2 (Level 2) L3 (Level3) 6 2

Zad.1. Do czego to słuŝy i jak ustawić: System BIOS Cacheable, Video BIOS Cacheable, AGP Aperture Size. 7 Etapy przetwarzania programu Program źródłowy Moduł wynikowy kompilacja Biblioteki Inne moduły konsolidacja Moduł ładowalny Obraz binarny w PO ładowanie Biblioteka systemowa Biblioteki ładowane dynamicznie 8 kod bezwzględny (ang. absolute code) z podanymi adresami PO, kod przemieszczalny kod przemieszczalny (ang. relocatable code) kod przemieszczalny adresy ustalane względem bazy podczas ładowania, 9 3

Adresy: logical address adres logiczny (widziany w obszarze zadania), physical address adres fizyczny ( komórka pamięci operacyjnej 1000 20 1020 10 Pytanie: w jakich sytuacjach adres logiczny moŝe być równy adresowi fizycznemu? 11 2. Pamięć rzeczywista Pamięć rzeczywista systemy jednoprogramowe program musi zmieścić się w pamięci, załadowanie przy uruchomieniu lub poprzez zapis w pamięci programowalnej. systemy wieloprogramowe a) podział zmienny tyle, ile zarządał proces, skomplikowane zarządzanie. b) podział stały (statyczny), podział na stałe części w momencie ładowania SO kolejki do bszarów, ze stałymi lub zmiennymi partycjami 12 4

2. Pamięć rzeczywista Metody przydzielania bloków pamięci: First Fit pierwszy pasujący (szybki, ale duŝa fragmentacja pamięci), np. Best Fit najlepszego dopasowania (wolniejszy, dobre wykorzystanie pamięci), Quick Fit najszybszego dopasowania (np. dodatkowa tablica typowych rozmiarów bloków), Worst Fit najgorszego dopasowania, Heap-based przydział w postaci obszarów o organizacji w postaci sterty 13 2. Pamięć rzeczywista Metody przydzielania bloków pamięci: Buddy algorytm zmodyfikowana wersja First Fit (opis np.: http://rainbow.mimuw.edu.pl/so/lablinux/pamiec/podt EMAT_6/opis.html ) więcej informacji o algorytmach: http://www.osdcom.info/content/view/31/39/ lub http://en.wikipedia.org/wiki/dynamic_memory_allocation 14 3. Pamięć wirtualna Maksymalna pamięć widziana przez pojedyncze zadanie (dla niego fizyczna ) jest odzwierciedlana w obszary pamięci fizycznej (której moŝe być znacznie mniej). Metody: stronicowanie, segmentacja, segmentacja + stronicowanie 15 5

3. Pamięć wirtualna Maksymalna pamięć widziana przez pojedyncze zadanie (dla niego fizyczna ) jest odzwierciedlana w obszary pamięci fizycznej (której moŝe być znacznie mniej). Metody: stronicowanie, segmentacja, segmentacja + stronicowanie 16 przestrzeń adresowa zadania podzielona jest na równe części zwane stronami (ang. pages), pamięć fizyczna podzielona jest na części takiej samej wielkości zwane ramami (ang. frames), strony są przyległe, ramy mogą być rozproszone w pamięci, rozmiar strony jest zazwyczaj określony przez sprzęt (typowo o wielkości od 512 B do 16 MB rozmiary o wielkości 2 m ) 17 Adres logiczny Adres fizyczny procesor s o r o s numer strony, r numer ramy, o przesynięcie, odlegość (offset) r Tablica stron Pamięć operacyjna 18 6

Pamięć logiczna Str. 0 Str. 1 Str. 2 0 1 1 5 2 4 Tablica stron Pamięć fizyczna 0 1 Str. 0 2 3 4 Str. 1 5 Str. 2... 19 dobre wykorzystanie pamięci (fragmentacja tzw. zewnętrzna praktycznie brak), dłuŝszy czas dostępu oraz złoŝony mechanizm adresowania (zazwyczaj SO przydziela tablicę stron do kaŝdego zadania), niewykorzystanie całej przydzielonej pamięci do zadania (tzw. fragmentacja wewnętrzna) zawsze przydzielamy z dokładnością do strony; jeśli strona 16 kb, a zadanie 18 kb, to zajmie 32 kb 20 ochrona dostępu np. poprzez bit poprawności (ang. valid-invalid bit) 0 1 p 5 p 0 n Tablica stron PTLR (ang. page table length register) rejestr długości tablicy stron słuŝący do sprawdzania, czy dany adres naleŝy do przedziału dozwolonego dla procesu (czy nie wykraczamy poza naszą przestrzeń adresową) 1 2 21 7

stronicowanie hierarchiczne z dwupoziomową tablicą stron - podział tablicy stron na strony, strony dzielone wykorzystanie stron z kodem wznawialnym (ang. reentrand code) przez kilka procesów, np. jeśli pracujemy na kilku dokumentach w jednym edytorze, to nie ma potrzeby kilka razy ładować go w całości do pamięci, inne aspekty Silberschatz, Podstawy systemów operacyjnych 22 3. Pamięć wirtualna - segmentacja schemat zarządzania odzwierciedlający sposób patrzenia na pamięć przez uŝytkownika, Pytanie: Jakie części programu widzi programista w PASCAL u? kaŝdy segment ma nazwę i długość, adresy określają segment i przesunięcie w segmencie, w systemie jest tablica segmentów (ang. segment table) rola podobna do tablicy stron 23 3. Pamięć wirtualna - segmentacja procesor Pułapka błąd adresowania s o N < T + s numer segmentu, a adres bazowy, d a Tablica segmentów g granica (długość) o przesynięcie, odlegość (offset) Pamięć operacyjna 24 8

3. Pamięć wirtualna - segmentacja Zadanie: - proszę rozmieścić w pamięci operacyjnej segmenty (zgodnie z tablicą segmentów) 0 1 2 3 1000 1300 400 6500 400 4000 1100 4400 Tablica segmentów 25 3. Pamięć wirtualna - segmentacja łatwiejsza implementacja programu, moŝliwość współdzielenia segmentów (np. zawierających biblioteki, współdzielony program), fragmentacja pamięci zaleŝna od wielkości segmentu, Pytanie: Jakie są zalety i wady rozwiązań: 1) cały proces to jeden segment, 2) wielkość segmentu to 1B 26 3. Pamięć wirtualna stron. + segm. segmenty z których składa się program dzielone są na strony, adres bazowy w tablicy segmentu określa adres bazowy tablicy stron dla danego segmentu 27 9

3. Pamięć wirtualna stron. + segm. mechanizm patrz materiały ksero LDT (local descriptor table) lokalna tablica deskryptorów, zawiera informacje o prywatnych segmentach procesu, GDT (global descriptor table) globalna tablica deskryptorów, zawiera informację o segmentach wspólnych dla wszystkich procesów 28 3. Pamięć wirtualna stron. + segm. eliminacja fragmentacji rozmieszczenie segmentów w róŝnych obszarach PO oraz fakt, iŝ segment nie musi być ciągły, wirtualność pamięci całkowita długość programu moŝe przekraczać długość pamięci fizycznej, moŝliwość współdzielenia obszarów pamięci (wykorzystanie segmentów przez róŝnych uŝytkowników), moŝliwość ochrony danych (np. zaznaczenie segmentów jako R, W, E) 29 3. Pamięć wirtualna stron. + segm. wzrost kosztów sprzętu (np. dodatkowe rejestry), zuŝycie czasu procesorana obsługę tablic oraz odwzorowania adresów logicznych w fizyczne, trudniejsza kontrola poprawności kodu (czy SO + program) nie zawieszą się istotne np. w systemach czasu rzeczywistego (nawet rezygnacja z trybów wirtualnych procesora ze względu na bezpieczeństwo) 30 10