Przerwania w nowoczesnych architekturach. Systemy Operacyjne. Obsługa przerwań - powtórka. problem przetwarzania potokowego i superskalarnego,

Podobne dokumenty
Wykład 2. Struktury systemów komputerowych. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Urządzenia wejścia-wyjścia

Systemy wejścia-wyjścia. wyjścia

Urządzenia wej.-wyj. Plan (1) Plan (2)

Urządzenia wej.-wyj.

Urządzenia wej.-wyj. Plan (1) Plan (2) Rodzaje urządzeń wejściawyjścia

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

Architektura komputerów

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Architektura komputerów

Wykład 14. Zagadnienia związane z systemem IO

Cele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków.

Struktura systemów komputerowych

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

ARCHITEKTURA PROCESORA,

Architektura komputera

Budowa systemów komputerowych

Działanie systemu operacyjnego

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

LEKCJA TEMAT: Zasada działania komputera.

System wejścia-wyjścia

Pamięci masowe. ATA (Advanced Technology Attachments)

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputerów

Architektura komputerów

Urządzenia zewnętrzne

Systemy operacyjne system przerwań

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Architektura komputerów

Architektura systemu komputerowego

Administracja systemem Linux

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Systemy operacyjne. Struktura i zasady budowy. Rozdział 1 Wprowadzenie do systemów komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Architektura i administracja systemów operacyjnych

Zagadnienia związane z systemem IO

Technologia informacyjna. Urządzenia techniki komputerowej

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

Architektura komputerów. Układy wejścia-wyjścia komputera

URZĄDZENIA WEJŚCIA-WYJŚCIA

System mikroprocesorowy i peryferia. Dariusz Chaberski

System wejścia-wyjścia

SYSTEMY WEJŚCIA-WYJŚCIA

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Stronicowanie w systemie pamięci wirtualnej

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Układy wejścia/wyjścia

RAID 1. str w przypadku różnych szybkości cała macierz będzie pracowała z maksymalną prędkością najwolniejszego dysku

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Technologie informacyjne - wykład 2 -

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

Macierze RAID MARCEL GAŃCZARCZYK 2TI 1

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

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

Systemy operacyjne Procesy i wątki

Architektura systemów informatycznych

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

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

Systemy Operacyjne i Sieci Komputerowe

ZASADY PRZECHOWYWANIA DANYCH

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Wykład 9 Struktury pamięci masowej

Organizacja typowego mikroprocesora

Zarządzanie procesorem

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

dr inż. Jarosław Forenc

Prezentacja systemu RTLinux

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

Wykład 2. Temat: (Nie)zawodność sprzętu komputerowego. Politechnika Gdańska, Inżynieria Biomedyczna. Przedmiot:

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

Architektura komputerów

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Zarządzanie pamięcią w systemie operacyjnym

Architektura systemu komputerowego

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

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

System pamięci. Pamięć wirtualna

dr inż. Jarosław Forenc

Architektura mikroprocesorów TEO 2009/2010

Urządzenia wejścia-wyjścia. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

System komputerowy. System komputerowy

Wprowadzenie do systemów operacyjnych

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]

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

Informatyka. informatyka i nauki komputerowe (computer science)

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Transkrypt:

11 12 1 10 2 9 3 8 4 7 6 5 Przerwania w nowoczesnych architekturach problem przetwarzania potokowego i superskalarnego, Systemy Operacyjne Obsługa wejścia/wyjścia dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska Systemy operacyjne / Obsługa wejścia/wyjścia str.1/26 Przerwaniem precyzyjnym (ang. precise interrupt) nazywa się przerwanie, które pozostawia system w dobrze zdefiniowanym stanie. Implikuje następujące własności: 1. ustalona jednoznacznie wartość licznika rozkazów (LR), 2. wszystkie instrukcje przed LR w pełni wykonane, 3. żadna instrukcja po LR nie została wykonana, 4. znany stan wykonania instrukcji wskazywanej aktualnie przez LR. pozostałe przerwania określa się mianem przerwań nieprecyzyjnych (ang. imprecise interrupts). przerwania nieprecyzyjne wymagają większego wykorzystania stosu, są źródłem wolniejszej obsługi. przerwania precyzyjne wymagają dużo bardziej złożonej logiki procesora. Systemy operacyjne / Obsługa wejścia/wyjścia str.3/26 Obsługa przerwań - powtórka Bezpośredni dostęp do pamięci (DMA) CPU 3. CPU acks interrupt 2. Controller issues interrupt Interrupt 1. Device is finished Disk Clock Keyboard Printer CPU 1. CPU programs the DMA DMA Address Count Control 4. Ack Disk Drive Buffer Main memory po zakończeniu zlecenia urządzenie zewnętrzne generuje przerwanie ustawienie sygnału na odpowiedniej linii, sygnał wykrywany przez kontroler przerwań, kontroler w zależności od aktualnego stanu i priorytetu urządzenia wstrzymuje bądź natychmiast generuje sygnał przerwania do procesora wystawiając na magistrali adresowej numer przerwania, procesor wykonuje program ustalony odpowiednim adresem z przypisanego danemu przerwaniu wektora przerwań, zazwyczaj procedura obsługi wysyła do kontrolera kod zwolnienia zajętości kontrolera przerwań dopuszczając obsługę kolejnych przerwań. Bus Interrupt when done 2. DMA requests transfer to memory 3. Data transferred moduły DMA kontrolują wymianę danych pomiędzy pamięcią główną a urządzeniami zewnętrznymi, wykorzystanie wolnego czasu magistrali bądź (zazwyczaj) wstrzymywanie procesora, na jeden cykl co jakiś czas, w związku z przesyłaniem danych po przez magistralę (po jednym słowie), praca procesora przerywana jednorazowo po przesłaniu całego bloku danych, nie ma potrzeby przełączania kontekstu w trakcie transferu. Bus Systemy operacyjne / Obsługa wejścia/wyjścia str.2/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.4/26

Obługa wejścia/wyjścia Cele oprogramowania we/wy Podział typów urządzeń zewnętrznych: urządzenia blokowe, możliwy odczyt/zapis każdego bloku niezależnie, urządzenia znakowe, łańcuch znaków bez podziału na bloki, nie ma adresowalności ani ustawianego wskaźnika bieżącej pozycji, czasem, ze względu na specyfikę, wyróżnia się jako osobną klasę urządzenia sieciowe/komunikacyjne, niektóre urządzenia nie pasują do powyższej klasyfikacji, na przykład czasomierze (ang. timers), niezależność obsługi ogólnej od specyfiki urządzenia, ujednolicenie nazewnictwa, obsługa błędów w im niższej warstwie tym lepiej, metoda przesyłania - blokująca/nieblokująca, synchroniczna/asynchroniczna, buforowanie. Systemy operacyjne / Obsługa wejścia/wyjścia str.5/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.7/26 Różnice w zarządzaniu we/wy Poziomy obsługi urządzeń zewnętrznych Różnice w zarządzaniu urządzeniami zewnętrznymi: złożoność obsługi, wymóg dodatkowego wsparcia sprzętowego, rozróżnianie priorytetów, jednostka przepływu, reprezentacja danych, reakcja urządzeń i obsługa błędów, W systemie komputerowym wyróżnia się następujące poziomy obsługi: 1. poziom fizyczny, bezpośrednia manipulacja rejestrami urządzeń zewnętrznych, obsługa przerwań, inicjowanie transmisji, 2. poziom wywołań systemowych - komunikacja z programi obsługi urządzeń zewnętrznych, 3. poziom usług - oferuje jednolitą metodę dostępu. metoda komunikacji, metoda oprogramowywania. Systemy operacyjne / Obsługa wejścia/wyjścia str.6/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.8/26

Komunikacja z urządzeniami zewnętrznymi (I) Programowanie urządzeń zewnętrznych Jak procesor komunikuje się z rejestrami kontrolnymi i jak odwołuje się do buforów danych urządzenia zewnętrznego. Dwie techniki komunikacji: 1. porty we/wy, z każdym rejestrem kontrolnym skojarzony port o ustalonym numerze. Komunikacja przez specjalne instrukcje: IN REG, PORT OUT PORT, REG 2. we/wy odwzorowywane w pamięci sterownik może być w całości napisany w C, nie wymaga wstawek asemblerowych, bo nie ma specjalnych instrukcji, nie wymaga dedykowanego mechanizmu ochrony, szybsze testowanie zawartości rejestrów kontrolnych, Metody programowania urządzeń zewnętrznych 1. programowalne we/wy (ang. polling, busy waiting), 2. programowanie z wykorzystaniem przerwań (ang. interrupt-driven), 3. z wykorzystaniem DMA. ale wymaga wyłączenia cache dla regionu odwzorowania, komplikuje architekturę rozwiązań z szynami wielu typów. Systemy operacyjne / Obsługa wejścia/wyjścia str.9/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.11/26 Komunikacja z urządzeniami zewnętrznymi (II) Programowalne we/wy Two address One address space Two address spaces 0xFFFF Memory I/O ports copy_from_user(buffer, p, count); for (i = 0; i < count; i++) { / * p is the kernel bufer * / * loop on every character * / while ( * printer_status_reg!= READY) ; / * loop until ready * / * printer_data_register = p[i]; } / * output one character * / return_to_user( ); 0 (a) (c) Przykład: pisanie łańcucha znaków na drukarkę a. przestrzenie rozłączne, porty wejścia/ wyjścia, b. odzworowanie w adresy pamięci, c. podejścia mieszane, np. w Pentium: adresy 640kB - 1MB zarezerwowane dla urządzeń zewnętrznych a ponadto porty we/wy 0 64K. Systemy operacyjne / Obsługa wejścia/wyjścia str.10/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.12/26

Programowanie przerwaniowe we/wy Struktura warstwowa systemu we/wy copy_from_user(buffer, p, count); if (count == 0) { enable_interrupts( ); unblock_user( ); while ( * printer_status_reg!= READY) ; } else { * printer_data_register = p[0]; * printer_data_register = p[i]; scheduler( ); count = count 1; i = i + 1; } acknowledge_interrupt( ); return_from_interrupt( ); (a) Przykład: pisanie łańcucha znaków na drukarkę I/O request Layer User processes Device-independent software Device drivers Interrupt handlers Hardware I/O reply I/O functions Make I/O call; format I/O; spooling Naming, protection, blocking, buffering, allocation Set up device registers; check status Wake up driver when I/O completed Perform I/O operation a. kod obsługi funkcji systemowej, b. właściwa obsługa przerwania. Systemy operacyjne / Obsługa wejścia/wyjścia str.13/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.15/26 Programowanie z wykorzystaniem DMA Warstwa niezależna od urządzeń ukrycie specyfiki poszczególnych urządzeń zbliżonego typu, copy_from_user(buffer, p, count); acknowledge_interrupt( ); set_up_dma_( ); unblock_user( ); scheduler( ); return_from_interrupt( ); (a) Przykład: pisanie łańcucha znaków na drukarkę a. kod obsługi funkcji systemowej, b. właściwa obsługa przerwania, redukcja liczby przerwań z jednego na drukowany znak do jednego na wydruk bufora, nie zawsze najlepsza metoda kwestie rozmiaru zakresu i względnej szybkości procesora i kontrolera DMA. nazywanie urządzeń z wykorzystaniem numerów major i minor, ochrona urządzeń przed nieautoryzowanym dostępem, obsługa różnych rozmiarów bloków różnych urządzeń, udostępnianie mechanizmów buforowania (tzw. programowy cache), zarządzanie dostępnością urządzeń blokowych, zarządzanie przydziałem urządzeń użytkownikom, część systemu obsługi błędów. Systemy operacyjne / Obsługa wejścia/wyjścia str.14/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.16/26

Wydajność dostępu do dysku Redundancja w zarządzaniu dyskami czas opóźnienia (ang. seek time) czas ustawienia głowicy na docelowej ścieżce, opóźnienie rotacyjne (ang. rotational delay/latency) czas ustawienia głowicy na początku docelowego sektora, czas dostępu (ang. access time) czas wyszukiwania + opóźnienie rotatcyjne czas wyszukiwania decyduje o wydajności, duża rola dyskowej pamięci podręcznej (algorytmy wymiany LRU, LFU). RAID (ang. Redundant Array of Independent Disks) nazwa i klasyfikacja podana przez pracowników Uniwersytetu w Berkeley. technika tworzenia dysku wirtualnego o ustalonych własnościach związanych z niezawodnością, wydajnością i administrowalnością z grupy niezależnych dysków fizycznych, dane dystrybuowane na dyski macierzy, wykorzystanie redundancji w celu zwiększenia odporności na uszkodzenia, w szczególności odporności na uszkodzenia poszczególnych dysków. Systemy operacyjne / Obsługa wejścia/wyjścia str.17/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.19/26 Algorytmy szeregowania dostępu do dysku Rozwiązania RAID (RAID 0) Ze względu na zlecającego: RSS (ang. random scheduling) losowy, FIFO najbardziej sprawiedliwy, PRI priorytetowy, z szeregowaniem realizowanym zewnętrznie, LIFO (ang. Last In First Out) maksymalizacja lokalności i wykorzystania zasobów. Ze względu na zlecenie: SSTF (ang. shortest service time first) z najmniejszym ruchem ramienia, SCAN algorytm windy, ramię przesuwa się w dół i w górę obsługując zlecenia, C-SCAN cykliczny SCAN, ramię przesuwa się w jednym kierunku z szybkim nawrotem, (a) RAID level 0 nie ma redundancji danych, podział na konkatenację (ang. concatenation) i paskowanie (ang. stiping), zwiększenie wydajności i elastyczności zarządzania, rozwiązanie oszczędne, brak odporności na uszkodzenia. Systemy operacyjne / Obsługa wejścia/wyjścia str.18/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.20/26

Rozwiązania RAID (RAID 1) Rozwiązania RAID (RAID 3) odbicie lustrzane (ang. mirroring), pełna redundancja danych, z punktu widzenia niezawodności najlepsze rozwiązanie, rozwiązanie kosztowne. RAID level 1 (d) (a) Bit 1 Bit 2 Bit 3 Bit 4 Parity RAID level 3 rozwiązanie analogiczne do RAID 2, z bitem parzystości zamiast kodu korekcyjno-detekcyjnego, duża Strip wydajność 0 w Strip kontekście 2 transferu, mała w kontekście przepustowości obsługi zapytań. RAID level 0 RAID level 1 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 (c) RAID level 2 Systemy operacyjne / Obsługa wejścia/wyjścia str.21/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.23/26 Rozwiązania RAID (RAID 2) (d) Parity Rozwiązania RAID (RAID 4) Bit 1 Bit 2 Bit 3 Bit 4 RAID level 3 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 (c) RAID level 2 (e) P0-3 P4-7 RAID level 4 P8-11 kod korekcyjny wyznaczany w analizie poszczególnych bitów, wykorzystanie kodów korekcyjno-detekcyjnych (kod Hamminga), rozwiązanie kosztowne wydajnościowo i pamięciowo. RAID 4 RAID 6, niezależny dostęp do poszczególnych dysków, zlecenia mogą byćstrip obsługiwane 2 niezależnie P0-3 równolegle, lepsza wydajność w kontekście przepustowości obsługi zapytań, P4-7 paskowanie z dużymi paskami, (f) P8-11 RAID level 5 parzystość 2 P12-15 wyliczana 3 na poziomie 4 Strip bitu, 15 ale wymaga odczytu bloków. P16-19 6 7 8 9 Systemy operacyjne / Obsługa wejścia/wyjścia str.22/26 Systemy operacyjne / Obsługa wejścia/wyjścia str.24/26

Rozwiązania RAID (RAID 5) P4-7 (f) P8-11 2 P12-15 3 4 P16-19 6 7 8 P0-3 5 9 RAID level 5 rozwiązanie analogiczne do paskowania z dodanym bitem parzystości, rozwiązanie ekonomiczne - redundancja kosztuje jeden dysk, dobra wydajność odczytu, istotna degradacja wydajności zapisu, jakość rozwiązania determinowana odpowiednimi wartościami parametrów konfiguracyjnych wpływających na wydajność. Systemy operacyjne / Obsługa wejścia/wyjścia str.25/26 RAID - aspekty dodatkowe RAID 6, jak RAID 5 z dwoma niezależnie rozmieszczanymi sumami kontrolnymi, RAID 10 = 1 + 0 rozwiązania sprzętowe a rozwiązania programowe, stosowane produkcyjne poziomy RAID: 0, 1, 5, 1+0, 0+1, typowa konfiguracja w zastosowaniach: RAID 1 dla małych danych krytycznych (np. dyski systemu operacyjnego), RAID 5 dla dużych danych produkcyjnych (np. dyski podłączonej macierzy). Systemy operacyjne / Obsługa wejścia/wyjścia str.26/26