Do spisu tresci tematu 7

7.1.2 Pliki specjalne - sposob dostepu do urzadzen

Spis tresci


Sposob dostepu do urzadzen

Pliki specjalne

Kazde urzadzenie w Unixie jest instalowane w systemie jako osobny plik. Jest to tzw. plik specjalny. Taki sposob dostepu do urzadzen zapewnia miedzy innymi:

Przy operacjach na zwyklych plikach po wywolaniu okreslonej funkcji na zadanym pliku system operacyjny szuka wlasciwego odpowiednika dla danego systemu plikow (np. open dla ext2 o ile dany system plikow jest typu ext2). Dla pliku specjalnego odpowiadajacego pewnemu urzadzeniu system szuka funkcji wlasciwych dla danego urzadzenia. Dostarczaniem takich funkcji zajmuja sie sterowniki urzadzen.

Pliki specjalne tworzymy za pomoca instrukcji mknod. Przyklady dotyczace tworzenia plikow znajdziecie tutaj (link do tutaj). Zapis typu pliku znajduje sie w strukturze i-wezla:

Jedno urzadzenie moze miec dwa pliki - jeden dla dostepu blokowego, a drugi dla dostepu znakowego. Otrzymujemy wtedy dwa niezalezne dostepy do jednego urzadzenia. Wada takiego rozwiazania jest to, ze nie jestesmy w stanie uzyskac jednoznacznej kontroli dostepu do danego urzadzenia. W szczegolnosci trudno jest uzyskac wylaczny dostep do urzadzenia (tzn. zeby dane urzadzenie bylo naraz otwarte tylko przez jeden proces).

Numer glowny i drugorzedny

Aby dane urzadzenie mozna bylo zidentyfikowac w systemie potrzebny jest jakis unikatowy identyfikator. Jest nim wewnetrzny numer urzadzenia, zakodowany w polu "i_dev" i-wezla danego pliku. Czesto zdarza sie, ze do systemu mamy podlaczone wiele urzadzen tego samego typu (np. identyczne dyski). Nic nie stoi na przeszkodzie aby obslugiwac je identycznie. Dlatego tez kazdemu urzadzeniu zostaje przypisany numer glowny (MAJOR) oraz numer drugorzedny (MINOR). Numer glowny okresla nam grupe urzadzen do ktorej nalezy dane urzadzenie, natomiast numer drugorzedny zapewnia nam unikatowosc w danej grupie numeru glownego. Wszystkie urzadzenia z danym numerem glownym sa obslugiwane identycznie (co okaze sie dokladniej przy tablicach rozdzielczych).

Numery glowne i drugorzedne zaleza bezposrednio od wewnetrznego numeru urzadzenia. Z numeru wewnetrzego mozemy wyliczyc pozostale numery:


Bibliografia

  1. Maurice J. Bach "Budowa systemu operacyjnego UNIX", WNT, Warszawa 1995


Pytania i odpowiedzi

Mile widziane...
Aby zadac pytanie


Autor: Stanislaw Orzel