System operacyjny - sprzęt we / wy
Jednym z ważnych zadań systemu operacyjnego jest zarządzanie różnymi urządzeniami we / wy, w tym myszą, klawiaturami, panelem dotykowym, napędami dysków, kartami graficznymi, urządzeniami USB, ekranem z mapowaniem bitowym, diodą LED, konwerterem analogowo-cyfrowym, włączaniem / wyłącznik, połączenia sieciowe, wejścia / wyjścia audio, drukarki itp.
System we / wy jest wymagany do przyjęcia żądania we / wy aplikacji i wysłania go do urządzenia fizycznego, a następnie odebrania jakiejkolwiek odpowiedzi z urządzenia i wysłania jej do aplikacji. Urządzenia I / O można podzielić na dwie kategorie -
Block devices- Urządzenie blokowe to takie, z którym sterownik komunikuje się, wysyłając całe bloki danych. Na przykład dyski twarde, kamery USB, dysk na klucz itp.
Character devices- Urządzenie znakowe to takie, z którym komunikuje się sterownik wysyłając i odbierając pojedyncze znaki (bajty, oktety). Na przykład porty szeregowe, porty równoległe, karty dźwiękowe itp
Kontrolery urządzeń
Sterowniki urządzeń to moduły oprogramowania, które można podłączyć do systemu operacyjnego w celu obsługi określonego urządzenia. System operacyjny korzysta z pomocy sterowników urządzeń, aby obsługiwać wszystkie urządzenia we / wy.
Kontroler urządzenia działa jak interfejs między urządzeniem a sterownikiem urządzenia. Jednostki I / O (klawiatura, mysz, drukarka itp.) Zazwyczaj składają się z części mechanicznej i części elektronicznej, gdzie komponent elektroniczny nazywany jest kontrolerem urządzenia.
Zawsze istnieje kontroler i sterownik urządzenia dla każdego urządzenia do komunikacji z systemami operacyjnymi. Kontroler urządzenia może obsługiwać wiele urządzeń. Jako interfejs, jego głównym zadaniem jest konwersja szeregowego strumienia bitów na blok bajtów, w razie potrzeby korekcja błędów.
Każde urządzenie podłączone do komputera jest połączone za pomocą wtyczki i gniazda, a gniazdo jest połączone ze sterownikiem urządzenia. Poniżej przedstawiono model łączenia procesora, pamięci, sterowników i urządzeń we / wy, w którym wszystkie sterowniki procesorów i urządzeń używają wspólnej magistrali do komunikacji.
Synchroniczne vs asynchroniczne operacje we / wy
Synchronous I/O - W tym schemacie wykonanie CPU czeka na kontynuację operacji we / wy
Asynchronous I/O - I / O przebiega równolegle z wykonywaniem CPU
Komunikacja z urządzeniami we / wy
Procesor musi mieć możliwość przekazywania informacji do iz urządzenia we / wy. Istnieją trzy metody komunikacji z procesorem i urządzeniem.
- Specjalne instrukcje I / O
- We / wy mapowane w pamięci
- Bezpośredni dostęp do pamięci (DMA)
Specjalne instrukcje I / O
Wykorzystuje instrukcje procesora, które zostały stworzone specjalnie do sterowania urządzeniami we / wy. Instrukcje te zazwyczaj pozwalają na wysyłanie danych do urządzenia we / wy lub na odczyt z urządzenia we / wy.
We / wy mapowane w pamięci
Podczas korzystania z operacji we / wy mapowanych w pamięci ta sama przestrzeń adresowa jest współdzielona przez pamięć i urządzenia we / wy. Urządzenie jest podłączone bezpośrednio do pewnych głównych lokalizacji pamięci, dzięki czemu urządzenie I / O może przesyłać blok danych do / z pamięci bez przechodzenia przez procesor.
Podczas korzystania z operacji we / wy mapowanych w pamięci system operacyjny przydziela bufor w pamięci i informuje urządzenie we / wy, aby użyło tego bufora do wysłania danych do procesora. Urządzenie I / O działa asynchronicznie z CPU, przerywa CPU po zakończeniu.
Zaletą tej metody jest to, że każda instrukcja, która ma dostęp do pamięci, może być użyta do manipulowania urządzeniem we / wy. Mapowane w pamięci IO jest używane dla większości szybkich urządzeń I / O, takich jak dyski, interfejsy komunikacyjne.
Bezpośredni dostęp do pamięci (DMA)
Wolne urządzenia, takie jak klawiatury, generują przerwanie w głównym procesorze po przesłaniu każdego bajtu. Gdyby szybkie urządzenie, takie jak dysk, generowało przerwanie dla każdego bajtu, system operacyjny spędzałby większość czasu na obsłudze tych przerwań. Tak więc typowy komputer wykorzystuje sprzęt z bezpośrednim dostępem do pamięci (DMA), aby zmniejszyć ten narzut.
Bezpośredni dostęp do pamięci (DMA) oznacza, że procesor przyznaje modułowi I / O uprawnienia do odczytu lub zapisu w pamięci bez ingerencji. Sam moduł DMA steruje wymianą danych pomiędzy pamięcią główną a urządzeniem I / O. Procesor jest zaangażowany tylko na początku i na końcu transferu i przerywany dopiero po przesłaniu całego bloku.
Bezpośredni dostęp do pamięci wymaga specjalnego sprzętu zwanego kontrolerem DMA (DMAC), który zarządza przesyłaniem danych i rozstrzyga o dostępie do magistrali systemowej. Sterowniki są zaprogramowane za pomocą wskaźników źródłowych i docelowych (gdzie odczytać / zapisać dane), liczników do śledzenia liczby przesłanych bajtów oraz ustawień, które obejmują wejścia / wyjścia i typy pamięci, przerwania i stany cykli procesora.
System operacyjny wykorzystuje sprzęt DMA w następujący sposób -
Krok | Opis |
---|---|
1 | Sterownik urządzenia ma przesyłać dane z dysku do bufora o adresie X. |
2 | Następnie sterownik urządzenia instruuje kontroler dysku, aby przesłał dane do bufora. |
3 | Kontroler dysku rozpoczyna transfer DMA. |
4 | Kontroler dysku wysyła każdy bajt do kontrolera DMA. |
5 | Kontroler DMA przesyła bajty do bufora, zwiększa adres pamięci, zmniejsza licznik C, aż C stanie się zerem. |
6 | Kiedy C osiąga zero, DMA przerywa procesor, aby zakończyć przesyłanie sygnału. |
Polling vs Interrupts I / O
Komputer musi mieć możliwość wykrywania nadejścia dowolnego typu danych wejściowych. Może się to zdarzyć na dwa sposoby, znane jakopolling i interrupts. Obie te techniki pozwalają procesorowi radzić sobie ze zdarzeniami, które mogą wystąpić w dowolnym momencie i które nie są związane z aktualnie uruchomionym procesem.
Polling I / O
Polling to najprostszy sposób komunikacji urządzenia we / wy z procesorem. Proces okresowego sprawdzania stanu urządzenia w celu sprawdzenia, czy nadszedł czas na następną operację we / wy, nazywany jest odpytywaniem. Urządzenie we / wy po prostu umieszcza informacje w rejestrze stanu, a procesor musi przyjść i pobrać informacje.
W większości przypadków urządzenia nie będą wymagały uwagi, a kiedy to zrobisz, będziesz musiał poczekać, aż zostanie ponownie zapytany przez program odpytywający. Jest to nieefektywna metoda i większość czasu procesorów jest tracona na niepotrzebne ankiety.
Porównaj tę metodę z nauczycielem, który ciągle pyta każdego ucznia w klasie, jednego po drugim, czy potrzebują pomocy. Oczywiście bardziej skuteczną metodą byłoby poinformowanie nauczyciela przez ucznia, gdy potrzebuje pomocy.
Przerywa I / O
Alternatywnym schematem postępowania z I / O jest metoda sterowana przerwaniami. Przerwanie to sygnał wysyłany do mikroprocesora z urządzenia, które wymaga uwagi.
Kontroler urządzenia umieszcza sygnał przerwania na magistrali, gdy potrzebuje uwagi procesora, gdy procesor otrzyma przerwanie, zapisuje swój bieżący stan i wywołuje odpowiednią procedurę obsługi przerwań przy użyciu wektora przerwania (adresy procedur systemu operacyjnego do obsługi różnych zdarzeń). Po rozwiązaniu problemu z urządzeniem przerywającym, procesor kontynuuje swoje pierwotne zadanie, tak jakby nigdy nie zostało przerwane.