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

Podobne dokumenty
Prezentacja systemu RTLinux

Architektura komputerów

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Architektura komputerów

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]

Zarządzanie zasobami pamięci

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

Działanie systemu operacyjnego

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

4. Procesy pojęcia podstawowe

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Zarządzanie pamięcią operacyjną

4. Procesy pojęcia podstawowe

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

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ądzanie pamięcią w systemie operacyjnym

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

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

Zarządzanie procesami i wątkami

Przykładowe pytania DSP 1

ARCHITEKTURA PROCESORA,

Działanie systemu operacyjnego

Mikrokontroler ATmega32. Język symboliczny

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Systemy operacyjne III

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

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

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Pytania do treści wykładów:

Jądro systemu operacyjnego

dr inż. Jarosław Forenc

Kurs Zaawansowany S7. Spis treści. Dzień 1

Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań

Systemy Operacyjne Pamięć wirtualna cz. 2

Projektowanie. Projektowanie mikroprocesorów

Mikroinformatyka. Wielozadaniowość

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Informatyka. informatyka i nauki komputerowe (computer science)

PAMIĘĆ OPERACYJNA...107

Wstęp Architektura... 13

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

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

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

Materiały pomocnicze 1

Systemy operacyjne III

Technologie informacyjne (2) Zdzisław Szyjewski

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Organizacja typowego mikroprocesora

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Stronicowanie w systemie pamięci wirtualnej

Mikroprocesory rodziny INTEL 80x86

Schematy zarzadzania pamięcia

Spis treści. Podstawy posługiwania się komputerem

2. Architektura mikrokontrolerów PIC16F8x... 13

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

4. Procesy pojęcia podstawowe

LEKCJA TEMAT: Zasada działania komputera.

Przedmiot: SYSTEMY OPERACYJNE Czas trwania: semestr IV Przedmiot: obowiązkowy Język wykładowy: polski POZIOM

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

PRZEWODNIK PO PRZEDMIOCIE

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

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

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

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

Struktura i działanie jednostki centralnej

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Architektura komputerów

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Architektura systemów komputerowych. dr Artur Bartoszewski

1.1 Definicja procesu

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

Systemy operacyjne. Paweł Pełczyński

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Systemy operacyjne III

Transkrypt:

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów rodziny x86 w trybie rzeczywistym... 17 1.1.1. Rejestry procesora... 18 1.1.2. Segmentacja pamięci w trybie rzeczywistym... 19 1.1.3. Tryby adresowania... 22 1.1.4. Segmenty programowe... 24 1.2. Model procesorów rodziny x86 w trybie chronionym... 26 1.2.1. Segmentacja pamięci w trybie chronionym... 28 1.2.2. Tryby adresowania w 32-bitowym trybie chronionym... 32 1.3. Obsługa przerwań i wyjątków... 34 1.3.1. Typy przerwań... 34 1.3.2. Obsługa przerwań i wyjątków w trybie rzeczywistym... 36 1.3.3. Obsługa przerwań i wyjątków w trybie chronionym... 38 2. Podstawy programowania procesorów rodziny x86 w trybie rzeczywistym... 43 2.1. Składnia programu... 43 2.1.1. Identyfikatory... 43 2.1.2. Liczby całkowite... 44 2.1.3. Znaki alfanumeryczne i teksty... 44 2.1.4. Format linii programu... 44 2.1.5. Dyrektywy asemblera definiujące dane... 45 2.2. Instrukcje przesłań danych oraz operacje arytmetyczne... 47 2.2.1. Instrukcje przesłań danych... 48 2.2.2. Instrukcje dodawania i odejmowania... 50 2.2.3. Dodawanie i odejmowanie liczb dziesiętnych w kodzie BCD... 51 2.2.4. Instrukcje mnożenia... 54 2.2.5. Instrukcje dzielenia... 54 2.2.6. Mnożenie i dzielenie liczb dziesiętnych w kodzie BCD... 55 2.2.7. Zmiana rozmiaru liczby... 56 2.3. Instrukcje skoków i pętli... 57 2.3.1. Skoki bezwarunkowe bezpośrednie... 57 2.3.2. Skoki bezwarunkowe pośrednie... 58 2.3.3. Instrukcje porównania i skoków warunkowych... 59 2.3.4. Instrukcje pętli... 61

6 Spis treści 2.4. Operacje logiczne... 63 2.4.1. Instrukcje operacji logicznych... 64 2.4.2. Instrukcje przesunięć... 65 2.5. Reprezentacja danych... 66 2.5.1. Skalarne typy danych... 67 2.5.2. Rekordy i operacje na danych upakowanych... 73 2.5.3. Zbiory... 76 2.5.4. Tablice... 78 2.5.5. Struktury... 81 2.6. Dynamiczne struktury danych... 83 2.6.1. Teksty... 83 2.6.2. Listy... 90 2.7. Stos... 96 2.7.1. Sprzętowe wykorzystanie stosu podczas realizacji instrukcji CALL adres... 99 2.7.2. Podprogramy... 100 2.7.3. Przekazywanie parametrów do podprogramów... 102 2.7.4. Dane lokalne podprogramów... 106 2.8. Programowanie zmiennoprzecinkowej jednostki arytmetycznej... 107 2.8.1. Architektura... 107 2.8.2. Instrukcje przesłań... 110 2.8.3. Instrukcje operacji arytmetycznych... 111 2.8.4. Instrukcje porównania... 112 2.8.5. Instrukcje obliczania wartości niektórych funkcji przestępnych... 114 2.8.6. Instrukcje sterujące... 115 2.8.7. Odwrotna notacja polska (ONP) i jej zastosowanie w obliczeniach. numerycznych... 116 2.8.8. Przykładowe programy obliczeń numerycznych... 118 2.9. Makropolecenia... 122 2.9.1. Język makropoleceń... 122 2.9.2. Bloki powtórzeń... 123 2.9.3. Definiowanie i wywoływanie makropoleceń... 125 2.10. Podstawowe operacje we/wy w systemie operacyjnym DOS... 130 2.10.1. Zakończenie programu... 130 2.10.2. Wyprowadzanie tekstu na monitor ekranowy... 130 2.10.3. Wprowadzanie tekstu z klawiatury... 132 2.10.4. Wyprowadzanie liczb na monitor ekranowy... 134 2.10.5. Podstawowe operacje plikowe... 135 2.10.6. Wybrane usługi BIOS-u... 146 3. Przegląd kompilatorów asemblera... 156 3.1. Podstawowa struktura programu... 156 3.2. Sposób kompilacji... 162 3.3. Operacje na zmiennych... 163 3.4. Deklaracje tablic... 165 3.5. Procedury... 165 3.6. Deklaracje i dostęp do struktur danych... 167 3.7. Makropolecenia... 172 3.8. Kompilacja warunkowa... 175

Spis treści 7 4. Praca procesorów rodziny x86 w trybie chronionym... 185 4.1. Przełączenie procesora do trybu chronionego... 186 4.2. Obsługa przerwań i wyjątków w trybie chronionym... 195 4.3. Wykorzystanie pamięci rozszerzonej w trybie chronionym... 197 4.4. Przełączanie zadań... 203 4.4.1. Pseudonimy deskryptorów... 212 4.4.2. Przełączanie zadań z wykorzystaniem furtki zadania... 213 4.5. Przełączanie zadań inicjowane przerwaniami sprzętowymi... 215 4.5.1. Programowanie kontrolera przerwań w trybie chronionym... 215 4.5.2. Przełączanie zadań inicjowane przerwaniami sprzętowymi nr 0 i 1... 217 4.6. Separacja środowisk operacyjnych poszczególnych procesów oraz lokalne tablice deskryptorów... 222 4.7. Poziomy uprzywilejowania oraz funkcjonowanie systemu ochrony... 225 4.8. Zadania realizowane na różnych poziomach uprzywilejowania... 234 4.9. Wprowadzenie do 32-bitowego trybu chronionego... 235 4.10. Adresowanie w 32-bitowym trybie chronionym... 237 4.11. Obsługa klawiatury w trybie chronionym... 238 5. Stronicowanie pamięci operacyjnej... 243 5.1. Przegląd algorytmów przydziału pamięci... 243 5.1.1. Przydział pamięci oparty na blokach o stałym rozmiarze... 244 5.1.2. Dynamiczny przydział bloków... 244 5.1.3. Przemieszczane bloki pamięci... 245 5.2. Zasada stronicowania pamięci... 246 5.3. Elementy architektury procesorów rodziny x86 odpowiedzialne za stronicowanie... 249 5.3.1. Rejestry sterujące CR0, CR2, CR3, CR4... 253 5.4. Inicjowanie stronicowania... 256 5.5. Stronicowanie a wielozadaniowość... 259 5.6. Realizacja stronicowania dla całego dostępnego obszaru pamięci operacyjnej... 265 5.7. Stronicowanie jednopoziomowe z rozmiarem strony 4 MB... 268 5.8. Stronicowanie o rozszerzonym adresie fizycznym... 271 5.8.1. Stronicowanie z rozszerzonym adresem fizycznym i rozmiarem strony 4 KB (stronicowanie trójstopniowe)... 272 5.8.2. Stronicowanie z rozszerzonym adresem fizycznym i rozmiarem strony 2 MB... 274 5.8.3. PSE-36 stronicowanie z rozszerzonym adresem fizycznym i rozmiarem. strony 4 MB... 276 5.8.4. Analiza programu paging6.asm... 277 5.9. Mechanizm zarządzania przydzielaniem ramek binarna mapa pamięci... 278 6. Pamięć wirtualna... 284 6.1. Zasada funkcjonowania pamięci wirtualnej... 284 6.2. Obsługa wyjątków nr 11 i 14... 287 6.2.1. Kod błędu dla wyjątku nieobecnego segmentu (nr 11)... 287 6.2.2. Kod błędu dla wyjątku braku strony (nr 14)... 289 6.3. Tablice zapamiętanych stron/segmentów... 291 6.3.1. Tablice zapamiętanych stron... 292 6.3.2. Tablice zapamiętanych segmentów... 293 6.4. Wybrane algorytmy zastępowania stron... 294 6.4.1. Algorytm FIFO... 295

8 Spis treści 6.4.2. Algorytm LRU... 295 6.4.3. Algorytm dodatkowych bitów odwołań... 295 6.4.4. Algorytm drugiej szansy... 295 6.4.5. Algorytmy rodziny buforowania stron... 296 6.5. Przykładowa implementacja stronicowania na żądanie... 296 6.5.1. Analiza programu paging3.asm... 297 7. Tryb zadań wirtualnych 8086... 305 7.1. Przełączenie procesora w tryb VM86... 306 7.2. Obsługa wyjątków i przerwań sprzętowych w procesie działającym w VM86... 308 7.2.1. Analiza programu v86_0.asm... 312 7.3. Obsługa przerwań maskowalnych w trybie VM86... 315 7.3.1. Analiza programu v86_1.asm... 317 7.4. Obsługa przerwań programowych... 320 7.4.1. Analiza programu v86_2.asm... 323 7.5. Obsługa we/wy w VM86... 324 7.5.1. Analiza programu v86_3.asm... 326 8. Wielozadaniowość... 328 8.1. Podstawowe pojęcia z zakresu wielozadaniowości... 328 8.1.1. Systemy wielozadaniowe przetwarzania wsadowego... 328 8.1.2. Systemy wielozadaniowe z podziałem czasu... 331 8.1.3. Systemy czasu rzeczywistego... 331 8.1.4. Zastosowanie systemów wieloprocesorowych... 332 8.1.5. Rola programu szeregującego... 332 8.2. Przegląd wybranych algorytmów szeregowania zadań... 335 8.2.1. Algorytm cykliczny... 337 8.2.2. Algorytm planowania priorytetowego opartego na zmiennym kwancie czasu... 338 8.2.3. Algorytm postarzania priorytetów... 339 8.2.4. Planowanie priorytetowe z użyciem kolejek wielopoziomowych... 341 8.2.5. Kolejki wielopoziomowe ze sprzężeniem zwrotnym... 343 8.3. Przykładowe implementacje wybranych algorytmów pracy programu szeregującego... 344 8.3.1. Implementacja algorytmu cyklicznego... 344 8.3.2. Analiza programu mult1.asm... 346 8.3.3. Implementacja planowania priorytetowego na zasadzie zmiennego kwantu. czasu... 354 8.3.4. Implementacja planowania metodą postarzania priorytetów... 358 8.3.5. Implementacja planowania metodą wielopoziomowych kolejek zadań... 363 8.4. Synchronizacja procesów... 373 8.4.1. Sekcja krytyczna... 373 8.4.2. Synchronizacja procesów za pomocą blokowania przerwań... 375 8.4.3. Zmienne blokujące... 376 8.4.4. Semafory binarne (muteksy)... 378 8.4.5. Przykładowa implementacja semaforów binarnych... 379 8.5. Komunikacja międzyprocesowa... 384 8.5.1. Wymiana komunikatów... 385 8.5.2. Przykładowa implementacja wymiany komunikatów... 385

Spis treści 9 9. Start systemu... 395 9.1. System plików FAT12... 396 9.1.1. Tablica FAT12 analiza wpisów i translacja adresów... 399 9.2. Program rozruchowy... 403 9.2.1. Instalacja programu rozruchowego w pierwszym sektorze dyskietki... 403 9.2.2. Implementacja programu rozruchowego... 405 10...Przykładowa realizacja jądra wielozadaniowego systemu operacyjnego system operacyjny DAMIANIX... 423 10.1. Założenia funkcjonalne... 423 10.2. Zakres projektu... 424 10.3. Struktura systemu operacyjnego... 424 10.4. Funkcjonalność modułów systemu operacyjnego... 424 10.4.1. Moduł inicjalizacji... 425 10.4.2. Moduł pamięci... 427 10.4.3. Moduł wielozadaniowości... 429 10.4.4. Moduł przerwań... 432 10.4.5. Moduł dyskietki... 434 10.4.6. Moduł interpretatora... 435 10.4.7. Moduł systemu plików... 436 10.4.8. Moduł urządzeń... 436 10.4.9. Moduł ekranu... 438 10.4.10. Moduł kolejek... 439 10.4.11. Moduł sterty... 439 10.4.12. Moduł czasomierza... 439 10.4.13. Moduł usług... 440 10.4.14. Moduł wyjątków... 440 10.5. Specyfikacja zewnętrzna... 440 10.5.1. Interfejs z użytkownikiem... 440 10.5.2. Polecenia... 442 10.6. Instalacja systemu operacyjnego z plików źródłowych... 445 10.7. Format programów obsługiwanych przez system... 446 10.8. Mapa pamięci systemu operacyjnego... 447 10.9. Możliwe kierunki rozwoju... 448 Dodatki... 449 A1. Pliki załącznikowe... 451 Plik strukt.txt... 451 Plik gdt.txt... 452 Plik makra.txt... 452 Plik proc.txt... 465 Plik a20.txt... 467 Plik dane.txt... 470 Plik kod.txt... 471 Plik mult.txt... 472 Plik paging.txt... 480 Plik pm_data.txt... 481 Plik pm_exc.txt... 485

10 Spis treści Plik pm_idt.txt... 485 Plik proc32.txt... 485 Plik v86.txt... 487 A2. Podstawy trybu chronionego (programy z rozdziału 4)... 490 Program p0.asm... 490 Program task_2.asm... 491 Program task_3.asm... 493 Program task_4.asm... 495 Program task_5.asm... 498 Program task_6.asm... 500 Program task_7.asm... 503 Program task_8.asm... 508 Program task_9.asm... 515 Program task_10.asm... 520 Program pm32bit.asm... 524 Program adr.asm... 528 Program sprzet1.asm... 533 A3. Stronicowanie i pamięć wirtualna (programy z rozdziału 5 i 6)... 545 Program paging1.asm... 545 Program paging2.asm... 547 Program paging3.asm... 555 Program paging4.asm... 562 Program paging5.asm... 565 Program paging6.asm... 566 Program paging7.asm... 570 A4. Tryb wirtualnych zadań 8086 (programy z rozdziału 7)... 578 Program v86_0.asm... 578 Program v86_1.asm... 583 Program v86_2.asm... 589 Program v86_3.asm... 594 A5. Wielozadaniowość (programy z rozdziału 8)... 601 Program mult1.asm... 601 Program mult2.asm... 607 Program mult3.asm... 612 Program mult4.asm... 618 Program mult5.asm... 630 Program mult6.asm... 642 B. Zestaw wybranych rozkazów asemblera dla procesorów x86... 655 Literatura... 673 Skorowidz... 674