Zarządzanie urządzeniami zewnętrznymi - omówienie

Nasza ocena:

3
Pobrań: 63
Wyświetleń: 511
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Zarządzanie urządzeniami zewnętrznymi - omówienie - strona 1 Zarządzanie urządzeniami zewnętrznymi - omówienie - strona 2 Zarządzanie urządzeniami zewnętrznymi - omówienie - strona 3

Fragment notatki:

Systemy operacyjne / Zarządzanie urządzeniami zewnętrznymi
Zarządzanie urządzeniami zewnętrznymi
Podstawową funkcją każdego SO jest obsługa fizycznych UZ. Podsystem
zarządzania UZ powinien zapewniać:




niezależność od kodów znaków
niezależność od urządzeń we/wy
wydajność
jednolite traktowanie urządzeń
W SK wyróżnia się kilka poziomów obsługi UZ:
1.
2.
3.
poziom fizyczny - bezpośrednia manipulacja rejestrami UZ, obsługa
przerwań, inicjowanie transmisji
poziom wywołań systemowych (dyrektyw) - komunikacja z programami
obsługi UZ (device driver)
poziom usług (File Manager, Explorer, File Control Service i tp.) oferujący
jednolity sposób dostępu.
Programy obsługi UZ (Pou)
Def.
Program obsługi UZ (device driver) jest zbiorem funkcji i danych umożliwiających
bezpośredni dostęp do urządzenia.
Właściwości:
 Pu mogą komunikować się z UZ jedynie przy pomocy Pou
 Pou są integralną częścią jądra, przy czym dołączenie nowego Pou do SO
może odbywać się:
 statycznie (poprzez utworzenie nowego jądra)
 dynamicznie
 komunikacja jądra z Pou jest realizowana przy pomocy standardowego
zestawu procedur, który jest wspólny dla wszystkich Pou
 wszystkie UZ są traktowane jako pliki (SU)
 jedynie Pou mają możliwość reakcji na przerwania sprzętowe generowane
przez UZ
Sposób dostępu do UZ
Dostęp do UZ jest realizowany na analogicznych zasadach jak do plików. Odbywa
się to w następujących krokach:
1. należy otworzyć urządzenie przy użyciu funkcji open() podając jako parametr
nazwę urządzenia z katalogu /dev. W przypadku pomyślenego zakończenia
funkcja ta zwraca deskryptor pliku fd
Systemy operacyjne / Zarządzanie urządzeniami zewnętrznymi
2. następnie można wykonać żądaną operacje we/wy jak np. write(), read(),
ioctl(). W trakcie wykorzystywania tych funkcji urządzenie jest identyfikowane
przez deskryptor pliku fd
3. po wykorzystaniu urządzenia należy go zamknąć używając funkcji close()
Przepływ sterowania w systemie
W systemie Unix (z poziomu użytkownika) UZ są traktowne jak pliki, a zatem
wszelkie zlecenia wykonania operacji we/wy przechodzą przez FS.
Po odnalezieniu przez FS węzła (i-node) odpowiadającego plikowi reprezentującemu
UZ, są odczytywane informacje w nim zawarte, a więc:


rodzaj urządzenia: blokowe, znakowe
nr podprogramu obsługi: major, minor number
Tablice przełączające Pou (Device Switch Tables)
W SO istnieją dwa rodzaje tablic dzięki którym następuje przełączenie na określony
Pou, a mianowicie:


tablice dla urządzeń znakowych
tablice dla urządzeń blokowych

Indeksem do tych tablic jest nr główny (major number), który wskazuje na
odpowiedni wiersz tablicy.
Wiersz zawiera nazwę oraz zestaw wskaźników do procedur Pou. W
zależności od rodzaju wywołania systemowego we/wy jest wybierany
wskaźnik do odpowiadającej mu procedury Pou. Procedura ta jest
wywoływana i jest jej przekazywany jako argument nr pomocniczy (minor
number).

Zestaw procedur Pou
xx_init();
xx_open();
xx_close();
xx_read();
xx_write();
xx_strategy();
xx_intr(); ... zobacz całą notatkę

Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz