Zarządzanie pamięcią (memory management) ARCHITEKTURA KOMUTERÓW Funkcje zarządzania pamięcią przydział zasobów pamięci (memory allocation) ochrona zasobów pamięci (memory protection) współdzielenie obszarów pamięci (memory sharing) przez róŝne procesy przemieszczanie obszarów pamięci (memory relocation) przeźroczysta organizacja pamięci fizycznej i logicznej o relacje logiczne danych w programie niewraŝliwe na zarządzanie o elastyczne powiązanie logicznych struktur danych z fizycznymi lokacjami, realizowane dynamicznie amięć wirtualna Wirtualna przestrzeń adresowa suma logicznych przestrzeni pamięci (widzianych w programie stanowiącym treść procesu translacja adresu wirtualnego (logicznego) na adres rzeczywisty odwzorowanie adresu wirtualnego w pamięci fizycznej (real memory). JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-1
ARCHITEKTURA KOMUTERÓW Koncepcja pamięci wirtualnej ALU dane adres fizyczny pamięć główna odwzorowanie tymczasowe pamięć procesu 1 przestrzeń wirtualna adres logiczny MAG MMU translacja adresu tablica procesów adres zewnętrzny pamięć masowa odwzorowanie trwałe pamięć procesu 2 pamięć procesu N adres logiczny adres logiczny adres wirtualny Adres logiczny, wirtualny i fizyczny JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-2
ARCHITEKTURA KOMUTERÓW Translacja adresu dane procesor adres wirtualny bufor 11111 translacji 00001 11000 adres fizyczny pamięć główna [00000] [00001] [] jednostka zarządzania pamięcią 00000 10101 11010 10101 00111 adres zewnęt [00111] [10101] [11111] pamięć masowa Translacja adresu w układzie zarządzania pamięcią JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-3
Zasada lokalności ARCHITEKTURA KOMUTERÓW W określonym przedziale czasu program przejawia tendencję do grupowania odwołań do małego fragmentu dostępnej przestrzeni adresowej Lokalność czasowa tendencja do powtarzania odwołań, realizowanych w niedawnej przeszłości (realizacja pętli, referencje do tablicy). Lokalność przestrzenna tendencja do odwołań do obiektów w obszarze adresowym obejmującym obiekty wcześniej uŝyte w programie (kolejne rozkazy programu, elementy regularnej struktury danych). mov eax, tablica[4*ebx] label: dec ebx cmp eax, tablica[4*ebx] jbe hop mov eax, tablica[4*ebx] mov adres, ebx hop: cmp ebx, 0 jnz label ; szukanie najmniejszego w tablicy ; liczb naturalnych ; omiń gdy (eax) (tablica[4*ebx]) JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-4
Model zbioru roboczego ARCHITEKTURA KOMUTERÓW Zbiór roboczy zapotrzebowanie procesu na pamięć w okresie wykonania S S(t, h) T max T szamotanie h 0 t n max n Rozmiar zbioru roboczego S(t,h) i przepustowość przetwarzania Efekt szamotania Suma zbiorów roboczych procesów aktywnych > rozmiar dostępnej pamięci Heurystyka Nie wymieniaj bloku, który jest częścią zbioru roboczego aktywnego procesu i nie uaktywniaj procesu, którego zbiór roboczy nie moŝe zostać w całości odwzorowany w pamięci głównej. JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-5
ARCHITEKTURA KOMUTERÓW Stronicowanie tryb dostępu program adres wirtualny V D pamięć strona 0 rejestr tablicy stron adres tablicy stron R Q (=Q) strona 1 rwx {rwx } prawo dostępu R 1 (=1) strona K nie tak R K (=K) zakaz dostępu R T (=T) strona N 2 brak strony 0 1 adres rzeczywisty: & R K 2 S + D R K D strona N 1 bit obecności strony, kod praw dostępu, V numer strony wirtualnej, R numer strony rzeczywistej, D przemieszczenie na stronie JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-6
ARCHITEKTURA KOMUTERÓW Segmentacja zakaz dostępu nie SD < SL? tak uprawnienia program adres wirtualny VS SD pamięć segment A rejestr tablicy segmentów adres tablicy segmentów SL segment B rwx nie {rwx } tak prawo dostępu RS B SL segment K RS K zakaz dostępu SL segment S RS Q segment Q brak segmentu 0 & 1 adres rzeczywisty: RS K +SD bit obecności, prawo dostępu, VS numer segmentu wirtualnego, RS adres rzeczywisty, SD przemieszczenie w segmencie, SL rozmiar JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-7
ARCHITEKTURA KOMUTERÓW Segmentacja stronicowana program adres wirtualny VS V D uprawnienia rwx rejestr tablicy segmentów nie {rwx } tak adres tablicy segmentów prawo dostępu T 0 SL SL R 0 R K zakaz dostępu T k SL R S R Q T n 0 & 1 brak segmentu brak strony 0 & 1 adres rzeczywisty: R D Translacja adresu w trybie segmentacji stronicowanej JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-8
Mechanizmy przyśpieszania translacji adresu ARCHITEKTURA KOMUTERÓW uprawnienia rwx program va V D nie {rwx } tak ## = tak nie brak wzorca #V V R #V V R R D zakaz dostępu #V V R (adres rzeczywisty) 0.1.0 TLB Bufor antycypacji translacji TLB (translation lookaside buffer) (va adres wirtualny, V, #V wirtualny numer strony i jego skrót, R rzeczywisty numer strony, D adres na stronie, kod praw dostępu) JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-9
ARCHITEKTURA KOMUTERÓW Odwrócona tablica stron uprawnienia program rwx {rwx } nie zakaz dostępu brak adres wirtualny tak łańcuch (bbbb) (1110) ## #V (10 1) (10 1) V V 0 V 1 V k tak D 0000 0001 bbbb (1110) (10 1) V 2 1110 łańcuch #V V 1 1111 adres fizyczny bbb D V numer strony wirtualnej #V skrót, D adres na stronie skrót (hash value) odwzorowanie wirtualnego adresu strony za pomocą funkcji mieszającej (hashing function) czas przeszukiwania bardzo mało zaleŝny od liczby stron rzeczywistych JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-10
Strategie zarządzania pamięcią ARCHITEKTURA KOMUTERÓW strategie pobierania (fetch policy) decyzje, kiedy załadować informację do pamięci głównej strategie przydziału (placement policy) reguły i algorytmy wpasowania bloków informacji w wolne obszary pamięci głównej strategie wymiany (relocation policy) reguły i algorytmy usuwania informacji z pamięci głównej. Strategie pobierania pobranie wymuszone (demand fetching) na skutek błędu braku obiektu (missing item fault) pobranie antycypowane (prefetching) na podstawie prognozy zapotrzebowania procesu na dane (zasady lokalności). Strategie przydziału w pamięci stronicowanej trywialne, rozmiar strony ustalony problem wewnętrzna fragmentacja pamięci w pamięci segmentowanej wpasowanie segmentów o róŝnych rozmiarach problem zewnętrzna fragmentacja pamięci (dziury) JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-11
rzydział pamięci segmentowanej (1) ARCHITEKTURA KOMUTERÓW segment umieszczany w pierwszej dziurze o wystarczającym rozmiarze Metody: BF najlepsze wpasowanie (best fit) lista uporządkowana według rosnących adresów WF najgorsze wpasowanie (worst fit) lista uporządkowana według malejących adresów FF pierwsze wpasowanie (first fit) lista uporządkowana według rosnących adresów, przeszukiwanie moŝe być cykliczne (wznawialne) BB wpasowanie binarne (binary buddy) są tworzone listy dziur o rozmiarach [2 ip, 2 (i+1)p ], wpasowanie segmentu metodą FF w obrębie listy, kolejność adresów na listach jest liniowa. roblemy aktualizacja listy dziur defragmentacja pamięci (komasacja dziur) JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-12
ARCHITEKTURA KOMUTERÓW Zewnętrzna fragmentacja partycji spójnych system operacyjny 4 system operacyjny 5 system operacyjny 6 system operacyjny 3 system operacyjny 3 system operacyjny 1 1 1 6 6 6 2 2 5 5 5 5 4 3 4 4 4 4 komasacja 3 Fragmentacja partycji (i pamięci segmentowanej) JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-13
artycje (1) ARCHITEKTURA KOMUTERÓW rocesowi jest przydzielana część adresowalnego obszaru pamięci głównej. intensyfikacja błędu braku bloku Strategie przydziału obszaru pamięci procesom (memory allocation) partycja stała (fixed size partition) rozmiar obszaru pamięci przydzielonej procesowi jest stały w czasie Ŝycia procesu partycja zmienna (variable size partition) dynamiczny przydział pamięci, odpowiednio do aktualnych potrzeb procesu. Strategie wymian dla stałych partycji: losowa (random replacement) wyłącznie w środowisku programowym, w którym lokalność jest niewielka (np. bazy danych) FIFO (first in, first out) kolejka bloków do wymiany jest ustawiana zgodnie z kolejnością ich umieszczania w pamięci; uwzględniana jest lokalność bloków, nie uwzględnia się intensywności ich uŝywania FINUFO (first in, not used, first out) kaŝde wejście do kolejki ma znacznik uŝywalności, kolejka przesuwa się cyklicznie LRU (least recently used) wymienia się blok najdawniej uŝywany. JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-14
ARCHITEKTURA KOMUTERÓW artycje (2) Anomalia Belady ego częstość błędu braku strony nie jest monotoniczną funkcją rozmiaru przydzielonego obszaru (liczby stron) i osiąga lokalne minimum dla pewnej niewielkiej liczby stron 16 14 12 10 8 6 4 2 liczba braków stron 1 2 3 4 5 6 7 liczba ramek sekwencje odwołań 1,2,3,4,5,1,2,3,6,1,2,3,4,5,6,4 oraz 1,2,3,4,1,2,5,1,2,3,4,5,4 JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-15
ARCHITEKTURA KOMUTERÓW artycje (2) Strategia optymalna (MIN) wymiana bloku, który będzie uŝyty najpóźniej teoretyczna, wymaga antycypacji kolejności wymian. Strategie wymian dla partycji zmiennych (przy stronicowaniu): WS wymiana całego zbioru roboczego (working set replacement) FF wymiana stosownie do częstości występowania błędu braku strony (page fault frequency) ustala się wartość progową FF i jeŝeli częstość błędu braku strony pff < FF, to wymieniane są wszystkie strony nieuŝywane od ostatniej wymiany, jeśli zaś pff > FF, to nie jest dokonywana wymiana, lecz zwiększany jest rozmiar partycji. Strategia optymalna VMIN wymiana bloku, który będzie uŝyty najpóźniej, lecz z moŝliwością zmiany rozmiaru partycji. teoretyczna, wymaga antycypacji kolejności wymian. JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-16
ARCHITEKTURA KOMUTERÓW Obsługa wejścia i wyjścia magistrala CU (host) sprzęg host port procesor we/wy bufor port UZ port UZ UZ UZ odsystem wejścia/wyjścia Urządzenia we/wy: magazynujące (storage) przechowywanie danych pamięci wtórne i tercjalne, archiwizery gromadząco-rozsyłające (source/sink) konwersja i rozsyłanie danych komunikacja człowieka z komputerem: mysz, klawiatura, monitor ekranowy, drukarka sprzęg procesów przemysłowych z komputerem: czujnik, regulator, konwerter A/C i C/A, sterownik komunikacja między inteligentnymi terminalami: modem, łącze sieci komputerowej, łącze transmisji szeregowej lub równoległej. JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-17
ARCHITEKTURA KOMUTERÓW Cechy eksploatacyjne urządzeń zewnętrznych: czas dostępu (access time), zwłoka dostępu (latency) znacznie (>10 5 razy) większe niŝ dla pamięci (dostęp sekwencyjny) przepustowość (bandwith) maksymalna liczba danych przesyłanych w kwancie czasu (transmisja równoległa z szybkością GB/s). ryzyko błędu (error rate) średnia częstość występowania błędów (<10-6 ) Sterowniki łącza bezpośredniego (COM, LT) sprzęg (interface) we/wy szeregowego (protokół RS232, RS485) równoległego (protokół Centronics) magistral dedykowanych magistrali współdzielonej. Sterowanie urządzeniami programowanie sterownika (wysyłanie poleceń) testowanie sterownika obsługa przerwań sygnalizowanych przez urządzenia obsługa błędów urządzeń. JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-18
Oprogramowanie we/wy ARCHITEKTURA KOMUTERÓW Struktura warstwowa (software layers) uchwyty przerwań (interrupt handlers) procedury obsługi zgłoszeń sterowniki urządzeń (device drivers) działania specyficzne dla urządzeń (translacja poleceń logicznych ( odczytaj blok danych ) na zestaw poleceń fizycznych ( odczytaj sektor N na ścieŝce M w dysku H )): buforowanie (kolejkowanie) poleceń logicznych zmiana porządku poleceń w celu poprawy przepustowości transmisji zmiana logicznych adresów urządzeń i bloków danych na adresy fizyczne obsługa błędów transmisji. funkcje uŝytkownika oprogramowanie niezaleŝne od urządzeń: zmiana symbolicznej nazwy urządzenia (standardowe wejście i wyjście, drukarka) na nazwę logiczną (adres bloku sterującego procesu obsługi) przeformatowanie danych na postać wymaganą przez urządzenie (buforowanie, upakowanie, rozpakowanie, translacja kodu danych) przydział i zwolnienie przydziału pamięci. uaktywnienie (proces uŝytkownika) określenie parametrów transmisji, przygotowanie danych i zainicjowanie komunikacji we/wy. JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-19
rocesy wejścia i wyjścia Sterowniki urządzeń (device drivers) zasoby chronione ARCHITEKTURA KOMUTERÓW Funkcje obsługi wejścia/wyjścia osobne procesy na poziomie nadzoru. roces obsługi wejścia lub wyjścia: program wykonywany przez CU program wykonywany przez sterownik Klasyfikacja bezpośrednie we/wy (direct I/O) funkcje sterownika wykonuje procesor: testowanie statusu urządzenia (busy waiting) i nadzór wykonania poleceń nakładane (overlapped) we/wy obsługa w trybie przerwań precyzyjnych, wymaga intensywnej synchronizacji autonomiczne (autonomous) we/wy obsługa w trybie DMA (bezpośredni dostęp do pamięci), wymaga minimum synchronizacji. JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-20
Nakładane we/wy (overlapped I/O) ARCHITEKTURA KOMUTERÓW Synchronizacja procesu obsługi we/wy w trybie przerwań sygnalizujących: gotowość peryferala (urządzenia we/wy) do transmisji zakończenie operacji wystąpienie wyjątku sygnalizowanego (na przykład błąd transmisji). rocesy we/wy są niezaleŝne: wiele urządzeń obsługiwanych jednocześnie, problem identyfikacji źródła konieczność przełączania procesów C A D INT RS 1 1 magistrala portu 1 procesor BUF RC RS N N magistrala portu N magistrala systemu Realizacja nakładanego we/wy JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-21
Autonomiczne we/wy ARCHITEKTURA KOMUTERÓW Transmisja bloku danych zamiast transmisji danych pojedynczych: zmniejszenie częstości synchronizowania procesów redukcja narzutów czasowych synchronizowania konieczne bufory danych najprościej w pamięci głównej transmisja z pominięciem CU (DMA) A D RQ 1 procesor RA 1 LA 1 C 1 D 1 HLD pamięć RC RA N LA N C N RQ N D N A D Realizacja autonomicznego we/wy JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-22
Bezpośredni dostęp do pamięci (DMA) ARCHITEKTURA KOMUTERÓW Obsługa w trybie bezpośredniego dostępu do pamięci programowanie procesora DMA podanie parametrów transmisji: adresu źródłowego i docelowego danych, rozmiaru bloku i protokołu transmisji zainicjowanie transmisji skutek zgłoszenia Ŝądania transmisji przez kanał DMA (procesor DMA ma zwykle kilka niezaleŝnych kanałów). rocedura: zgłoszenie w kanale DMA Ŝądania transmisji (bus request, hold) potwierdzenie udostępnienia magistral (bus grant, hold acknowledge) wykonanie transferu DMA i zwolnienie magistral. Transfer pojedynczy (single-cycle DMA) wykradanie cykli (cycle stealing) Transfer blokowy (burst-mode DMA). blokowanie dostępu do magistral pamięci dwuportowe róŝny rozmiar bloków danych w urządzeniach uczestniczących przerwanie po kaŝdym transferze bloku powiązanie danych (data chaining) autoprogramowanie kanału DMA rejestr powiązań (data chain register, DCR) adres kolejnego bloku JANUSZ BIERNAT, AK-8- AMIEC WIRTUALNA, 11 MARCA 2005, 8-23