System wejścia-wyjścia Trzy rodzaje urządze dzeń wejścia cia-wyjścia: Urządzenia pamięci (dyski, taśmy) Urządzenia przesyłania danych (karty sieciowe, modemy) Urządzenia komunikacji z człowiekiem (klawiatury, myszy, monitory) Urządzenia systemu wejścia-wyjścia: Port - punkt kontaktu urządzenia wejścia cia-wyjścia z komputerem Szyna - wiązka przewodów, w, ścieŝek ek za pomocą której jedno lub kilka urządze dzeń komunikuje się z komputerem Sterownik - układ elektroniczny do kierowania pracą portu, szyny lub urządzenia
System wejścia-wyjścia Programowe składowe podsystemu we-wy: wy: Moduły y wejścia cia-wyjścia, moduły y sterujące - tworzą interfejs dostępu podsystemu we-wy wy do urządze dzeń Obsługa wejścia cia-wyjścia w jądrze j systemu wywołania systemowe wejścia cia-wyjścia
Sterowanie urządzeniami wejścia-wyjścia Przekazywanie poleceń z procesora do sterownika: Sterownik posiada rejestry do pamiętania danych i sygnałów sterujących. Procesor pisze i czyta do rejestrów w w sterowniku. Procesor posiada specjalne rozkazy do pisania i czytania portów, Operacje we-wy wy odbywają się w pamięci - rejestry sąs odwzorowywane w przestrzeni adresowej procesora. W komputerach IBM PC zastosowane są obydwie metody: Dla kontrolera grafiki - ekran odwzorowany w pamięci Dla portów w szeregowych - rejestry we-wy wy i bufory
Port wejścia-wyjścia Typowy port składa się z czterech rejestrów w o długod ugości 1-41 4 B kaŝdy: Stan (czytane przez procesor: zakończenie wykonywania polecenia, dostępno pność bajtu do czytania, błąb łąd d urządzenia) Sterowanie (zapisywane przez procesor: rozpoczęcie cie polecenia, zmiana trybu pracy urządzenia) Dane wejściowe (czytane przez procesor dane właściwe) w Dane wyjściowe (zapisywane przez procesor dane dla urządzenia) Układ FIFO - magazyn pośredni redni - buforuje dane, których komputer lub urządzenie nie moŝe e w danej chwili odebrać.
Odpytywanie Do uzgadniania pomiędzy procesorem a urządzeniem w prostym schemacie producent-konsument wystarczą dwa bity: od strony procesora bit gotowości polecenia w rejestrze pleceń - sygnalizujący kompletne polecenie dla urządzenia od strony urządzenia bit zajęto tości (w( w rejestrze stanu), sygnalizujący Ŝe e urządzenie jest zajęte pracą. Kolejność działań przy uzgadnianiu: Procesor realizuje aktywne czekanie, dopóki bit zajęto tości jest ustawiony Procesor ustawia bit pisania i wpisuje bajt danych do rejestru danych d wy. Procesor ustawia bit gotowości polecenia Sterownik ustawia bit zajęto tości po zauwaŝeniu bitu gotowości polecenia Sterownik czyta rejestr poleceń,, rozpoznaje polecenie pisania. Czyta bajt danych z rejestru i wykonuje na urządzeniu operację wejścia cia-wyjścia Sterownik czyści ci bit gotowości polecenia, bit błedu,, a na końcu bit zajęto tości I tak dla kaŝdego bajtu danych
Przerwania Jeśli urządzenie jest rzadko gotowe do działania, ania, odpytywanie staje się nieefektywne ( procesor większo kszość czasu poświ więca na aktywne czekanie. Mechanizm przerwań: procesor ma końcówk wkę (nóŝkę) ) badającą stan linii zgłaszania przerwań po wykonaniu kaŝdego rozkazu. Jeśli procesor wykryje wystąpienie przerwania, to wykonuje operacje zachowania stanu bieŝą Ŝącego procesu i przechodzi do procedur obsługi przerwań. Po wykonaniu niezbędnych operacji procesor wraca do wykonywania przerwanego zadania W nowoczesnych architekturach komputerów w moŝliwa zaawansowana obsługa przerwań: - opóźnianie obsługi przerwania podczas działań krytycznych, - maskowanie przerwań (dwie linie przerwań - maskowalna i niemaskowalna) - przerwania wielopoziomowe o róŝnym r priorytecie
Bezpośredni dostęp do pamięci Jest uŝywany u w celu uniknięcia transmisji bajt-po po-bajcie (zwanego programowanym wejściem ciem-wyjściem) dla urządze dzeń transmitujących wielkie ilości danych (np( dysk), co oszczędza wiele cykli procesora Wiele procedur związanych zanych z transmisją jest wtedy wykonywana przez specjalizowany procesor - sterownik bezpośredniego dostępu do pamięci (DMA controller) Przed rozpoczęciem ciem transmisji w trybie DMA, procesor zapisuje w pamięci blok sterujący DMA (wskaźnik do źródła, adres docelowy, liczba bajtów w do przesłania), następnie przesyła a do sterownika DMA adres tego bloku i przechodzi do wykonywania innych prac. Sterownik DMA wykonuje transmisję,, przejmując c w tym czasie sterownie szyną pamięci. Procesor nie ma wtedy dostępu do pamięci, ale moŝe e korzystać z cache i rejestrów.
UŜytkowy interfejs we-wy Moduły y sterujące - wewnętrznie dostosowane sąs do konkretnych urządze dzeń,, a zewnętrznie udostępniaj pniają pewien standardowy interfejs standaryzacja pomaga producentom sprzętu tworzyć sterowniki do własnych w urządze dzeń,, widziane przez obce systemy operacyjne Systemy muszą umoŝliwia liwiać instalację sterowników w do nowego sprzętu
RóŜnice między urządzeniami we-wy Urządzenie znakowe - przesyła a bajty (znaki) z osobna jeden za drugim (terminal) Urządzenie blokowe - przesyła a jednorazowo całe e bloki (dysk) Dostęp p sekwencyjny - dane przesyłane kolejno w sposób uporządkowany (modem) Dostęp p swobodny - moŝna mieć dostęp p do danych w róŝnych r miejscach, niekoniecznie kolejno (CD-ROM) Przesyłanie synchroniczne - taktowane zegarem (taśma) przesyłanie asynchroniczne - w nieokreślonych chwilach czasu, sterowane startem i stopem (klawiatura) Urządzenie dzielone - przez kilka procesów w (dysk) Wyłą łączne - tylko dla jednego uŝytkownika u (taśma) Szybkość działania ania - od B/s do GB/s Kierunek przesyłania - czytanie, pisanie lub czytanie i pisanie
Urządzenia sieciowe Sieciowe wejście cie-wyjście róŝni r się znacznie od dyskowego, pod względem wydajności i adresowania Interfejs gniazda (socket( socket) - aplikacje umoŝliwiaj liwiają tworzenie gniazda, połą łączenie lokalnego gniazda ze zdalnym adresem, nasłuchiwanie, przesyłanie i odbieranie pakietów w za pomocą połą łączenia funkcja wybierz zarządza gniazdami W systemach Windows NT/2000 - interfejs do kontaktowania się z kartą sieciową oraz interfejs do do protokołów w sieciowych W systemie Unix - półdupleksowe potoki, pełnodupleksowe kolejki FIFO, pełnodupleksowe strumienie, kolejki komunikatów w i gniazda
Zegary i czasomierze Spełniaj niają trzy podstawowe funkcje: podawanie bieŝą Ŝącego czasu, podawanie upływaj ywającego czasu, powodowanie wykonania określonej operacji w określonej chwili czasomierz programowalny - słuŝy y do pomiaru upływaj ywającego czasu i powodowania wykonania operacji w zadanym czasie moŝna go zaprogramować na określony czas, po którym generuje on przerwanie jest to teŝ zegar systemowy do taktowania kwantów w czasu (dla przydziału u procesora)
Wejście-wyjście z blokowaniem Blokowanie uwalnia procesor od aktywnego czekania - proces przenoszony jest do kolejki procesów w czekających. cych. Po zakończeniu we-wy wy proces przechodzi do kolejki procesów gotowych. Niektóre procesy wymagają wejścia cia-wyjścia bez blokowania, np proces w którym sygnały y z klawiatury lub myszy przeplatają się z przetwarzaniem i wyświetlaniem wietlaniem na ekranie, albo czytanie z dysku z dekompresją danych. W aplikacjach wielowątkowych moŝna zablokować pewne wątki, a inne zostawić aktywne.
Podsystem wejścia-wyjścia w jądrze Planowanie wejścia cia-wyjścia ma na celu poprawę wydajności systemu, polepszenie wspólnego korzystania z urządze dzeń przez procesy i zmniejszenie średniego czasu oczekiwania. Buforowanie - dopasowanie prędko dkości producenta i konsumenta danych (podwójne buforowanie), dopasowanie urządze dzeń operujących na róŝnych r wielkościach bloków w danych (np pakiety sieci a bloki na dysku) Przechowywanie podręczne (caching( caching) - zapamiętanie kopii danych w szybkiej pamięci podręcznej Spooling - uŝycie bufora do przechowywania danych przeznaczonych dla urządzenia, które nie dopuszcza przeplatania danych z róŝnych r procesów w (np( drukarka) Obsługa błęb łędów Struktury danych jądra j - jądro musi przechowywać informacje o stanie uŝywanych u składowych wejścia cia-wyjścia
Podsystem wejścia-wyjścia w jądrze, cd Podsystem nadzoruje: zarządzanie przestrzenią nazw plików w i urządze dzeń, przebieg dostępu do plików w i urządze dzeń, poprawność formalna operacji, przydzielanie miejsca w systemie plików, przydział urządze dzeń, buforowanie, caching oraz spooling, planowanie operacji wejścia cia-wyjścia doglądanie danie stanu urządze dzeń,, obsług ugę błędów, czynności ci naprawcze po awarii. konfigurowanie i wprowadzanie w stan początkowy modułu sterującego
Poprawianie wydajności wejścia-wyjścia Podsystem nadzoruje: zmniejszać liczbę przełą łączeń kontekstu, zmniejszać liczbę kopiowań danych w pamięci podczas przekazywania od urządzenia do aplikacji, zmniejszać często stość przerwań poprzez przesyłanie duŝych porcji informacji, przez optymalizację sterowników w i stosowanie odpytywania, gdzie to korzystne, zwiększa kszać współbie bieŝność poprzez stosowanie sterowników pracujących cych w trybie DMA, realizować elementarne działania ania za pomocą sprzętu i pozwalać na ich współbie bieŝne wykonywanie w sterownikach, równowaŝyć wydajność procesora, podsystemów pamięci, szyny i operacji wejścia-wyjścia
Elementy od których zaleŝy wydajność dysku Czytanie lub pisanie wymaga ustawienia głowicy g nad określon loną ścieŝką i na początku konkretnego sektora. Potrzebny na to jest czas dostępu - suma czasu przeszukiwania i opóźnienia obrotowego czas przeszukiwania (seek( time) - czas potrzebny naustawienie głowicy nad ścieŝką opóźnienie obrotowe (rotational( latency) - czas potrzebny na obrót t właściwego w sektora pod głowicg owicę, Czas przeszukiwania ma duŝy y wpływ na wydajność ść. MoŜemy go optymalizować,, poniewaŝ system operacyjny zarządza kolejkąŝą Ŝądań dysku
Planowanie wejścia-wyjścia dla dysku FCFS (first( come, first served) -Ŝądania wejścia cia-wyjścia realizowane w kolejności zgłaszania. Algorytm sprawiedliwy, ale mało o wydajny. Przy duŝej liczbie zgłosze oszeń planowanie zbliŝone do losowego (najgorszego) PRI (priority( priority) - krótkie zadania wsadowe i interakcyjne mają wyŝszy priorytet i pierwszeństwo stwo w dostępie do dysku. Rozwiązanie zanie nieefektywne dla baz danych. LIFO (last( in-first out) - minimalizuje ruch głowicy g (Ŝą( Ŝądania korzystają z ograniczonego obszaru na dysku). MoŜliwo liwość głodzenia procesów SSTF (shortest( seek time first) - najmniejszy ruch głowicy g od pozycji bieŝą Ŝącej. Zawsze minimalny czas przeszukiwania. MoŜliwe głodzenie. g
Planowanie wejścia-wyjścia dla dysku, cd SCAN - głowica przesuwa się od jednej krawędzi dysku do drugiej, lub do ostatniego Ŝądania. Potem zmienia się kierunek przesuwania. Działa a jak winda - najpierw zamówienia w górę,, potem w w dół. d. Najszybciej po sobie obsługiwane Ŝądania na skrajnych ścieŝkach, a najpóźniej niej - po przeciwnej stronie dysku. Nie ma głodzeniag C-SCAN (circular( scan) -po obsłuŝeniu ostatniego zamówienia na końcu dysku, głowica g wraca na początek i zaczyna od zera. N-step-SCAN - podział kolejki na podkolejki o długod ugości N. Kolejne podkolejki obsługiwane metodą SCAN do końca. FSCAN - dwie kolejki, jedna realizowana, nowe Ŝądania przychodzą do drugiej
Wejście-wyjście w róŝnych systemach operacyjnych MS-DOS Nazwy urządze dzeń zakończone dwukropkiem, np.. A:, C:, PRN: Odwzorowane sąs na określone adresy portów w za pomocą tablicy urządze dzeń. System operacyjny moŝe e przypisać kaŝdemu urządzeniu dodatkowych funkcji, np spooling dla drukarki UNIX Nazwy urządze dzeń są pamiętane w przestrzeni nazw systemu plików w (katalog /dev/ /devices) W strukturze katalogowej zamiast numeru I-węzła I a jest zapisany numer urządzenia w postaci pary <starszy,młodszy>. Starszy numer urządzenia identyfikuje moduł sterujący, który trzeba wywołać dla obsługi we-wy, wy, a młodszy jest przekazywany do modułu sterującego jako indeks do tablicy urządzeń. Wpis w tablicy urządzeń zawiera adres portu lub adres sterownika odwzorowany w pamięci
Wejście-wyjście w róŝnych systemach operacyjnych Strumień - kanał komunikacyjny pomiędzy procesem uŝytkownika a urządzeniem Strumień składa się z: - głowy - interfejs z programem uŝytkownika, u - zakończenia sterującego - interfejs z urządzeniem - modułów w przetwarzających - filtrów w na komunikatach płynących w strumieniu. KaŜdy ze składnik adników w strumienia zawiera co najmniej jedną parę kolejek: we i wy Kontrola przepływu w strumieniu realizowana jest za pomocą buforów w wejścia cia-wyjścia We-wy na strumieniu jest asynchroniczne Sterownik jest zawieszony do chwili pojawienia się danych Gdy bufor jest pełny - utrata komunikatów
Wejście-wyjście w róŝnych systemach operacyjnych Windows NT/2000 Cache manager - zarządza całym podsystemem wejścia cia- wyjścia Podsystem we-wy wy traktuje File System Drivers tak samo jak Device Drivers Network Drivers - sterowniki sieci Hardware Device Drivers - dostęp p do rejestrów w urządze dzeń wejścia cia-wyjścia Wejście cie-wyjście moŝe e być asynchroniczne i synchroniczne System ma wbudowane mechanizmy do sygnalizowania zakończenia asynchronicznego wejścia cia-wyjścia