podsystem we/wy
Transkrypt
podsystem we/wy
Systemy wejścia-wyjścia RóŜnorodność urządzeń • Funkcje – – – – Pamięci Przesyłania danych Interfejsu z człowiekiem Sterowanie • Transmisja – Znakowa – Blokowa • Dostęp – Sekwencyjny – Swobodny • Tryb pracy – Synchroniczny (z blokowaniem) – Asynchroniczny • UŜytkowanie – Współdzielone – Wyłączne (dedykowane) • Rodzaj dostępu – Odczyt – Zapis – Odczyt/zapis • Szybkość • Operacje wykonywane • Błędy Podsystem we/wy I/O subsystem • RóŜnorodne metody • Oddzielenie reszty jądra od zarządzania we/wy 2 sprzeczne tendencje w technologii urządzeń we/wy • Standaryzacja interfejsów programowych i sprzętowych • RóŜnorodność urządzeń Metody sprzętowe i programowe • Elementy softwarowe – moduły sterujące w jądrze (device drivers) • Elementy sprzętowe – porty – szyny – sterowniki urządzeń (device controllers) • Komunikacja (urządzenie – system komputerowy) – przesyłanie sygnałów: – kablowo – bezprzewodowo • Port – punkt łączący urządzenie z maszyną 4 rejestry: – stan (czytany przez gł. procesor) – sterowanie (zapisywany przez procesor) – dane we (czytany przez gł. procesor) – dane wy (zapisywany przez procesor) • Szyna – wspólna wiązka przewodów (+ protokół) • Sterownik (controller)- zespół układów elektronicznych do kierowania pracą portu, szyny lub urządzenia – w komputerze (port szergowy); na oddzielnej płycie z ukł. elektr. (SCSI) lub w urządzeniu (dyski) – wyposaŜony w rejestry do pamiętania danych i sygnałów sterujących Sterowanie urządzeniami – rozkazy we/wy (pobieranie danych do/z rejestrów urządzenia) – we/wy odwzorowane w pamięci (rejestry odwzorowane w przestrzeni adresowej procesora) Komunikacja procesor gł. - sterownik Odpytywanie Przerwania Odpytywanie rej. stanu=>bit zajętości=1 (sterownik pracuje) rej. poleceń=>bit gotowości polecenia (ustawenie/zerowanie) uzgadnianie (handshaking) 1. aktywne czekanie (busy waiting) sprawdzanie bitu zajętości (3 cykle: czytaj, koniunkcja, skok) 2. ustawienie bitu pisania w rejestrze poleceń + wypełnienie rejestru danych wy. 3. ustawienie bitu gotowości polecenia 4. ustawienie bitu zajętości 5. odczyt rej. poleceń; odczyt danych (1 bajt), operacja we/wy 6. zerowanie bitu gotowości, bitu błędu, bitu zajętości przerwania • gdy długi czas czekania (w 1 rzadkie przypadki gotowości) • obsługa asynchronicznych zdarzeń; przechodzenie do trybu nadzorcy • linia zgłaszania przerwań (interrupt request line) odpytywana przy kaŜdym rozkazie -> procedura obsługi przerwań • obsługa przerwań - JC+sterownik przerwań: – opóźnienie obsługi przerwania – kierowanie przerwania do właściwej procedury – priorytetowy system przerwań • 2 linie zgłaszania przerwań: – maskowane – niemaskowane • wektor przerwań – adresy procedur obsługi przerwań – technika łańcuchowania przerwań • system poziomów priorytetów – opóźnienie obsługi przerwań niskopriorytetowych bez maskowania – umoŜliwia wywłaszczanie Cykl we/wy obsługiwany przerwaniem Współpraca SO z mechanizmem obsługi przerwań • start SO – instalacja odpowiednich procedur obsługi przerwań dla dostępnych urządzeń • op. we/wy – sterowniki generują przerwania: – zakończenie operacji wy – dostępność danych we – błąd • obsługa sytuacji wyjątkowych • stronicowanie • odwołania do systemu (pułapka; realizuje procedury jądra w trybie nadzorcy; niski priorytet) • Solaris – procedury obsługi przerwań – jako wątki jądra DMA (direct memory access) bezpośredni dostęp do pamięci • PIO (Programmed I/O) – marnotrawstwo głównego procesora -> procesor wyspecjalizowany - sterownik DMA • tryb DMA – Procesor zapisuje w PAO blok sterujący DMA • wskaźnik do źródła • wskaźnik m-ca docelowego • liczba bajtów do przesłania – Adres bloku sterującego zapisuje w sterowniku DMA – DMA przejmuje nadzór nad szyną pamięci (przesyła dane bez JC) • Uzgadnianie przesyłania między sterownikiem urządzenia a sterownikiem DMA: 2 przewody – zamówienie; potwierdzenie • Sterownik DMA przejmuje szynę pamięci (kradzieŜ cykli) • Adresy pamięci fizycznej lub wirtualnej (DMA, DVMA) UŜytkowy interfejs we/wy • UmoŜliwia jednolite traktowanie urządzeń we/wy • UniezaleŜnienie podsystemu we/wy od sprzętu • Wydzielenie kilku rodzajów urządzeń (ustandaryzowany zbiór funkcji – interfejs) • RóŜnice – zawarte w modułach sterujących jądra • Warstwowa struktura oprogramowania • Nowe urządzenia – zgodne z istniejącym interfejsem sterowników lub zaopatrywane w nowe programowe moduły sterujące (dla róŜnych SO) Warstwowa struktura oprogramowania we/wy Odwołania do systemu: • Podstawowe konwencje dostępu we/wy – We/wy blokowe • polecenia: czytaj, pisz, szukaj – We/wy znakowe • get, put, bacspace – Pliki odwzorowywane w PAO • Dostęp do pamięci dyskowej poprzez tablicę w PAO; • warstwa ponad we/wy blokowe – Gniazda sieciowe • wybierz gniazdo • Dostęp do zegara, czasomierza • Obsługa monitorów, urządzeń multimedialnych we/wy z blokowaniem i bez • Blokowane wywołanie systemowe – wstrzymanie procesu wywołującego (kolejka procesów czekających) • Zachodzenie na siebie operacji we/wy i obliczeń – aplikacja wielowątkowa • Nieblokowane wywołanie op.we/wy – nie wstrzymuje aplikacji; kończy się szybko zwracając liczbę przesłanych bajtów (niekoniecznie wszystko) • Asynchroniczne odwołanie do systemu – powrót do aplikacji natychmiast; po zakończeniu operacji we/wy przerwanie lub przekazanie sygnału (zamówienie zostanie wykonane w całości) Usługi podsystemu we/wy • Planowanie we/wy – Kolejki zamówień do kaŜdego urządzenia – Zmiana porządku w kolejkach • Buforowanie – RóŜnice w szybkości urządzeń - podwójne buforowanie – RóŜne rozmiary przesyłanych jednostek danych – Zapewnienie semantyki kopii (operowanie na buforze w jądrze) • Cache – przechowywanie podręczne – Kopia danych w szybszej pamięci (PAO, pam. podręczna procesora) – SO korzystanie z buforów w PAO jak z pamięci podręcznej - dla zapewnienia semantyki kopii • Spooling (simultaneus peripherial operation on-line) – Osobny bufor dla kaŜdej aplikacji (niedopuszczalny przeplot danych w strumieniu - drukarka) • Obsługa błędów – Przejściowe awarie – powtórzenie operacji – Systemowe wywołanie zwraca kod błędu (errno) Planowanie we/wy • • • • Numer bloku logicznego numer sektora Numer cylindra, ścieŜki, sektora Sektory uszkodzone – zastąpione rezerwowymi Grupa cylindrów – taka sama liczba sektorów (100…<) Planowanie dostępu do dysku • Czas szukania (seek time ) • Opóźnienie obrotowe ( rotational latency ) • Szerokość pasma (bandwidth) – liczba przesłanych bajtów/czas FCFS 200 cylindrów; Przesunięcie głowicy – 640 cylindrów SSTF ( shortest seek time first ) Przesunięcie głowicy – 236cylindrów SCAN Algorytm windy Przesunięcie głowicy – 236cylindrów C-SCAN Przesunięcie głowicy – 183 + 199 cylindrów LOOK C-LOOK LOOK 236-28= 208 cylindrów C-LOOK 183 -2*16 - 2*14 + 199 cylindrów • Zamówienia – zaleŜą od metod przydziału miejsca na dysku • Lokalizacja katalogów, bloków indeksowych • Czas szukania a opóźnienie obrotowe • Opóźnienie obrotowe – dyski nie ujawniają fizycznego połoŜenia bloków logicznych • Algorytm planowania dostępu do dysku – w sterowniku wbudowanym w sprzęt • Ale – w so inne ograniczenia na kolejność realizacji operacji we/wy (stronicowanie, pisanie, czytanie) Struktury danych w jądrze - Unix Podsystem we/wy • • • • • • • • • Zarządzanie przestrzenią nazw plików i urządzeń Przebieg dostępu do plików i urządzeń Sprawdzanie poprawności operacji Przydział miejsca w systemie plików Przydział urządzeń Buforowanie, spooling, przechowywanie podręczne Planowanie operacji we/wy Obsługa błędów, czynności naprawcze po awarii Konfigurowanie modułu sterującego Programowe moduły sterujące dostarczają jednolity interfejs Czytanie z blokowaniem • Proces zamawia operację czytania (deskryptor) • Funkcja systemowa jądra sprawdza parametry; ewentualnie przekazuje dane do procesu • Zamówienie operacji we/wy do modułu sterującego urządzenia; proces – do kolejki czekających • Moduł sterujący rezerwuje miejsce; wypełnia rejestry sterujące urządzenia • Sterownik po zakończeniu przesyłania generuje przerwanie lub moduł sterujący odpytuje stan urządzenia • Moduł sterujący urządzenia określa stan zamówienia, • Jądro przesyła dane do p przestrzeni adresowej procesu; proces – do kolejki procesów gotowych Realizacja zamówienia czytania z blokowaniem we/wy Wydajność operacji we/wy • Kosztowne przełączenia kontekstu – Przerwania a programowe we/wy – Ruch w sieci • Solaris – telnet w oparciu o wątki • Terminalowe operacje we/wy - oddzielne procesory czołowe – koncentrator terminali • Kanały we/wy – przepływ danych; procesor gł. – obliczenia Miejsce implementacji funkcji we/wy