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