ROZDZIA 12 Systemy wejciawyjcia Sprzt wejciawyjcia Uytkowy interfejs

  • Slides: 22
Download presentation
ROZDZIAŁ 12: Systemy wejścia-wyjścia • • Sprzęt wejścia-wyjścia Użytkowy interfejs wejścia-wyjścia Podsystem wejścia-wyjścia w

ROZDZIAŁ 12: Systemy wejścia-wyjścia • • Sprzęt wejścia-wyjścia Użytkowy interfejs wejścia-wyjścia Podsystem wejścia-wyjścia w jądrze Przekształcenie żądań operacji wejścia-wyjścia na operacje systemowe • Wydajność Podstawy Systemów Operacyjnych 12. 1 Silberschatz and Galvin © 1998

Sprzęt wejścia-wyjścia • Niewiarygodna różnorodność urządzeń we/wy • Pojęcia wspólne – port – szyna

Sprzęt wejścia-wyjścia • Niewiarygodna różnorodność urządzeń we/wy • Pojęcia wspólne – port – szyna (łańcuch lub dzielony bezpośredni dostęp) – sterownik (adapter główny) • Instrukcje we/wy kontrolują urządzenia • Urządzenia mają adresy używane przez – bezpośrednie instrukcje we/wy – mapowanie pamięci we/wy Podstawy Systemów Operacyjnych 12. 2 Silberschatz and Galvin © 1998

Odpytywanie • Określenie stanu urządzenia – gotowy – zajęty – błąd • Zastosowanie cyklu

Odpytywanie • Określenie stanu urządzenia – gotowy – zajęty – błąd • Zastosowanie cyklu „Zajęty-czekaj” dla oczekiwania na zakończenie pracy przez urządzenia we/wy Podstawy Systemów Operacyjnych 12. 3 Silberschatz and Galvin © 1998

Przerwania • Przerwanie skierowane do procesora jest wyzwalane z urządzenia we/wy • Procedura obsługi

Przerwania • Przerwanie skierowane do procesora jest wyzwalane z urządzenia we/wy • Procedura obsługi przerwania przejmująca przerwanie • Zastosowanie maskowania przerwań do ignorowania lub opóźniania niektórych przerwań • Wektor przerwań rozprowadzający przerwanie do właściwej procedury obsługowej – bazujący na priorytetach przerwań – niektóre przerwania są niemaskowalne • Mechanizm przerwań jest także używany dla wyjątków Podstawy Systemów Operacyjnych 12. 4 Silberschatz and Galvin © 1998

Przerwanie - cykl wejścia-wyjścia Procesor Sterownik wejścia-wyjścia 1 Moduł sterujący urządzenia rozpoczyna operację wejścia-wyjścia

Przerwanie - cykl wejścia-wyjścia Procesor Sterownik wejścia-wyjścia 1 Moduł sterujący urządzenia rozpoczyna operację wejścia-wyjścia 2 Rozpoczęcie operacji wejścia-wyjścia Między rozkazami procesor sprawdza występowanie przerwań 3 4 7 Procesor przyjmuje przerwanie i przekazuje sterowanie procedurze obsługi przerwania Gotowość wejścia, wyjście zakończone lub błąd – wytworzenie sygnału przerwania 5 Procedura obsługi przerwania przetwarza dane i wykonuje powrót po przerwaniu 6 Procesor podejmuje wykonywanie przerwanego zadania Podstawy Systemów Operacyjnych 12. 5 Silberschatz and Galvin © 1998

Bezpośredni dostęp do pamięci • Używany do uniknięcia programowej obsługi operacji we/wy przesyłających duże

Bezpośredni dostęp do pamięci • Używany do uniknięcia programowej obsługi operacji we/wy przesyłających duże porcje danych • Wymaga kontrolera DMA • Omija procesor aby przenieść dane bezpośrednio pomiędzy we/wy a pamięcią Podstawy Systemów Operacyjnych 12. 6 Silberschatz and Galvin © 1998

6 etapów przesyłania w trybie DMA 1. Moduł sterujący urządzenia otrzymuje polecenie przesłania danych

6 etapów przesyłania w trybie DMA 1. Moduł sterujący urządzenia otrzymuje polecenie przesłania danych dyskowych do bufora pod adresem X. 5. Sterownik DMA przesyła bajty do bufora X, zwiększając adres pamięci i zmniejszając C dopóty, dopóki C jest różne od 0. 6. Kiedy C=0, wtedy sterownik DMA przerywa pracę procesora w celu zasygnalizowania zakończenia przesyłania. 2. Moduł sterujący urządzenia zawiadamia dysk o potrzebie przesłania C bajtów do bufora pod adresem X. DMA, szyna, sterownik przerwań Procesor Pamięć podręczna Szyna pamięci procesora Pamięć X operacyjna Bufor Szyna PCI Sterownik dysku IDE 3. Sterownik dysku rozpoczyna przesyłanie DMA. Dysk Podstawy Systemów Operacyjnych 4. Sterownik dysku wysyła bajt za bajtem do sterownika DMA. 12. 7 Silberschatz and Galvin © 1998

Użytkowy interfejs wejścia-wyjścia • Systemowe wywołania we/wy uogólniają zachowanie [sposób działania] różnych fizycznych urządzeń

Użytkowy interfejs wejścia-wyjścia • Systemowe wywołania we/wy uogólniają zachowanie [sposób działania] różnych fizycznych urządzeń [enkapsułują] • Warstwa sterowników urządzeń ukrywa przed jądrem różnice pomiędzy różnymi kontrolerami we/wy • Urządzenia różnią się w wielu aspektach – – – znakowe lub blokowe sekwencyjne lub o swobodnym dostępie dzielone lub dedykowane szybkość operacji zapisująco-odczytujące, tylko do odczytu, tylko do zapisu Podstawy Systemów Operacyjnych 12. 8 Silberschatz and Galvin © 1998

Urządzenia blokowe i znakowe • Urządzenia blokowe zawierają sterowniki dysków – komendy: czytaj, pisz,

Urządzenia blokowe i znakowe • Urządzenia blokowe zawierają sterowniki dysków – komendy: czytaj, pisz, szukaj – surowe we/wy lub dostęp poprzez system plików – możliwy dostęp do pliku odwzorowania pamięci • Urządzenia znakowe to m. in. klawiatury, myszki, porty szeregowe – komendy: pobranie, przekazanie – biblioteki wyższych warstw umożliwiają edycję całej linii Podstawy Systemów Operacyjnych 12. 9 Silberschatz and Galvin © 1998

Urządzenia Sieciowe • Różnią się zdecydowanie od urządzeń blokowych i znakowych poprzez posiadanie własnego

Urządzenia Sieciowe • Różnią się zdecydowanie od urządzeń blokowych i znakowych poprzez posiadanie własnego interfejsu • Unix i Windows/NT posiadają interfejs gniazd – rozdzielenie protokołów sieciowych od operacji sieciowych – umożliwiają funkcjonalność select • Bardzo różne podejścia [filozofie] (potoki, kolejki FIFO, strumienie, kolejki, skrzynki pocztowe) Podstawy Systemów Operacyjnych 12. 10 Silberschatz and Galvin © 1998

Zegary i czasomierze • Zapewniają bieżący czas, upływ czasu, czasomierz • Czasomierz programowalny nastawiony

Zegary i czasomierze • Zapewniają bieżący czas, upływ czasu, czasomierz • Czasomierz programowalny nastawiony na okresowe generowanie przerwań • ioctl (w UNIX) obejmuje różne aspekty operacji we/wy takie jak czas i zegar Podstawy Systemów Operacyjnych 12. 11 Silberschatz and Galvin © 1998

Wejście-wyjście z blokowaniem i bez blokowania • Blokujące: proces zostaje zawieszony [wstrzymany] do czasu

Wejście-wyjście z blokowaniem i bez blokowania • Blokujące: proces zostaje zawieszony [wstrzymany] do czasu zakończenia operacji we/wy – łatwe w użyciu i zrozumieniu – nieodpowiednie dla niektórych zastosowań • Nieblokujące: wywołanie operacji we/wy zwraca największą możliwą porcję informacji – interfejs użytkownika, kopiowanie danych (buforowane operacje we/wy) – realizowane poprzez użycie wielowątkowości – wywołanie funkcji we/wy jest natychmiastowe, zwracając w wyniku liczbę odczytanych/zapisanych bajtów Podstawy Systemów Operacyjnych 12. 12 Silberschatz and Galvin © 1998

Wejście-wyjście z blokowaniem i bez blokowania • Asynchroniczne: proces jest wykonywany współbieżnie z operacją

Wejście-wyjście z blokowaniem i bez blokowania • Asynchroniczne: proces jest wykonywany współbieżnie z operacją we/wy – trudny w użyciu – podsystem we/wy sygnalizuje [wysyła sygnał] procesowi zakończenie operacji we/wy Podstawy Systemów Operacyjnych 12. 12 a Silberschatz and Galvin © 1998

Podsystem wejścia-wyjścia w jądrze • Szeregowanie – niektóre żądania wykonania operacji we/wy są porządkowane

Podsystem wejścia-wyjścia w jądrze • Szeregowanie – niektóre żądania wykonania operacji we/wy są porządkowane poprzez zastosowanie kolejek dedykowanych dla każdego urządzenia – niektóre systemy operacyjne próbują. . . • Buforowanie – zapamiętywanie danych w pamięci podczas przesyłania pomiędzy urządzeniami – rozwiązuje problemy z niedopasowaniem prędkości poszczególnych urządzeń – rozwiązuje problemy z niedopasowaniem rozmiaru pakietów danych między poszczególnymi urządzeniami – utrzymuje [wspiera] “semantykę kopiowania” Podstawy Systemów Operacyjnych 12. 13 Silberschatz and Galvin © 1998

Podsystem wejścia-wyjścia w jądrze • Caching - szybka pamięć utrzymująca kopię danych – zawsze

Podsystem wejścia-wyjścia w jądrze • Caching - szybka pamięć utrzymująca kopię danych – zawsze tylko kopia – kluczowa dla wydajności • Spooling – utrzymywanie danych wyjściowych dla urządzenia – stosowane, gdy urządzenie może obsłużyć tylko jedno zadanie naraz – tyle co drukowanie • Rezerwacja urządzeń – umożliwia wyłączny dostęp do urządzenia – wywołania systemowe dla alokacji i dealokacji [rezerwacji i zwalniania] – uwaga na możliwość zakleszczeń Podstawy Systemów Operacyjnych 12. 14 Silberschatz and Galvin © 1998

Obsługa błędów • Systemy operacyjne mogą odzyskiwać dane z dysku, urządzenia niedostępnego i chwilowych

Obsługa błędów • Systemy operacyjne mogą odzyskiwać dane z dysku, urządzenia niedostępnego i chwilowych błędów zapisu • Większość operacji we/wy zwraca w wyniku numer lub kod błędu w wypadku niepowodzenia • Logi systemowe utrzymują raporty o błędach Podstawy Systemów Operacyjnych 12. 15 Silberschatz and Galvin © 1998

Struktura danych jądra • Jądro utrzymuje stan informacji o składnikach we/wy, w tym tabel

Struktura danych jądra • Jądro utrzymuje stan informacji o składnikach we/wy, w tym tabel otwartych plików, połączeń sieciowych, stanu urządzeń znakowych • Wiele, wiele złożonych struktur danych dla śledzenia buforów, alokacji pamięci, „brudnych” bloków • Zdarza się użycie metod obiektowych i przesyłania komunikatów do zaimplementowania we/wy Podstawy Systemów Operacyjnych 12. 16 Silberschatz and Galvin © 1998

Przekształcenie zamówień wejścia-wyjścia na operacje sprzętowe • Rozważ problem odczytu pliku z dysku dla

Przekształcenie zamówień wejścia-wyjścia na operacje sprzętowe • Rozważ problem odczytu pliku z dysku dla procesu – – – określ urządzenie, na którym znajduje się plik przetłumacz nazwę pliku na reprezentację sprzętową fizycznie odczytaj dane z dysku do bufora udostępnij dane żądającemu procesowi zwróć sterowanie do procesu Podstawy Systemów Operacyjnych 12. 17 Silberschatz and Galvin © 1998

Etapy wykonania zamówienia wejścia-wyjścia Proces użytkownika Zamówienie wejścia-wyjścia Odwołanie do systemu Czy można już

Etapy wykonania zamówienia wejścia-wyjścia Proces użytkownika Zamówienie wejścia-wyjścia Odwołanie do systemu Czy można już zrealizować zamówienie? Nie Operacja wejścia-wyjścia zakończona, dane wejściowe są dostępne lub dane wyjściowe zostały wyprowadzone Tak Powrót po wykonaniu odwołania do systemu Podsystem wejścia-wyjścia w jądrze Przesyłanie (w razie potrzeby) danych do procesu oraz przekazywanie informacji o poprawnym lub błędnym zakończeniu Wyślij zamówienie do modułu sterującego urządzenia, w razie konieczności zablokuj proces Podsystem wejścia-wyjścia w jądrze Przetwórz zamówienie, wydaj polecenie sterownikowi, zablokuj sterownik do chwili przerwania Moduł sterujący urządzenia Określ, która operacja wejścia-wyjścia została zakończona, wskaż zmianę stany podsystemowi wejścia-wyjścia Procedura obsługi przerwania Przyjmij przerwanie, przechowaj dane w buforze modułu sterującego urządzenia, jeżeli była to operacja wejścia, wyślij sygnał odblokowujący moduł sterujący urządzenia Polecenia sterownika urządzenia Przerwanie Sprawdź urządzenie, przerwij po zakończeniu operacji wejścia-wyjścia Sterownik urządzenia klawiatury Operacja wejścia-wyjścia się skończyła, wygeneruj przerwanie Czas Podstawy Systemów Operacyjnych 12. 18 Silberschatz and Galvin © 1998

Wydajność • Operacje we/wy jako podstawowy czynnik wydajności systemu – wymaga zaangażowania procesora do

Wydajność • Operacje we/wy jako podstawowy czynnik wydajności systemu – wymaga zaangażowania procesora do wykonania kodu sterownika i operacji w trybie jądra – przełączanie kontekstu dla obsługi przerwania – kopiowanie danych – ruch sieciowy szczególnie wpływa na wydajność Podstawy Systemów Operacyjnych 12. 19 Silberschatz and Galvin © 1998

Komunikacja międzykomputerowa Zakończenie odwołania do systemu Odebranie pakietu sieciowego Obsłużenie przerwania Adapter sieciowy Przełączenie

Komunikacja międzykomputerowa Zakończenie odwołania do systemu Odebranie pakietu sieciowego Obsłużenie przerwania Adapter sieciowy Przełączenie stanu Wygenerowanie przerwania Sprzęt Przełączenie kontekstu Napisanie znaku Wygenerowanie przerwania Sieć Przełączenie stanu Obsłużenie przerwania Adapter sieciowy Moduł sterujący urządzenia Jądro Demon sieci Proces użytkownika Poddemon sieci Przełączenie kontekstu System nadawczy Podstawy Systemów Operacyjnych Przełączenie kontekstu Moduł sterujący urządzenia Przełączenie kontekstu Jądro System odbiorczy 12. 20 Silberschatz and Galvin © 1998

Zwiększanie wydajności • Ogranicz liczbę przełączeń kontekstu • Ogranicz liczbę kopiowań danych • Ogranicz

Zwiększanie wydajności • Ogranicz liczbę przełączeń kontekstu • Ogranicz liczbę kopiowań danych • Ogranicz przerwania poprzez stosowanie dużych transferów danych, inteligentnych kontrolerów, aktywnych odpytywań • Użyj DMA • Wyważ i zbalansuj [dostrój] użycie CPU, pamięci, magistrali i wydajności we/wy dla największej przepustowości Podstawy Systemów Operacyjnych 12. 21 Silberschatz and Galvin © 1998