AK-8- pamiec wirtualna
Transkrypt
AK-8- pamiec wirtualna
ARCHITEKTURA KOMPUTERÓW Zarządzanie pamięcią (memory management) 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 Pamięć 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-1 ARCHITEKTURA KOMPUTERÓW Koncepcja pamięci wirtualnej ALU dane pamięć główna odwzorowanie tymczasowe adres fizyczny MAG MMU translacja adresu adres zewnętrzny tablica procesów pamięć masowa odwzorowanie trwałe przestrzeń wirtualna pamięć procesu 1 pamięć procesu 2 pamięć procesu N adres logiczny adres logiczny adres logiczny adres wirtualny Adres logiczny, wirtualny i fizyczny © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-2 ARCHITEKTURA KOMPUTERÓW Translacja adresu procesor adres wirtualny bufor translacji √ 11...111 pamięć główna adres fizyczny [00...000] 00...001 √ ... ... [00...111] 10...101 × [11...111] 11...000 00...000 jednostka zarządzania pamięcią dane 11...010 10...101 00...111 × × √ [...] [10...101] √ √ [00...001] adres zewnęt pamięć masowa Translacja adresu w układzie zarządzania pamięcią © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-3 ARCHITEKTURA KOMPUTERÓW Zasada lokalności 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] ; szukanie najmniejszego w tablicy label: dec ebx ; liczb naturalnych cmp eax, tablica[4*ebx] jbe hop ; omiń gdy (eax) ≤ (tablica[4*ebx]) mov eax, tablica[4*ebx] mov adres, ebx hop: cmp ebx, 0 jnz label © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-4 ARCHITEKTURA KOMPUTERÓW Model zbioru roboczego Zbiór roboczy – zapotrzebowanie procesu na pamięć w okresie wykonania S(t, h) T Tmax SP szamotanie t h0 n nmax 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-5 ARCHITEKTURA KOMPUTERÓW Stronicowanie tryb dostępu program rejestr tablicy stron rwx {rwx ⊆ RWX} nie adres wirtualny adres tablicy stron prawo dostępu P P ... ... ... ... P 0 & 1 DP strona 0 strona 1 P tak zakaz dostępu brak strony VP pamięć adres rzeczywisty: RPK⋅2S + DP RWX RPQ (=Q) ... ... RWX RP1 (=1) RWX RPK (=K) RWX RPT (=T) ... strona K ... RPK strona N–2 DP strona N–1 P – bit obecności strony, RWX – kod praw dostępu, VP – numer strony wirtualnej, RP – numer strony rzeczywistej, DP – przemieszczenie na stronie © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-6 ARCHITEKTURA KOMPUTERÓW Segmentacja zakaz dostępu uprawnienia adres wirtualny program rejestr tablicy segmentów rwx P RWX RSB P RWX RSK segment A SL SL ... P 0 & 1 adres rzeczywisty: RWX RS tak pamięć SD ... tak zakaz dostępu brak segmentu VS prawo dostępu {rwx ⊆ RWX} nie adres tablicy segmentów SD < SL? nie SL segment B segment K segment S segment Q Q RSK + SD P – bit obecności, RWX – prawo dostępu, VS – numer segmentu wirtualnego, RS – adres rzeczywisty, SD – przemieszczenie w segmencie, SL – rozmiar © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-7 ARCHITEKTURA KOMPUTERÓW Segmentacja stronicowana adres wirtualny uprawnienia program rwx VP adres tablicy segmentów rejestr tablicy segmentów {rwx ⊆ RWX} nie VS tak P prawo dostępu P zakaz dostępu P 0 brak segmentu & RWX PT0 ... RWX PTk ... RWX PTn 1 brak strony 0 & DP 1 SL SL SL adres rzeczywisty: P P P P ... ... ... ... RP RP0 RPK RPS RPQ DP Translacja adresu w trybie segmentacji stronicowanej © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-8 ARCHITEKTURA KOMPUTERÓW Mechanizmy przyśpieszania translacji adresu uprawnienia rwx nie program {rwx ⊆ RWX} tak VP ## DP = tak RWX #VP VP RP RWX #VP VP RP RWX #VP VP RP ... zakaz dostępu va ... ... ... ... 0....1....0 ... nie ... brak wzorca RP ... DP (adres rzeczywisty) TLB Bufor antycypacji translacji TLB (translation lookaside buffer) (va – adres wirtualny, VP, #VP – wirtualny numer strony i jego skrót, RP – rzeczywisty numer strony, DP – adres na stronie, RWX – kod praw dostępu) © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-9 ARCHITEKTURA KOMPUTERÓW Odwrócona tablica stron uprawnienia program rwx adres wirtualny tak {rwx ⊆ RWX} nie zakaz dostępu brak VP ## DP adres fizyczny tak bb...b łańcuch #VP RWX VP0 00...00 ... ... ... ... ... ... ... ... łańcuch #VP RWX (bb...bb) (10…1) RWX VP1 00...01 (11...10) (10…1) RWX VPk bb...bb (11...10) (10…1) RWX VP–2 11...10 ... VP–1 DP ... 11...11 VP – numer strony wirtualnej #VP – skrót, DP – 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-10 ARCHITEKTURA KOMPUTERÓW Strategie zarządzania pamięcią • 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-11 ARCHITEKTURA KOMPUTERÓW Przydział pamięci segmentowanej (1) 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 ip (i+1)p o rozmiarach [2 , 2 ], wpasowanie segmentu metodą FF w obrębie listy, kolejność adresów na listach jest liniowa. Problemy • aktualizacja listy dziur • defragmentacja pamięci (komasacja dziur) © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-12 ARCHITEKTURA KOMPUTERÓW Zewnętrzna fragmentacja partycji spójnych system operacyjny P4 system operacyjny P5 system operacyjny P6 system operacyjny P3 P3 system operacyjny system operacyjny P1 P1 P1 P6 P6 P6 P2 P2 P5 P5 P5 P5 P4 P4 P4 P4 komasacja P3 P4 P3 Fragmentacja partycji (i pamięci segmentowanej) © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-13 ARCHITEKTURA KOMPUTERÓW Partycje (1) Procesowi 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-14 ARCHITEKTURA KOMPUTERÓW Partycje (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 liczba braków stron 16 14 12 10 8 6 4 2 liczba ramek 1 2 3 4 5 6 7 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-15 ARCHITEKTURA KOMPUTERÓW Partycje (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) • PFF – wymiana stosownie do częstości występowania błędu braku strony (page fault frequency) – ustala się wartość progową PFF i jeŜeli częstość błędu braku strony pff < PFF, to wymieniane są wszystkie strony nieuŜywane od ostatniej wymiany, jeśli zaś pff > PFF, 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-16 ARCHITEKTURA KOMPUTERÓW Obsługa wejścia i wyjścia magistrala CPU (host) host port sprzęg procesor we/wy port UZ UZ bufor port UZ UZ Podsystem 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-17 ARCHITEKTURA KOMPUTERÓW Cechy eksploatacyjne urządzeń zewnętrznych: • czas dostępu (access time), zwłoka dostępu (latency) – znacznie (>105 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, LPT) – 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-18 ARCHITEKTURA KOMPUTERÓW Oprogramowanie we/wy 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-19 ARCHITEKTURA KOMPUTERÓW Procesy wejścia i wyjścia Sterowniki urządzeń (device drivers) – zasoby chronione Funkcje obsługi wejścia/wyjścia – osobne procesy na poziomie nadzoru. Proces obsługi wejścia lub wyjścia: • program wykonywany przez CPU • 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-20 ARCHITEKTURA KOMPUTERÓW Nakładane we/wy (overlapped I/O) 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). Procesy we/wy są niezaleŜne: • wiele urządzeń obsługiwanych jednocześnie, problem identyfikacji źródła • konieczność przełączania procesów C A INT RS–1 P–1 magistrala portu P–1 D BUF procesor RC RS–N P–N magistrala portu P–N magistrala systemu Realizacja nakładanego we/wy © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-21 ARCHITEKTURA KOMPUTERÓW Autonomiczne we/wy 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 CPU (DMA) A D RQ1 RA1 LA1 C1 procesor D1 HLD RQN pamięć RC RAN LAN CN DN A’ D’ Realizacja autonomicznego we/wy © JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-22 ARCHITEKTURA KOMPUTERÓW Bezpośredni dostęp do pamięci (DMA) 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). Procedura: • 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- PAMIEC WIRTUALNA, 11 MARCA 2005, 8-23