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

Podobne dokumenty
Planowanie przydziału procesora

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

Planowanie przydziału procesora

Zarządzanie procesami i wątkami

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

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Planowanie przydziału procesora

Zarządzanie pamięcią operacyjną

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Zarządzanie procesorem

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

Zarządzanie pamięcią w systemie operacyjnym

Planowanie przydziału procesora

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Zarządzanie pamięcią operacyjną

KOMPONENTY SYSTEMÓW OPERACYJNYCH

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

4. Procesy pojęcia podstawowe

Stronicowanie w systemie pamięci wirtualnej

Systemy Operacyjne - zarządzanie procesami

Materiały pomocnicze 1

Systemy operacyjne III

dr inż. Jarosław Forenc

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

4. Procesy pojęcia podstawowe

Pytania do treści wykładów:

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

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

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

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Planowanie przydziału procesora

Logiczny model komputera i działanie procesora. Część 1.

Systemy Operacyjne Zarządzanie pamięcią operacyjną

Architektura komputerów

Celem wykładu jest przedstawienie zagadnień planowania przydziału procesora, czyli szeregowania procesów w dostępie do procesora.

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

Systemy Operacyjne Pamięć wirtualna cz. 2

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

Zarządzanie zasobami pamięci

Informatyka, systemy, sieci komputerowe

Przykłady implementacji planowania przydziału procesora

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

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

Planowanie przydziału procesora

4. Procesy pojęcia podstawowe

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

Pamięć wirtualna. A gdyby tak w pamięci przebywała tylko ta część programu, która jest aktualnie wykonywana?

Systemy operacyjne III

Prezentacja systemu RTLinux

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

Systemy operacyjne, architektura komputerów

Planowanie przydziału procesora

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Organizacja typowego mikroprocesora

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Mikroprocesor Operacje wejścia / wyjścia

projektowanie systemu

Procesy, wątki i zasoby

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

1.1 Definicja procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

dr inż. Jarosław Forenc

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb

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

ARCHITEKTURA PROCESORA,

Jądro systemu operacyjnego

Od programu źródłowego do procesu

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

Materiały pomocnicze 1

Zarz arz dzanie pam dzanie ięci ę ą

1. Rola pamięci operacyjnej

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

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

Proces y i y w i ąt ą ki

Architektura komputerów

Systemy operacyjne. Paweł Pełczyński

Zarz arz dzanie pam dzanie ięci ę ą

16MB - 2GB 2MB - 128MB

System plików. Warstwowy model systemu plików

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Analiza ilościowa w przetwarzaniu równoległym

Podstawowe zagadnienia informatyki

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Transkrypt:

Plan prezentacji Spis treści 1 Planowanie przydziału procesora 1 1.1 Wstęp................................................... 1 1.2 Kryteria planowania............................................ 2 1.3 Algorytmy planowania.......................................... 4 1.4 Systemy wieloprocesorowe i czasu rzeczywistego............................ 9 2 Zarzadzanie pamięcia 11 2.1 Wstęp................................................... 11 2.2 Wymiana................................................. 13 2.3 Przydział ciągły pamięci......................................... 14 2.4 Stronicowanie i segmentacja....................................... 17 2.4.1 Stronicowanie........................................... 17 2.4.2 Segmentacja........................................... 18 2.4.3 Segmentacja ze stronicowaniem................................. 20 1 Planowanie przydziału procesora 1.1 Wstęp Wprowadzenie Pierwsze komputery: Działa jedno zadanie Operator szereguje zadania W trakcie operacji we/wy procesor jest bezczynny Systemy wieloprogramowe: W systemie jest uruchomionych wiele zadań Lepsze wykorzystanie procesora System musi decydować o przydziale procesora do zadania Cele planowania zadań Organizacja środowiska wieloprogramowego Optymalizacja wykorzystania procesora i sprzętu Zapewnienie pracy współbieżnej i interaktywnej Fazy procesora i wejścia-wyjścia Wykonywanie procesu można podzielić na wykonywane naprzemiennie fazy: fazę procesora proces intensywnie korzysta z procesora fazę wejścia wyjścia proces wykonuje operację wejścia-wyjścia Proces zaczyna się fazą procesora, po której następuje faza wejścia-wyjścia W ostatniej fazie procesora następuje zakończenie procesu 1

Fazy procesora i wejścia-wyjścia Proces ograniczony przez wejście-wyjście będzie miał wiele, bardzo krótkich faz procesora Proces ograniczony przez procesor będzie miał długie fazy procesora, ale będzie ich mało Większość procesów ma bardzo krótkie fazy procesora Planowanie zadań Decyzję o przydziale procesora można podejmować w następujących wypadkach: 1. Proces przeszedł w stan oczekiwania 2. Proces zakończył zadanie 3. Proces przeszedł ze stanu aktywności w stan gotowości (np. po przerwaniu) 4. Proces przeszedł ze stanu oczekiwania w stan gotowości (np. po zakończeniu operacji we/wy) Planowanie zadań Planowanie niewywłaszczajace Jeżeli wybór procesu do wykonywania zachodzi tylko w przypadkach 1 i 2, tj. przy przejściu procesu w stan oczekiwania lub jego zakończeniu, to mówimy o planowaniu niewywłaszczajacym. Planowanie z wywłaszczeniem Jeżeli dopuszcza się przydział procesora innemu zadaniu po wystąpieniu innych zdarzeń (przerwanie, zakończenie operacji we/wy), to mówimy o planowaniu wywłaszczajacym. Pojęcia Planista krótkoterminowy (short-term scheduler) podejmuje decyzję, który z oczekujących procesów jako następny powinien mieć przydzielony procesor Ekspedytor (dyspozytor, dispatcher) moduł, w którego gestii są działania związane z przełączaniem procesów: wstrzymanie procesu przełączanie kontekstu wznowienie procesu 1.2 Kryteria planowania Kryteria planowania Wykorzystanie procesora Przepustowość Długość cyklu przetwarzania Czas oczekiwania Czas odpowiedzi (reakcji) Zwykle wykorzystuje się z kryteria złożone, uwzględniające różne czynniki. 2

Kryteria planowania Wykorzystanie procesora Procent czasu procesora wykorzystany na wykonywanie zadań. Dotyczy całego systemu Może zależeć od charakteru wykonywanych zadań Typowo mieści się w przedziale 40 90% Dąży się do maksymalizacji Kryteria planowania Przepustowość Liczba procesów zakończonych w jednostce czasu. Dotyczy całego systemu Ściśle zależy od charakteru wykonywanych zadań Dąży się do maksymalizacji Kryteria planowania Długość cyklu przetwarzania Czas od nadejścia procesu do jego zakończenia. Obejmuje czas oczekiwania na przydział procesora, operacji wejścia wyjścia oraz przetwarzania Zależy od charakteru wykonywanego zadania Dąży się do minimalizacji Kryteria planowania Czas oczekiwania Łączny czas oczekiwania procesu w stanie gotowy. Zależy od warunków pracy systemu Najbardziej obiektywny Dąży się do minimalizacji Kryteria planowania Czas odpowiedzi Czas pomiędzy wysłaniem żądania a początkiem odpowiedzi na nie. Obejmuje czas przetwarzania Zależy od charakteru wykonywanego zadania Minimalizacja wartości średniej Korzystna mała wariancja 3

Sensowny i przewidywalny czas odpowiedzi Ostatni warunek ( Sensowny i przewidywalny czas odpowiedzi sprowadza się do sumy dwóch poprzedzających. Sensowność czasu odpowiedzi sprowadza się do akceptowalnego średniego czasu odpowiedzi. Przewidywalność czasu odpowiedzi skorelowana jest z wariancją czasu odpowiedzi. Wariancja jest miarą zmienności parametru intuicyjnie można ją kojarzyć z rozrzutem wartości cechy wokół średniej (zgrabną ścisłą definicję można znaleźć np. w Wikipedii). Mała wariancja oznacza, że czas odpowiedzi systemu jest zwykle zbliżony do wartości średniej, a więc w odczuciu użytkownika czas odpowiedzi jest przewidywalny. 1.3 Algorytmy planowania Algorytmy planowania przydziału procesora FCFS (Pierwszy zgłoszony - pierwszy obsłużony) SJF (Najpierw najkrótsze zadanie) Planowanie priorytetowe Planowanie karuzelowe (rotacyjne) Wielopoziomowe planowanie kolejek Algorytm Pierwszy zgłoszony pierwszy obsłużony Zgłoszenia obsługiwane są w kolejności nadchodzenia Czas oczekiwania zależy od kolejności obsługi zgłoszeń Algorytm niewywłaszczający Algorytm Pierwszy zgłoszony pierwszy obsłużony Przykład praktyczny Przykład praktyczny Trzy procesy: P1 ma fazę procesora o długości 24ms P2 i P3 mają fazę procesora o długości 3ms Procesy nadchodzą do kolejki w chwili 0 w różnej kolejności: P1, P2, P3 P2, P3, P1 Jaki będzie średni czas oczekiwania? 4

Algorytm Pierwszy zgłoszony pierwszy obsłużony Przykład praktyczny Kolejność wykonanie P1, P2, P3 Średni czas oczekiwania: (0 + 24 + 27)/3 = 17ms Kolejność wykonania P2, P3, P1 Średni czas oczekiwania: (0 + 3 + 6)/3 = 3ms Najpierw najkrótsze zadanie (SJF) Najpierw wykonywane jest najkrótsze zadanie (najkrótsza faza procesora) Algorytm optymalny Pod uwagę powinna być brana długość następnej fazy procesora: brak możliwości dokładnego określenia szacowanie na podstawie dotychczasowego zachowania procesu Najpierw najkrótsze zadanie (SJF) Szacowanie czasu trwania następnej fazy procesora Średnia długość dotychczasowych faz procesora Średnia wykładnicza τ n+1 = αt n + (1 α)τ n t n τ n długość poprzedniej fazy procesora prognozowana długość poprzedniej fazy procesora (historia) α współczynnik określający wpływ długości poprzedniej fazy procesora na wynik Najpierw najkrótsze zadanie (SJF) SJF bez wywłaszczenia proces jest dodawany do puli procesów gotowych bieżący proces nie jest przerywany nowy proces jest uwzględniany przy wyborze następnego procesu SJF z wywłaszczeniem (najpierw najkrótszy pozostały czas) proces jest dodawany do puli procesów gotowych jeśli czas wykonania procesu jest krótszy niż pozostały czas wykonania bieżącego procesu proces bieżący jest wywłaszczany 5

Najpierw najkrótsze zadanie (SJF) Przykład praktyczny Przykład Cztery procesy przychodzą do wykonania: Proces Czas przybycia Czas trwania fazy P 1 0 8 P 2 1 4 P 3 2 9 P 4 3 6 Przy stosowaniu algorytmu FCFS średni czas oczekiwania wynosi 11.25ms Jakie będą czasy oczekiwania dla różnych wariantów algorytmu SJF? Najpierw najkrótsze zadanie (SJF) Przykład praktyczny Bez wywłaszczania Średni czas oczekiwania: (0 + (8 1) + (17 2) + (12 3))/4 = 7.75ms Z wywłaszczaniem Średni czas oczekiwania: ((0 + 10 1) + (1 1) + (17 2) + (5 3))/4 = 6.5ms Planowanie priorytetowe Każdemu procesowi przydzielany jest priorytet Procesy są wykonywane w kolejności mającego priorytetu Priorytet wyrażany jest liczbowo: zwykle liczba całkowita znaczenie liczb jest umowne, najmniejsza liczba może oznaczać najwyższy priorytet Planowanie może odbywać się z wywłaszczeniem lub bez Planowanie priorytetowe Priorytet wewnętrzny Przy ustalaniu priorytetu brane pod uwagę są właściwości procesu: limit czasu średnia długość fazy procesora Priorytet zewnętrzny Priorytet ustalany jest na podstawie kryteriów zewnętrznych dla systemu operacyjnego: ważność procesu osoba, dla której proces jest wykonywany 6

Planowanie priorytetowe Planowanie priorytetowe może prowadzić do zagłodzeń: proces o niskim priorytecie może nie dostać czasu procesora postarzanie procesu stopniowe podwyższanie priorytetu w miarę upływu czasu Algorytm SJF jest algorytmem priorytetowym: priorytet jest odwrotnością długości następnej fazy procesora im dłuższa faza procesora tym niższy priorytet Planowanie rotacyjne Procesy umieszczane są w kolejce, wg. algorytmu FCFS Proces jest wykonywany przez pewien krótki czas (kwant czasu): jeśli zakończył fazę procesora jest usuwany z kolejki jeśli nie skończył fazy procesora jest wywłaszczany i przenoszony na koniec kolejki Planowanie rotacyjne jest zawsze wywłaszczające Inna nazwa algorytm karuzelowy, dla małych kwantów czasu dzielenie procesora Planowanie rotacyjne Przykład Trzy procesy: P 1 czas trwania fazy procesora 24ms P 2 i P 3 czas trwania fazy procesora 3ms Planowanie karuzelowe, kwant czasu 4ms Średni czas oczekiwania: (6 + 4 + 7)/3 = 5.66ms Planowanie rotacyjne Wraz ze wzrostem długości kwantu czasu zbliżamy się do algorytmu FCFS Spadek długości kwantu czasu powoduje częstsze przełączanie kontekstu Typowa długość kwantu czasu 10 do 100ms: krótszy kwant czasu lepsze wrażenie współbieżności dłuższy kwant czasu rzadsze przełączanie kontekstu Wskazane by kwant czasu był długi w porównaniu do czasu przełączania kontekstu 7

Wielopoziomowe planowanie kolejek Procesy podzielone są na kategorie: procesy systemowe procesy pierwszoplanowe procesy drugoplanowe Każda kategoria ma własną kolejkę procesów gotowych Każda kolejka ma przypisany priorytet procesy systemowe mają najwyższy priorytet procesy drugoplanowe mają priorytet najniższy Procesy z kolejek o wyższym priorytecie mają pierwszeństwo Wielopoziomowe planowanie kolejek Rysunek 1: Wielopoziomowe planowanie kolejek Wielopoziomowe kolejki ze sprzężeniem zwrotnym W klasycznych kolejkach wielopoziomowych proces nie może być przeniesiony do innej kolejki Prosta implementacja Mała elastyczność Planowanie wielopoziomowych kolejek ze sprzężeniem zwrotnym likwiduje te niedogodności Uogólnienie algorytmów planowania Największy stopień złożoności 8

Wielopoziomowe kolejki ze sprzężeniem zwrotnym System posiada kilka kolejek o coraz niższych priorytetach Kolejka o najniższym priorytecie używa algorytmu FCFS Kolejki o wyższych priorytetach używają algorytmu rotacyjnego Im wyższy priorytet, tym krótszy kwant czasu Wszystkie procesy pierwotnie przypisywane są do kolejki o najwyższym priorytecie Jeśli proces wykona swoją fazę w przydzielonym mu kwancie czasu, pozostaje w kolejce, w przeciwnym wypadku zostaje zdegradowany Procesy z kolejek o wyższym priorytecie mają pierwszeństwo Wielopoziomowe kolejki ze sprzężeniem zwrotnym Rysunek 2: Wielopoziomowe planowanie kolejek ze sprzężeniem zwrotnym Wielopoziomowe kolejki ze sprzężeniem zwrotnym Parametry algorytmu: Ilość kolejek Algorytm planowania dla każdej kolejki Warunki awansu i/lub degradacji Zasady pierwotnego przydziału do kolejki 1.4 Systemy wieloprocesorowe i czasu rzeczywistego Planowanie w systemach wieloprocesorowych Wieloprzetwarzanie symetryczne (SMP): wiele, jednakowych procesorów wspólna kolejka zadań do wykonania optymalne wykorzystanie zasobów kłopotliwe korzystanie z zasobów współdzielonych konieczne zapewnienie integralności kolejki zadań 9

Planowanie w systemach wieloprocesorowych Wieloprzetwarzanie asymetryczne: procesory o różnych możliwościach konieczne uwzględnienie możliwości procesorów architektury master-slave jeden procesor organizuje pracę i rozdziela zadania pozostałe procesory wykonują zlecone zadania prosta implementacja nie zawsze pełne wykorzystanie możliwości sprzętu Planowanie w czasie rzeczywistym Rygorystyczne (twarde) systemy czasy rzeczywistego Czas wykonania operacji jest nieprzekraczalny. System musi znać czas wykonywania operacji w systemie Jeśli planista nie jest w stanie zapewnić wymaganego czasu wykonania zadania - odrzuca je Trudne w realizacji Łagodne (miękkie) systemy czasu rzeczywistego Czas wykonania operacji powinien być jak najkrótszy. Proces powinien mieć najwyższy możliwy priorytet Realizowalne w większości systemów operacyjnych Planowanie w czasie rzeczywistym Garść pojęć Problemy planowania w czasie rzeczywistym Opóźnienie ekspedycji Czas od momentu poinformowania planisty o uruchomieniu procesu do momentu jego zadziałania. Wywłaszczenie jądra i funkcji systemowych Inwersja priorytetów Blokowanie przez proces o niskim priorytecie zasobów potrzebnych procesowi o wyższym priorytecie. Protokół dziedziczenia priorytetów 10

2 Zarzadzanie pamięcia 2.1 Wstęp Pamięć Pamięć operacyjna jest tablicą bajtów (słów) posiadających adresy Obok czasu procesora pamięć jest niezbędnym zasobem potrzebnym do wykonywania programów Współbieżne wykonywanie procesów wymaga współdzielenia pamięci Wiazanie adresów Aby móc sięgnąć do pamięci trzeba podać adres W kodzie źródłowym adres jest zapisany symbolicznie (nazwa zmiennej) Wykonywany program musi posługiwać się adresami Wiazanie adresów Proces odwzorowania nazw na adresy komórek pamięci nazywa się wiązaniem adresów Dygresja: od kodu źródłowego do procesu Kod źródłowy zawiera adresy symboliczne nazwy funkcji nazwy zmiennych W trakcie kompilacji adresy są tłumaczone: na adresy bezwzględne kod absolutny na adresy względne kod relokowalny 11

Dygresja: od kodu źródłowego do procesu Kod absolutny Adresy zapisane jako bezwzględne Kod absolutny musi być zawsze ładowany w ten sam obszar pamięci Kod relokowalny Adresy zapisane jako odległość od adresu bazowego Adres bazowy jest ustalany w trakcie ładowania Dygresja: od kodu źródłowego do procesu Jeśli kod programu jest kodem relokowalnym, ostateczne wiązanie adresów odbywa się na etapie ładowania Niektóre systemy dopuszczają relokację na etapie wykonania Logiczna i fizyczna przestrzeń adresowa Adres logiczny Przestrzeń adresowa procesu może być różnie odwzorowywana w pamięci operacyjnej. Z tego powodu proces operuje na adresach logicznych (wirtualnych), które są odwzorowywane w pamięci komputera. Adres fizyczny Rzeczywisty adres komórki pamięci używany przez jednostkę pamięci. Adres logiczny i fizyczny będą jednakowe przy wiązaniu adresów na etapie kompilacji (kod absolutny). 12

Logiczna i fizyczna przestrzeń adresowa Logiczna przestrzeń adresowa Przestrzeń adresowa programu Fizyczna przestrzeń adresowa Przestrzeń adresów fizycznych Jednostka zarzadzania pamięcia Sprzętowe urządzenie odwzorowujące logiczną przestrzeń adresową procesu na adresy fizyczne. Logiczna i fizyczna przestrzeń adresowa Rysunek 3: Odwzorowanie adresów logicznych na pamięć fizyczną Logiczna i fizyczna przestrzeń adresowa Rysunek 4: Przykładowa realizacja jednostki zarządzania pamięcią 2.2 Wymiana Wymiana Aby proces mógł być wykonywany musi znajdować się w pamięci operacyjnej Współbieżnie wykonywane procesy muszą dzielić dostępną pamięć Nieaktywny proces można wysłać do pamięci pomocniczej, by zwolnić pamięć operacyjną dla działających procesów 13

Schemat wymiany Wymiana Potrzebna jest pamięć pomocnicza: szybka pojemna Prędkość działania pamięci pomocniczej ogranicza prędkość przełączania kontekstu czas wymiany powinien być krótki w porównaniu do czasu wykonywania czas wymiany jest proporcjonalny do ilości wymienianych danych dla 1MB danych i dysku o transferze 5MB/sek czas przesłania jest rzędu 210ms Wymiana Ograniczenia Wymianie nie mogą podlegać procesy oczekujące na zakończenie operacji we/wy Jeśli procesy są nierelokowalne muszą być sprowadzone w to samo miejsce w pamięci Niska wydajność We współczesnych systemach wymiana następuje tylko wtedy, gdy brakuje pamięci operacyjnej 2.3 Przydział ciagły pamięci Przydział pamięci Aby proces mógł działać musi mieć przydzieloną pamięć W środowisku wieloprogramowym trzeba zapewnić ochronę pamięci: pamięci systemu operacyjnego pamięci należącej do poszczególnych procesów Z punktu widzenia zarządzania pamięcią najwygodniejszy jest ciągły przydział pamięci 14

Ciagły przydział pamięci Rysunek 5: Ochrona pamięci przy ciągłym przydziale pamięci Ciagły przydział pamięci Metody przydziału Stały podział pamięci na obszary (partycje): proces ma przydzielony jeden z obszarów liczba obszarów jest stała stała liczba procesów w systemie Przydział pamięci w zależności od potrzeb: procesowi przydzielana jest niezbędna ilość pamięci ilość uruchomionych procesów w systemie może się zmieniać Ciagły przydział pamięci Dziura określa się wolny obszar pamięci. 1. Na początku cała wolna pamięć stanowi jedną dziurę 2. Uruchamianym procesom przydzielana jest pamięć z dziur proces dostaje tylko tyle pamięci, ile aktualnie potrzebuje pamięć zostaje przydzielona w wystarczająco dużej dziurze jeśli brak odpowiedniej dziury, proces czeka na zwolnienie pamięci przez inne procesy 3. Zwalniana pamięć tworzy nowe dziury lub jest wliczana w obszar sąsiadujących dziur Strategie przydziału pamięci 1. Pierwsze dopasowanie 2. Najlepsze dopasowanie 3. Najgorsze dopasowanie Strategie przydziału pamięci Pierwsze dopasowanie Przydzielana jest pierwsza znaleziona dziura o wystarczającym rozmiarze Szybkie wyszukiwanie Dobre wykorzystanie pamięci 15

Strategie przydziału pamięci Najlepsze dopasowanie Przydzielane jest miejsce w najmniejszej pasującej dziurze Wymaga przejrzenia całej listy wolnych obszarów pamięci, chyba że jest ona uporządkowana rosnąco Wykorzystanie pamięci porównywalne ze strategią pierwszego dopasowania Strategie przydziału pamięci Najgorsze dopasowanie Przydzielane jest miejsce w największej dostępnej dziurze Wymaga przejrzenia całej listy wolnych obszarów pamięci, chyba że jest ona uporządkowana malejąco Niekorzystne wykorzystanie pamięci Problemy przydziału ciagłego Pomiędzy obszarami pamięci poszczególnych procesów pozostają wolne miejsca może istnieć wystarczająca ilość wolnego miejsca...... ale może ono być poszatkowane na małe kawałki Do którego końca dziury wyrównywać przydzielany obszar pamięci? Reguła 50% W przypadku przedziału według strategii pierwszego dopasowania przydział N bloków pamięci powoduje utratę (w skutek fragmentacji zewnętrznej) 0.5N bloków pamięci Fragmentacja zewnętrzna Fragmentacja zewnętrzna Rozbicie wolnego obszaru na wiele fragmentów, zbyt małych, by je wykorzystać. Środki zaradcze: Upakowanie (defragmentacja) czasochłonna wymaga, by przesuwane zasoby były relokowalne Dopuszczenie przydzielania nieciągłych obszarów pamięci komplikuje zarządzanie pamięci Fragmentacja wewnętrzna Co zrobić, jeśli dostępna dziura jest niewiele większa od wymaganego rozmiaru pamięci? Utrzymanie informacji o wolnym miejscu może być kosztowniejsze niż ilość wolnego miejsca... Przydzielenie tej pamięci procesowi uwolni system z konieczności przechowywania informacji o niej Podobnie jak w przypadku systemu plików, pamięć dzieli się na bloki o stałej wielkości i przydziela procesowi całkowitą ich ilość Fragmentacja wewnętrzna Fragmentacja wewnętrzną nazywamy różnicę pomiędzy przydzielonym obszarem pamięci a rzeczywistym zapotrzebowaniem na pamięć 16

2.4 Stronicowanie i segmentacja 2.4.1 Stronicowanie Koncepcja stronicowania Pamięć fizyczna jest podzielona na bloki o stałej długości ramki Pamięć pomocnicza jest podzielona na bloki o tym samym rozmiarze co ramki strony Strony mogą być ładowane do dowolnych ramek Powiązanie adresu logicznego z fizycznym odbywa się sprzętowo Przestrzeń adresowa procesu jest jednowymiarowa i jednolita Model stronicowania Rysunek 6: Realizacja stronicowania Stronicowanie Rozmiar strony jest zdeterminowany przez sprzęt Rozmiar strony będący potęgą 2 ułatwia adresowanie: Przestrzeń adresowa m-bitowa Rozmiar strony 2 n n młodszych bitów określa offset Pozostałe m n bitów określa numer strony Przykładowo: przestrzeń adresowa 16-bitowa rozmiar strony 1024 (2 10 ) jednostki 16 10 = 6 bitów dla numeru strony, tj. 64 (2 6 ) strony 17

Pamięć przydziela się pełnymi stronami fragmentacja wewnętrzna Stronicowanie Ochrona i współdzielenie: strona może być współdzielona przez kilka procesów konieczna jest informacja czy strona jest prawidłowa, dostępna tylko do odczytu lub do odczytu i zapisu brak korelacji strona typ danych Rozmiar tablicy stron: dla stron o o rozmiarze 4kB i przestrzeni adresowej 2 32 tablica indeksowa będzie miała rozmiar 4MB (4 bajty na stronę) aby usprawnić zarządzanie pamięcią stosuje się wielopoziomowe tablice stron 2.4.2 Segmentacja Koncepcja segmentacji Stronicowanie zakłada przedstawienie pamięci jako jednowymiarowej tablicy podzielonej na jednakowej długości strony Z punktu widzenia programisty mamy różne "typy"pamięci: program główny zmienne stałe funkcje stos Poszczególne bloki danych nie mają jednakowego rozmiaru Przestrzeń adresowa procesu jest dwuwymiarowa Koncepcja segmentacji Przestrzeń adresowa składa się z segmentów Każdy segment posiada nazwę oraz informację o długości Dla celów implementacyjnych każdemu segmentowi przypisany jest numer Adres stanowi para: nazwa (numer) segmentu oraz pozycji w segmencie 18

Model segmentacji Rysunek 7: Realizacja segmentacji Segmentacja Ochrona danych Ochrona i współdzielenie na poziomie segmentów Segmenty mają konkretną semantykę dane w obrębie segmentu są używane w określony sposób: można zakazać zapisu do segmentu z kodem programu można zapobiegać wykonywaniu danych Przekroczenia zakresów wykrywane sprzętowo Segmentacja Współdzielenie danych Segmenty mogą być współdzielone Dzielone mogą być dane i kod programu Współdzielony kod musi być jednoznaczny 19

2.4.3 Segmentacja ze stronicowaniem Segmentacja ze stronicowaniem Połączenie techniki segmentacji ze stronicowaniem: proces widzi segmenty pamięci adres segmentów przeliczany jest na adres pośredni zwany adresem liniowym adres liniowy poprzez stronicowanie odwzorowywany jest na pamięć fizyczną Segmentacja ze stronicowaniem Schemat Rysunek 8: Schemat segmentacji ze stronicowaniem Segmentacja ze stronicowaniem Połączenie zalet segmentacji i stronicowania: logiczna struktura pamięci ułatwiona wymiana Sprzętowe wsparcie w rodzinie procesorów x86 Długie adresy duże tablice segmentów i stron 20