ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ



Podobne dokumenty
ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Zarządzanie pamięcią operacyjną

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

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

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

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

Podstawy. Pamięć wirtualna. (demand paging)

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

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Stronicowanie w systemie pamięci wirtualnej

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 arz dzanie pam dzanie ięci ę ą

Zarz arz dzanie pam dzanie ięci ę ą

Architektura komputerów

Od programu źródłowego do procesu

dr inż. Jarosław Forenc

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

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

Zarządzanie zasobami pamięci

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

Zarządzanie pamięcią w systemie operacyjnym

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ą zagadnienia podstawowe

Systemy Operacyjne Pamięć wirtualna cz. 2

Zarządzanie pamięcią operacyjną

Schematy zarzadzania pamięcia

Systemy Operacyjne Pamięć wirtualna cz. 1

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

Pytania do treści wykładów:

TEMAT 5 Zarządzanie pamięcią operacyjną

Systemy operacyjne III

dr inŝ. Jarosław Forenc

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

dr inż. Jarosław Forenc

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

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

Pamięć wirtualna. Pamięć wirtualna

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

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajnoś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

Technologie informacyjne (2) Zdzisław Szyjewski

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

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

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

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

System pamięci. Pamięć wirtualna

Systemy Operacyjne Zarządzanie pamięcią operacyjną

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

System pamięci. Pamięć wirtualna

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

Działanie systemu operacyjnego

Stronicowanie na ¹danie

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

System pamięci. Pamięć wirtualna

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Architektura komputerów

Zarządzanie procesami i wątkami

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Działanie systemu operacyjnego

ARCHITEKTURA PROCESORA,

Plan wykładu. Architektura systemów komputerowych. Strategie zapisu. Cezary Bolek

KOMPONENTY SYSTEMÓW OPERACYJNYCH

Pamięć wirtualna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Działanie systemu operacyjnego

Współpraca procesora ColdFire z pamięcią

Prezentacja systemu RTLinux

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

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

Hierarchia pamięci w systemie komputerowym

Zarz¹dzanie pamiêci¹

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

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

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

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

4. Procesy pojęcia podstawowe

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

Mikroprocesory rodziny INTEL 80x86

Mikroinformatyka. Wielozadaniowość

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

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

Działanie systemu operacyjnego

1. Rola pamięci operacyjnej

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

4. Procesy pojęcia podstawowe

Mikroinformatyka. Tryb wirtualny

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

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

Struktura systemów komputerowych

Architektura komputerów

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

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

Pamięć wirtualna w AS/400

Systemy liczenia. 333= 3*100+3*10+3*1

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Architektura komputerów

Systemy wejścia-wyjścia. wyjścia

Pamięć wirtualna jest organizacją zasobów pamięci, zrealizowaną w oparciu o tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku).

Transkrypt:

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Wiązanie adresów adr.symbol -> adr. względne ->adresy pamięci kompilacja; kod bezwzględny (*.com) ładowanie; kod przemieszczalny wykonanie adr.względne -> adr. bezwzględne

Optymalizacja wykorzystania pamięci Ładowane dynamiczne (podprogram ładowany w momencie wywołania) Konsolidacja dynamiczna ( w obrazie binarnym stub namiastka procedury wskazująca jak odnaleźć podprogram biblioteczny) Nakładki (zawierają moduły konieczne w danym momencie; projektowane przez programistę) Wymiana (rotacyjny, priorytetowy alg. planowania; roll in roll out ; ekspedytor dispatcher; długi czas przełączania kontekstu 200ms; kwant czasu procesora 0.2 s)

Nakładki - dwuprzebiegowy asembler

Swapping- wymiana

adres logiczny - wytworzony przez procesor (adres wirtualny) zbiór wszystkich adresów logicznych - logiczna przestrzeń adresowa adres fizyczny - umieszczony w rejestrze adresowym pamięci zbiór wszystkich adresów fizycznych - fizyczna przestrzeń adresowa odwzorowanie adresów wirtualnych na fizyczne - MMU (jednostka zarządzająca pamięcią -memory-management-unit)

Stronicowanie pamięci Rozwiązane problemu zewnętrznej fragmentacji Nieciągła logiczna przestrzeń adresowa procesów Pamięć fizyczna podzielona na ramki stałej wielkości Pamięć logiczna podzielona na strony o tym samym rozmiarze

Adres logiczny bardziej znaczące bity - numer strony mniej znaczące zaś bity - numer bajtu na stronie (offset) rozmiar strony = 2 n n mniej znaczących bitów adresu - numer bajtu, pozostałe bity oznaczają numer strony liczba bitów w adresie wystarcza do zaadresowania całej pamięci wirtualnej.

Przykład adres składa się z 32 bitów pamięć wirtualna moŝe mieć 2 32 bajtów rozmiar strony wynosi 512 bajtów, czyli 2 9. 9 mniej znaczących bitów - numer bajtu, 23 bardziej znaczące bity - numer strony

odwzorowanie adresu przy uŝyciu tablicy stron adres logiczny numer numer strony bajtu p b tablica stron strona p p +b p

odwzorowanie adresu przy uŝyciu tablicy stron Odwzorowanie adresu jest zatem określone wzorem: f (a) = f (p,b) = p' + b przy czym adres a, numer strony p oraz numer bajtu b są powiązane z rozmiarem strony R w następujący sposób: p = część całkowita ilorazu a/r b = reszta z dzielenia a/r

Stronicowanie - przykład

Odwzorowanie adresu przy uŝyciu pamięci asocjacyjnej PAMIĘĆ ASOCJACYJNA REJESTRY ADRESU STRONY 0 1 2 3 4 5 6 7 7 1 2 6 5 3 0 4 p b 3 243 ADRES PROGRAMU p b 5 243 KOMÓRKA PAMIĘCI

bufory translacji adresów stron TLB TLBs Translation Look-Aside Buffers 8-2048 pozycji

Operacja odwzorowania adresu przy uŝyciu metody stronicowania i małej pamięci asocjacyjnej PORÓWNAJ BITY STRONY Z PAMIĘCIĄ ASOCJACYJNĄ CZY ZGODNE T N INDEKSUJ TABLICĘ STRON CZY STRONA JEST W PAMIĘCI N POBIERZ STRONĘ I UAKTUALNIJ TABLICĘ STRON T UAKTUALNIJ PAMIĘĆ ASOCJACYJNĄ DODAJ NUMER BAJTU DO ADRESU RAMKI STRONY POSZUKIWANA KOMÓRKA PAMIĘCI

Dzielone strony

segmentacja

1 1 4 2 3 4 2 3 user space physical memory space

Segmentacja pamięci Segmentacja - technika organizacji pamięci pozwalająca na organizację przestrzeni adresów w taki sposób, by odzwierciedlała logiczny podział informacji na program i dane. Przestrzeń adresów dzieli się na segmenty, które odpowiadają poszczególnym procedurom, modułom programowym lub zbiorom danych. Kilka par rejestrów bazowych i granicznych dla kaŝdego procesora - w przestrzeni adresów kilka odrębnych obszarów. Wada - mała liczba segmentów oraz konieczność określania z góry przeznaczenia poszczególnych MoŜna jednak stworzyć taką organizację pamięci wirtualnej, Ŝe programista moŝe zgodnie ze swoimi potrzebami korzystać z duŝej liczby segmentów i w odniesieniu do nich uŝywać nadanych przez siebie nazw. Przestrzeń adresów - dwuwymiarowa - adresy w programie: nazwa segmentu i adres wewnątrz segmentu.

Segmentacja pamięci Adres w programie jest parą (s, d), s - numer segmentu, d - adres wewnątrz tego segmentu. Odwzorowanie adresu moŝe być implementowane za pomocą tworzonej dla kaŝdego procesu tablicy segmentów, której element o numerze s zawiera: adres bazy długość segmentu s danego procesu. Elementy tablicy segmentów - deskryptory segmentu.

stronicowanie a segmentacja pamięci Celem segmentacji jest logiczny podział przestrzeni adresów, podczas gdy celem stronicowania jest fizyczny podział pamięci, którą chcemy implementować jako pamięć na tym samym poziomie. Strony mają ustalony rozmiar wynikający z architektury maszyny, podczas gdy rozmiar segmentów moŝe być dowolny, określony przez programistę. Podział adresu programu na numery strony i bajtu jest wykonywany środkami sprzętowymi, a przekroczenie zakresu dla numeru bajtu automatycznie powoduje zwiększenie numeru strony. Podział adresu programu na numery segmentu i bajtu jest logiczny, a przekroczenie zakresu dla numeru bajtu nie ma Ŝadnego wpływu na numer segmentu (przekroczenie zakresu dla numeru bajtu powoduje sygnalizację przekroczenia zakresu pamięci).

operacja odwzorowania adresu przy uŝyciu segmentów stronicowanych i pamięci asocjacyjnej ADRES W SEGMENCIE SEGMENT STRONA BAJT ADRES W PROGRAMIE PAMIĘĆ ASOCJACYJNA ADRES RAMKI + NUMER POSZUKIWANA STRONY BAJTU KOMÓRKA PAMIĘCI

PAMIĘĆ WIRTUALNA technika umoŝliwiająca wykonanie procesów, które nie są w całości przechowywane w PAO program moŝe być większy niŝ pamięć fizyczna pozwala utworzyć abstrakcyjną pamięć główną - olbrzymia jednolita tablica oddziela pamięć logiczną widzianą przez uŝytkownika od pamięci fizycznej ułatwia proces programowania implementacja pamięci wirtualnej moŝe obniŝyć wydajność programu

IMPLEMENTACJA PAMIĘCI WIRTUALNEJ stronicowanie na Ŝądanie procedura leniwej wymiany (lazy swapper) (stronicująca) segmentacja na Ŝądanie

Stronicowanie na Ŝądanie wyposaŝenie sprzętowe (tablica stron, pamięć pomocnicza) + oprogramowanie po wystąpieniu braku strony - wznowienie rozkazu dodaj(a,b,c) pobranie i zdekodowanie rozkazu dodaj pobranie A pobranie B dodanie A i B zapamiętanie sumy w C (C jest na stronie, której nie ma w PAO) sprowadzenie strony powtórne wykonanie rozkazu ( pobranie...)

SPRAWNOŚĆ STRONICOWANIA NA śądanie efektywny czas dostępu ecd cd=10-200ns; (100) cobs - czas obsługi braku strony (obsługa przerwania, czytanie strony, wznowienie procesu) p- prawdopodobieństwo braku strony ecd=(1-p) cd + p cobs cobs=25ms (bez kolejki) ecd=100+24 999 900 p dla p=0.001 - ecd 25000-250-krotne spowolnienie komputera aby pogorszenie < 10% - p< 0.0000004 (1 brak strony na 2 500 000 odwołań do pamięci)

ZASTĘPOWANIE STRON ZASTĘPOWANIE STRON powiększenie stopnia wieloprogramowości - nadprzydział pamięci (brak wolnych ramek) zakończenie procesu uŝytkownika wymiana - zmniejszenie poziomu wieloprogramowości zastępowanie stron

wybór ramki ofiary dwukrotne przesyłanie stron ( na dysk i z dysku) - wydłuŝenie efektywnego czasu dostępu zastosowanie bitu modyfikacji - bitu zabrudzenia

ALGORYTMY ZASTĘPOWANIA STRON minimalizacja częstości braków stron oceniany na pdst. ciągu odniesień do pamięci (ciąg adresów zredukowany do numerów kolejnych róŝnych stron) przy znanej liczbie ramek np. ciąg adresów przy 100-bitowej stronie: 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611,0102, 0103, 0104, 0101, 0601, 0102, 0103, 0104, 0101, 0609,0102, 0105 moŝna zredukować do: 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1

ALGORYTMY ZASTĘPOWANIA STRON FIFO algorytm optymalny LRU algorytmy przybliŝające LRU algorytmy zliczające algorytm buforowania stron

7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 FIFO 15 braków stron dla ciągu odniesień: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 - anomalia Belady ego wsp.braku stron wzrasta ze wzrostem liczby ramek 14 12 10 8 6 4 2 0 0 2 4 6 8

FIFO 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 4 4 4 0 0 0 7 7 7 0 0 0 3 3 3 2 2 2 1 1 1 0 0 1 1 1 0 0 0 3 3 3 2 2 2 1 Algorytm optymalny 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 2 2 7 0 0 0 0 4 0 0 0 1 1 3 3 3 1 1

Algorytm optymalny najniŝszy współczynnik braku stron (9) nigdy nie występuje anomalia Belady ego istnieje - OPT, MIN Zastąp tę stronę, która najdłuŝej nie będzie uŝywana wymaga wiedzy o przyszłej postaci ciągu odniesień (jak planowanie procesora - SJF)

LRU Least Recently Used Z kaŝdą stroną kojarzy czas jej ostatniego uŝycia nie występuje anomalia Belady ego (12 błędów) 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 4 4 4 0 1 1 1 0 0 0 0 0 0 3 3 3 0 0 1 1 3 3 2 2 2 2 2 7

Algorytmy przybliŝające LRU algorytm drugiej szansy (zegarowy) liczba bitów historii=0 podstawą - algorytm FIFO po wybraniu strony - sprawdzenie bitu odniesienia; jeśli 0 - strona zastąpiona; jeśli 1 - druga szansa wybór kolejnej strony wg. FIFO druga szansa - zerowanie bitu odniesienia; ustawienie czasu bieŝącego (koniec kolejki) strona często eksploatowana - nigdy nie będzie zastąpiona

Przydział ramek wielkość przydziału dla kaŝdego procesu zaleŝy od stopnia wieloprogramowości procesy traktowane niezaleŝnie od priorytetów (przydział proporcjonalny zaleŝnie od rozmiaru i priorytetu procesu) Przydział globalny i lokalny zastępowanie globalne - dla danego procesu moŝliwy wybór ramki z całej puli ramek (innych procesów teŝ) zastępowanie lokalne - ogranicza wybór do zbioru ramek przydzielonych do danego procesu zastępowanie globalne zapewnia lepszą przepustowość systemu lecz zachowanie procesu silnie zaleŝy od warunków zewnętrznych

liczba ramek niskopriorytetowego procesu < minimum - zawieszenie wykonania procesu (zwolnienie wszystkich ramek -wymiana; średni poziom planowania) gdy proces dysponuje małą liczbą aktywnie uŝywanych stron - częste zastępowanie - szamotanie - thrashing czas stronicowania> czas wykonania

SZAMOTANIE zmniejszenie wykorzystania procesora - zwiększenie stopnia wieloprogramowości przy globalnym algorytmie zastępowania stron: częste braki stron kolejka do urządzenia stronicującego opróŝnienie kolejki procesów gotowych do wykonania zmniejszenie wykorzystania procesora zwiększenie stopnia wieloprogramowości ograniczenie efektów szamotania: lokalny lub priorytetowy algorytm zastępowania dostarczenie procesowi właściwej liczby ramek - strategia tworzenia zbioru roboczego model strefowy wykonania procesu

model strefowy wykonania procesu strefa - zbiór stron pozostających we wspólnym uŝyciu strefy programu - określone przez jego strukturę i struktury danych gdy przydzielono mniej ramek niŝ wynosi rozmiar strefy - szamotanie model zbioru roboczego - zał. program ma charakterystykę strefową okno zbioru roboczego - ostatnich odniesień do stron zbiór roboczy - zbiór stron, do których nastąpiło ostatnich odniesieńprzybliŝa strefę programu Z= RZR i ( Z - zapotrzebowanie na ramki; RZR i - rozmiar zbioru roboczego procesu i) Z>m - szamotanie

ROZMIAR STRONY 512 (2 9 ) - 16384 (2 14 ) duŝe strony: wielkość tablicy stron kaŝdego procesu pam. wirt. 4MB - 4096 stron 1024B lub 512 stron 8192B czas operacji we/wy czas wyszukiwania (20+8ms) > czas przesyłania (2MB/s -- 512B - 0.2ms) 1024B 1 strona 28.4ms 2 strony 56.4ms liczba braków stron małe strony lepsze wykorzystanie pamięci (fragmentacja wewnętrzna) mniejsza ilość przesyłanych informacji - lepsza rozdzielczość, dopasowanie do stref programu

SEGMENTACJA NA śądanie Stronicowanie na Ŝądanie wymaga sporych ilości sprzętu OS/2 Intel 80286 operuje segmentami deskryptor segmentu: długość, tryb ochrony, umiejscowienie, bit poprawności, bit udostępnienia kolejka deskryptorów wszystkich segmentów w pamięci; na początku segmenty z ustawionym bitem udostępnienia (zerowane) pułapka - spr. czy dostępna wolna pamięć pomieści segment upakowanie wymiana segmentu z końca kolejki uaktualnienie deskryptora, na początek kolejki» jeśli nadal mało miejsca - upakowanie...

Strategie przydziału pamięci Wymiany Systemy ze stronicowaniem Najdawniej uŝywana Najmniej uŝywana Najdawniej załadowana Systemy bez stronicowania Pobierania na Ŝądanie z wyprzedzeniem Rozmieszczenia Systemy bez stronicowania Najlepsze dopasowanie x 1 <x 2 <.<x n Najgorsze dopasowanie x 1 >x 2 >.>x n Pierwsze dopasowanie uporządkowanie względem adresów bazowych przeszukiwanie listy od ostatniego wskaźnika Algorytm bliźniaków Systemy ze stronicowaniem