Pamięć wirtualna w AS/400



Podobne dokumenty
Pamięć wirtualna w systemie AS/400. Tomasz Kokoszka

Schematy zarzadzania pamięcia

Architektura komputerów

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

Zarządzanie zasobami pamięci

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

Sprzętowe wspomaganie pamięci wirtualnej

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

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

Systemy operacyjne III

Zarządzanie pamięcią operacyjną

Architektura komputerów

Stronicowanie w systemie pamięci wirtualnej

dr inż. Jarosław Forenc

ARCHITEKTURA PROCESORA,

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Podstawy. Pamięć wirtualna. (demand paging)

System pamięci. Pamięć wirtualna

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Zarządzanie pamięcią w systemie operacyjnym

Budowa systemów komputerowych

System pamięci. Pamięć wirtualna

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

Zarządzanie pamięcią operacyjną

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

Wybrane zagadnienia elektroniki współczesnej

Od programu źródłowego do procesu

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

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

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

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

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

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Mikroprocesory rodziny INTEL 80x86

Mikroinformatyka. Tryb wirtualny

Architektura systemu komputerowego

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

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

Ograniczenia efektywności systemu pamięci

Systemy Operacyjne Pamięć wirtualna cz. 2

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

Działanie systemu operacyjnego

Mapowanie bezpośrednie

Prezentacja systemu RTLinux

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputerów

dr inŝ. Jarosław Forenc

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Działanie systemu operacyjnego

Wykład 10 Zarządzanie pamięcią

LEKCJA TEMAT: Zasada działania komputera.

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

Architektura komputerów

Hierarchia pamięci w systemie komputerowym

Działanie systemu operacyjnego

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

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

dr inż. Jarosław Forenc

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

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

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

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

System plików warstwa logiczna

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

Projektowanie. Projektowanie mikroprocesorów

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

16MB - 2GB 2MB - 128MB

SYSTEMY WEJŚCIA-WYJŚCIA

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

dr inż. Jarosław Forenc

Ograniczenia efektywności systemu pamięci

Działanie systemu operacyjnego

Podstawowe zagadnienia informatyki

Struktura systemów komputerowych

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Systemy Operacyjne Wirtualizacja

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Struktury systemów operacyjnych

Technologie informacyjne (2) Zdzisław Szyjewski

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Rozproszona pamiêæ dzielona - 1

Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania

Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

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

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

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

Architektura systemów informatycznych

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

Architektura komputerów

Transkrypt:

Pamięć wirtualna w AS/400 Jan Posiadała 19 listopada 2002 1

Spis treści 1 Wpowadzenie - co to takiego AS/400 3 2 Organizacja pamięci 4 2.1 Koncepcja wymiany................................. 4 2.2 Koncepcja adresowania............................... 4 2.3 Jedna tablica stron.................................. 4 2.4 Własności pamięci................................. 4 3 Tłumaczenie adresu 5 3.1 Tlumaczenie adresu czyli odwrócona tablica stron................. 7 3.2 Wpis w tablicy stron................................ 7 3.3 Tryby dostępu do pamięci.............................. 9 3.4 Strategia wymiany czyli przybliżanie LRU..................... 10 3.5 TLB translation lookaside buffer.......................... 10 2

1 Wpowadzenie - co to takiego AS/400 AS/400 jest systemem komputerowym firmy IBM. AS pochodzi od Application System i Advanced System. Najnowsza wersja systemu (V4R4) działa na PowerPC - opracowanym przez Apple Computer, Motorolę i IBM 64-bitowym procesorze typu RISC. (TI)MI - Technology-Independent Machine Interface to interfejs na potrzeby aplikacji i (częściowo) oprogramowania systemowego. Całkowicie zasłania sprzęt przed oprogramowaniem położonym wyżej (a więc uniezależnia je od zmian sprzętowych). Ułatwia integrację różnych częsci systemu. LIC - Licensed Internal Code to część systemu operacyjnego leżąca poniżej MI. OS/400 - obiekty i programy leżące powyżej MI. System operacyjny dla AS/400 jest połączeniem OS/400 i LIC. Z biegiem czasu coraz więcej funkcji przesuwano z OS/400 do LIC, głównie w celu zwiększenia wydajności. Na poziomie LIC część funkcji przesunięto do mikrokodu. SLIC - System Licensed Internal Code: LIC dla systemów opartych na procesorach RISC (jądro systemu operacyjnego AS/400). SLIC nie jest mikrojądrem, ma jednak wiele własności mikrojądra. Kod obecnej wersji systemu jest napisany w C++. 3

2 Organizacja pamięci 2.1 Koncepcja wymiany Standardowa pamięć wirtualna obejmuje dwa poziomy pamięci: pamięć główną i dyskową. Części plików są przechowywane na dysku w obszarze wymiany (ponadto oczywiście w pamięci). W AS/400 nie ma obszaru wymiany - cały system plików staje się częścią pamięci wirtualnej. Pamięć operacyjna staje się rodzajem pamięci podręcznej dla całego dysku, a nie jedynie zarezerwowanej części dysku. Konieczny staje się długi adres, który pozwoli zaadresować całą przestrzeń dyskową w systemie. Adres jest 64-bitowy. 2.2 Koncepcja adresowania Adres wirtualny jest tłumaczony do adresu rzeczywistego zanim nastąpi odwołanie do pamięci. Architektura Power-PC ma jeszcze jeden poziom adresowania, zwany adresami efektywnymi generowanymi przez programy. Adresy efektywne muszą być najpierw przetłumaczone do adresów wirtualnych które z kolei, są tłumaczone do adresów fizycznych. Pamięć składa się z ramek (na komputerze PowerPC mają one rozmiar 4 KB). Obiekty są podzielone na strony. Duży obiekt może zajmować wiele stron, pojedyncza strona nigdy nie zawiera więcej niż jednego obiektu. Strona sprowadzona do pamięci przez jeden proces jest dostępna dla każdego innego, np. dowolna liczba zadań może współdzielić instrukcje programu (takie nieograniczone współdzielenie ogranicza konieczność transmisji dyskowych). 2.3 Jedna tablica stron W AS/400 jest tylko jedna tablica stron dla wszystkich użytkowników. Nie ma więc potrzeby czyszczenia TLB podczas przełączania kontekstu. Nie trzeba też czyścić pamięci podręcznych (tych między pamięcią główną a procesorem). Dlatego przełączenie kontekstu jest szybkie. Można więc wykonywać je często (eksperymentalnie zbadano, że średnio wykonuje się je raz na 1200 instrukcji). Dzięki temu AS/400 zapewnia dobrą wydajność w środowisku interakcyjnym, zorientowanym na aplikacje działające w trybie transakcji. Można więc dołączać wiele terminali. Pojedynczy duży AS/400 może osługiwać ponad 2000 działających współbieżnie użytkowników. 2.4 Własności pamięci Właśnie przedstawiliśmy niektóre własności organizacji pamięci w AS/400. Przejrzymy listę tych własności, razem nowymi, o których wcześniej nie mówiliśmy (omówimy je później): Wielkość strony - 4096 B Zakres adresu efektywnego B Liczba segmentów efektywnych Rozmiar segmentu B 4

Dwa tryby tłumaczenia adresu Tłumaczenie poprzez tablicę segmentów - opcja bezpieczeństwa C2 Tłumaczenie bezpośrednie Dwa specjalne typy adresów efektywnych, identyfikowane 12 najbardziej znaczącymi bitami adresu efektywnego. Specjalne postępowanie dla tych adresów. hex 800 (efektywny = rzeczywisty) adresy te odwzorowują całą pamięć. Można zaadresować segmentów. hex 801 (efektywny = rzeczywisty dyskowy) adresy rzeczywiste na urządzeniach wejścia-wyjścia. Można zadresować segmentów. Zakres adresu wirtualnego Liczba segmentów wirtualnych - ( - 2* ) Wilekość segmentu wirtualnego B Zakres adresu rzeczywistego B Powyższe własności dotyczą 64-bitowewgo procesora AS/400. 3 Tłumaczenie adresu Pierwszą czynnością jest sprzętowe sprawdzenie 12-bitowego prefiksu adresu efektywnego. 0x800 (efektywny = rzeczywisty) Adresami rzeczywistymi posługuje się wiele części SLIC. Pewne struktury SLIC (jak np. tablica stron) i procedury SLIC nie są stronicowane. Ich adres wirtualny jest równowańy adresowi rzeczywistemu. Cześć efektywnej przestrzeni adresowej dla tych adresów jest ustanowiona odzielnie. 0x801 (efektywny = rzeczywisty dyskowy) Zewnętrzna przestrzeń adresowa jest widziana przez procesor jako cześć pamięci. Adres jest używany do identyfikacji konkretnego urządzenia I/O dołączonego do systemu. Ten Typ architektury jest nazywany wyjście-wejście odwzorowane jako pamięć. Żaden specjalny zestaw instrukcji do komunikacji procesora z urządzeniami we/wy nie jest potrzebny. Po wykryciu trybu 0x80X sprawdza się, czy proces jest upoważniony do wykonywania uprzywilejowanych instrukcji. Jesli tak, dolne 52-bity są zwracane jako adres rzeczywisty. Jeśli nie, generowany jest wyjątek. Tak więc odwołania do pamięci w tym trybie wykonują się bez narzutu systemowego. 5

6

3.1 Tłumaczenie adresu czyli odwrócona tablica stron Z 64-bitowego adresu wirtualnego jest wyodrebniany 52-bitowy prefiks VPN (ang. virtual page number). VPN jest używany do znalezienia odpowiedniej pozycji w odwróconej tablicy stron na której znajduje się (lub nie - błąd braku strony) rzeczywisty numer strony - RPN - czyli adres ramki w której znajduje się ta strona. Pozostałe 12 bitów to przesunięcie na stronie - jest bezpośrednio doklejane do adresu rzeczywistego. Każda pozycja odwróconej tablicy stron przechowuje co najwyżej 8 wpisów dla adresów wirtualnych stron, które aktualnie znajdują się w pamięci. Adresy wirtualne (VPN) są sklejane w grupy wpisów przy pomocy pewnej funkcji haszującej. Wszystkiego czego można się dowiedzieć o tej funcji to: The hash function on an AS/400 takes some high-order bits out of the VPN and XORs them with some low-order bits from the VPN. This value is ANDed with mask bits from a special register that the size of the page table. Finally, this result is ORed with the real address of the page table. The result of this is a 52-bit real address into the page table. Do odnalezienia (potencjalnego) wpisu odpowiadającego danemu VPN używa się tej właśnie funkcji haszującej. Grupy wpisów nazywane są PTEG (page table entry group). Po odnalezieniu odpowiedniej grupy znajdujące się tam wpisy zostaną przeszukane sekwencyjnie w celu odnalezienia wpisu (PTE) odpowiadającemu dokładnie adresowi, do którego nastąpiło odwołanie. W większości implementacji AS/400, wielkość odwróconej tablicy stron (ilość grup PTEG) jest połową ilości stron mieszczących się w pamięci. Przy liczności grup równej 8 oznacza to, że tablica może pomieścić 4 razy więcej wpisów niż jest ramek w pamięci, a średnia liczba wpisów w grupie wynosi 2. Najważniejszą cechą funkcji haszującej jest właśnie równomierny rozrzut PTE po grupach. W wyjątkowych sytuacjach - gdy wynik funkcji haszującej jest równy dla więcej niż 8 adresów wirtulnych stron znajdujących się w pamięci - odpowiednie wpisy muszą być trzymane w drugiej tablicy stron (a tak naprawdę używana jest druga funkcja haszująca). W przypadku, gdy ani w podstawowej ani w drugiej tablicy nie odnaleziono wpisu dla żądanej strony, wywoływany jest błąd braku strony. Część SLIC odpowiedzialna za zarządzanie pamięcią sprowadza stronę do pamięci (być może wyrzucając inną) i odnawia obraz pamięci (tablica stron). 3.2 Wpis w tablicy stron Wpis w tablicy stron ma 16 bajtów długości. Pierwsze 64 bity: AVPN SW // H V 0 57 60 62 63 7

8

BITY NAZWA POLA ZNACZENIE 0-56 AVPN skrócony adres wirtualny strony 57-60 SW zarezrwowany dla oprogramowania systemowego 62 H identyfikator funkcji haszującej 63 V ważność wpisu Pierwsze 57-bitowe pole to tzw skrócony VPN. Dlaczego skrócony VPN jest dłuższy niż normalny VPN? Architektura PowerPC ma wspierać 80-bitowe adresy. Adres jest skrócony o 11 dolnych bitów które, były wykorzystane w funkcji haszującej. Zatem adresy 64-bitowe mają adresy skrócone długoći 41, a 16 górnych bitów jest wyzerowanych. Drugie 64 bity: // TS 0..0 RPN // AC R C WIMG / PP 0 1 2 12 51 54 55 56 57 60 62 BITY NAZWA POLA ZNACZENIE 1 TS bit ustawienia taga 2-11 wyzerowane 12-51 RPN fizyczny adres strony (numer ramki) 54 AC porównanie adresu 55 R bit odwołania 56 C bit zapisu 57-60 WMIG kontrola dostępu 62-63 PP ochrona strony 3.3 Tryby dostępu do pamięci Tryb dostępu procesora do danych na stronie jest definiowany przez cztery bity: W - natychmiastowe pisanie (write through) I - bez kopii w pamięci podrecznej (caching inhibited) M - spójność pamięci (memory coherence) G - chroniona sekwencyjność (guarded storage) Dla stron o tłumaczonych adresach watość tych flag pobierana jest z PTE. Dla trybu 0x800 pola mają wartości 0,0,1,1. natychmistowe pisanie wszelkie zmiany w pamięci podręcznej są eksportowane do pamięci głównej. Bit jest ustawiony np. w przypadku dzielenia pamięci przez wiele procesorów. Odczyt jest lokalny (z pamięci podręcznej), zapis globalny (do pamięci podręcznej i głównej). 9

bez kopii w pamięci podręcznej dostęp odbywa się bez poziomu pośredniego. Tryb ten jest przydatny w przypadku dużych bloków danych przetwarznych sekwencyjnie. spójność pamięci i chroniona sekwencyjność wymuszają spójność danych, gdy procesor (procesory) - dla zwiększenia efektywności - nie zachowuje logicznej sekwencyjności wykonania instrukcji. 3.4 Strategia wymiany czyli przybliżanie LRU Mechanizm wymiany wybiera do wyrzucenia z pamięci te strony, które bity odwołania i zapisu mają ustawione na 0. Po każdorazowym wywołaniu algorytm wymiany ustawia wszystkim stronom bity odwołania na 0. Zatem strony są podzielone na dwie grupy. Te do których: odwołano się od ostatniej wymiany (1) nie odwołano się od ostatniej wymiany (0). Utrzymywana jest także lista zmienionych stron, ale takich do których nie było odwołania (R=0,C=1). Przy dostatecznej ilości takich strony strony te są zapisywane na dysku, ale pozostają w pamięci z wyzerowanym bitem zapisu. Zapobiega to gromadzeniu sie wielu czasochłonnych czynności na jeden moment. 3.5 TLB translation lookaside buffer W rejestrach utrzymywana jest tablica przechowująca PTE, które byly ostatnio używane. W systemach AS/400 wielkość TLB pozwala na skuteczność odwołań rzędu 95%. Oznacza to że najwyżej co 20 tłumaczenie adresu wymaga więcej niż jednego fizycznego odwołania do pamięci. 10

Źródła 1. Frank G. Soltis Inside the AS/400 Duke Press, 1996 2. Janina Mincer-Daszkiewicz http://rainbow.mimuw.edu.pl/so-msui/ 11