Mikroinformatyka. Tryb wirtualny



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

Schematy zarzadzania pamięcia

Mikroinformatyka. Mechanizmy ochrony pamięci

Mikroinformatyka. Wielozadaniowość

Sprzętowe wspomaganie pamięci wirtualnej

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

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Zaawansowane Architektury Procesorów Część 1

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

Zarządzanie zasobami pamięci

Programowanie Niskopoziomowe

Architektura komputerów

WOJSKOWA AKADEMIA TECHNICZNA

Procesory rodziny x86. Dariusz Chaberski

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

Współpraca procesora ColdFire z pamięcią

Zarządzanie pamięcią w systemie operacyjnym

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

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

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

Wybrane zagadnienia elektroniki współczesnej

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

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

ARCHITEKTURA PROCESORA,

System pamięci. Pamięć wirtualna

Systemy operacyjne III

Zarządzanie pamięcią operacyjną

Wykład 10 Zarządzanie pamięcią

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna

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

Procesory rodziny Intel

Programowanie w asemblerze Środowiska 64-bitowe

dr inż. Jarosław Forenc

Ćwiczenie 2 3. Tryb chroniony

Mikroprocesory rodziny INTEL 80x86

Organizacja pamięci wewnętrznej komputerów

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

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

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

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

Organizacja typowego mikroprocesora

Architektura komputera typu PC z procesorem IA-32

Architektura komputerów

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]

Zaawansowane Architektury Procesorów Część 2

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

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

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

Systemy Operacyjne Pamięć wirtualna cz. 2

Architektura komputerów

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

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Zarządzanie pamięcią operacyjną

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

dr inż. Jarosław Forenc

Pamięć wirtualna w AS/400

Programowanie mikroprocesorów jednoukładowych

Programowanie w asemblerze Środowiska 64-bitowe

Budowa systemów komputerowych

Tryb rzeczywisty to tryb pracy mikroprocesorów z rodziny procesorów x86, w którym procesor pracuje tak jak procesor Intel 8086.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Kompilator języka C na procesor 8051 RC51 implementacja

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Hierarchia pamięci w systemie komputerowym

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

organizacja procesora 8086

Architektura systemu komputerowego

Architektura komputerów

Programowanie niskopoziomowe

Architektura komputerów

Mikroprocesor Operacje wejścia / wyjścia

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Architektura Systemów Komputerowych

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

PODSTAWY INFORMATYKI

Komputery klasy PC. Dariusz Chaberski

Stronicowanie w systemie pamięci wirtualnej

Architektura mikrokontrolera MCS51

Struktura systemów komputerowych

Architektura mikrokontrolera MCS51

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

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

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

Wykład Tryby adresowania i modele pamięci adres_logiczny = segment : offset Tryb adresowania rzeczywistego

Podstawowe zagadnienia informatyki

Działanie systemu operacyjnego

Mapowanie bezpośrednie

Struktura i działanie jednostki centralnej

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Działanie systemu operacyjnego

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

Działanie systemu operacyjnego

Hardware mikrokontrolera X51

architektura komputerów w 1 1

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Transkrypt:

Mikroinformatyka Tryb wirtualny

Tryb wirtualny z ochroną Wprowadzony w 80286. Rozbudowany w 80386. - 4 GB pamięci fizycznej, - 64 TB przestrzeni wirtualnej, - pamięć podzielona na segmenty o rozmiarze do 4 GB, - układ stronicowania. Mechanizm segmentacji: - tłumaczy adres wirtualny na adres liniowy. Mechanizm stronicowania: - tłumaczy adres liniowy na adres fizyczny. Tryb wirtualny 8086: - jak w rzeczywistym w 8086, - dzięki stronicowaniu przestrzeń 1MB umieszczona dowolnie w przestrzeni fizycznej.

Adresowanie wirtualne Translacja adresu logicznego na liniowy. Segment jest wybierany za pomocą 16-bitowego selektora. Selektor wskazuje na deskryptor opisujący segment. Deskryptor jest umieszczony w tablicy deskryptorów. W deskryptorze jest zawarty adres początku segmentu.

Dodatkowe rejestry 80386 GDTR zawiera 32-bitowy adres liniowy globalnej tablicy deskryptorów i jej 16-bitowy rozmiar. IDTR zawiera 32-bitowy adres liniowy tablicy deskryptorów przerwań i jej 16-bitowy rozmiar. LDTR zawiera 16-bitowy selektor lokalnej tablicy deskryptorów, 32-bitowy adres tej tablicy i jej 16-bitową wielkość. TR rejestr bieżącego procesu. CR0 CR3 rejestry sterujące trybem pracy procesora oraz bloku stronicowania. DR0 DR7 rejestry uruchomieniowe. TR6, TR7 rejestry testowe do sprawdzania działania pamięci asocjacyjnej elementów tablic stron (TLB) usunięte w Pentium. FS, GS dodatkowe rejestry segmentowe (selektory segmentów).

Rejestry GDTR i IDTR GDTR Rejestr globalnej tablicy deskryptorów. IDTR Rejestr tablicy deskryptorów przerwań. Rejestry te zawierają adresy globalnych tablic systemowych i ich rozmiar. LGDT instrukcja załadowania GDTR. SGDT zapisanie wartości z GDTR. LIDT instrukcja załadowania IDTR. SIDT zapisanie wartości z IDTR.

Rejestry LDTR i TR LDTR Rejestr (selektor segmentu) lokalnej tablicy deskryptorów. TR Rejestr (selektor segmentu) aktualnie wykonywanego zadania. LLDT instrukcja załadowania LDTR. SLDT zapisanie wartości z LDTR. Segment, który zawiera LDT musi być opisany deskryptorem w GDT. Podczas ładowania selektora segmentu do LDTR z GDT jest uzupełniana część niewidoczna dla programisty. LTR instrukcja załadowania TR. STR zapisanie wartości z TR. Podczas ładowania selektora zadania jest uzupełniana część niewidoczna opisująca segment TSS (Task-State Segment). Zmiana zawartości TR zachodzi także podczas przełączania zadania.

Rejestr sterujący CR0 Znaczenie bitów rejestru CR0: PG bit stronicowania CD Cache Disable, 1 wyłącza pamięć cache. NW Not Write-through, 1 wyłącza tryb Write-through. AM Alignment Check, kontrola wyrównania danych w pamięci. WP Write Protect, zabezpieczenie przestrzeni użytkownika przed zapisem z poziomu zarządcy. NE Numeric Error, zgłaszania błędów z wewnętrznego koprocesora. ET Extension Type, obecność koprocesora. TS Task Switched, zgłoszenie wyjątku przy użyciu instrukcji FPU po przełączeniu z zadania już korzystającego z FPU (MMX, SSE...) EM Emulation, emulacja koprocesora. MP Monitor Coprocessor, monitorowanie instrukcji WAIT. PE Protection Enable, włączenie trybu chronionego.

Rejestry sterujące CR1, CR2, CR3 CR1 Zarezerwowany. CR2 Liniowy adres, który spowodował powstanie #PF. CR3 Page Directowy Base Register, adres bazowy katalogu stron. PCD Page-level Cache Disable, włączenie zapisu katalogu stron do pamięci cache. PWT Page-level Writes Transparent, tryb zapisu katalogu stron do pamięci cache (Write-back czy Write-through).

Rejestry uruchomieniowe DR0- DR3 DR0 DR3 Zawierają liniowy adres czterech pułapek (breakpoints). Użycie pułapek jest sterowane zawartością rejestrów DR6-DR7. Rejestry DR4 i DR5 są zarezerwowane. W Pentium użycie rejestrów DR4 i DR5 powoduje przy włączonych rozszerzeniach uruchamiania (bit DE w CR4) wyjątek #UD. Przy wyłączonych rozszerzeniach uruchamiania są mapowane na DR6 i DR7.

Rejestry uruchomieniowe DR6, DR7 DR7 Rejestr sterujący pułapkami. LENn Długość danych dla adresów pułapek (1,2 lub 4 bajty). R/Wn Rodzaj dostępu do pamięci (wykonanie, zapis, zapis/odczyt). GD Detekcja dostępu do rejestrów uruchomieniowych DR0-DR7. LE i GE Detekcja instrukcji (nie obsługiwane w Pentium). Gn Włączenie pułapki dla wszystkich zadań. Ln Włączenie pułapki dla aktualnego zadania. DR6 Rejestr stanu pułapek. BT Wyjątek spowodowany przełączeniem zadania. BS Wyjątek przy pracy krokowej. BD Wyjątek spowodowany dostępem do rejestru DRx. Bn Wyjątek spowodowany spełnieniem warunków pułapki.

Rejestry segmentowe w 386 Rejestry segmentowe zawierają selektory segmentów. Z każdym rejestrem segmentowym jest związany rejestr deskryptora segmentu jest niewidoczny dla programisty a jego ładowanie następuje automatycznie.

GDT Globalna tablica deskryptorów. Jest jedna w systemie. Element 0 nie używany. LDT Lokalna tablica deskryptorów. Może być jedna lub wiele osobna dla zadania. Jest umieszczona w segmencie opisanym przez deskryptor w GDT. Tablice deskryptorów

Deskryptor segmentu BASE 32-bitowy adres liniowy początku segmentu. LIMIT 20-bitowe pole rozmiaru segmentu. G Granularity, jednostka rozmiaru (1B, 4kB). B/D Default/Big, segment adresowany16- lub 32-bitowo. AVL Available To Software, do dowolnego wykorzystania. P Present, obecność segmentu w pamięci. DPL Descriptor Priviledge Level, poziom ochrony segmentu. S Descriptor type, wyróżnik deskryptora systemowego. TYPE Typ segmentu (n.p. bramka).

Deskryptor segmentu danych S 1 segment nie należący do grupy systemowych. TYPE 0 segment danych. E Expansion Direction, kierunek wzrostu. W Writable, czy zapisywalny. A Accessed, czy był używany.

Deskryptor segmentu kodu S 1 segment nie należący do grupy systemowych. TYPE 1 segment kodu. C Conforming, czy segment zgodny. R Readable, czy odczytywalny. A Accessed, czy był używany.

Deskryptor segmentu systemowego B/D Zarezerwowane AVL Zarezerwowane S 0 segment należący do grupy systemowych. TYPE Deskryptor segmentu lokalnej tablicy deskryptorów LDT. Deskryptor segmentu stanu zadania TSS. Deskryptor bamki wywołania. Deskryptor bramki przerwania. Deskryptor bramki pułapki. Deskryptor bramki zadania.

Wywołanie poprzez bramkę Wywołanie przez bramkę polega na podaniu jedynie selektora segmentu w którym jest zakodowana wywoływana procedura.

Deskryptor bramki wywołania Deskryptory bramek wywołania mogą być umieszczone w tablicach GDT i LDT. P bit obecności segmentu, do którego odwołuje się bramka. Param. Count liczba słów jaka ma być skopiowana ze stosu.

Adresowanie wirtualne

Stronicowanie 4kB

Stronicowanie 4MB

Wpis w katalogu stron 4 kb P Present, strona obecna w pamięci. R/W Read/Write, strona zapisywalna/odczytywalna. U/S User/Supervisor, ochrona na poziomie stronicowania. PWT Write-through. PCD Cache Disabled. A Accessed, strona była używana. 0 Zarezerwowane 0. PS Page Size, 0 oznacza 4kB, 1 oznacza 4 MB brak tablicy. G Global Page (ignorowany). Avail Bity przeznaczone dla programisty. 4 MB

Wpis w tablicy stron 4 kb P Present, strona obecna w pamięci. R/W Read/Write, strona zapisywalna/odczytywalna. U/S User/Supervisor, ochrona na poziomie stronicowania. PWT Write-through. PCD Cache Disabled. A Accessed, strona była używana. D Dirty, strona była modyfikowana i trzeba ją zapisać przed usunięciem z pamięci. PAT Page Attribute Table. G Global Page, zapobiega usuwaniu strony z TLB. Avail Bity przeznaczone dla programisty.

Stronicowanie W przypadku, kiedy strona nie jest załadowana do pamięci pojawia się #PF obsługą tego wyjątku i załadowaniem strony ma się zająć system operacyjny. Najczęściej używane wpisy w katalogu i tablicy stron są przechowywane w specjalnej pamięci cache TLB (Translation Lookaside Buffer). W nowych procesorach wprowadzono dodatkowy poziom tablicy stron (wskażnik katalogu przed katalogiem). Nowe procesory obsługują również strony o rozmiarze 2 MB oraz adresowanie 36-bitowe.