systemy operacyjne - konspekt agh

Download Systemy Operacyjne - Konspekt AGH

Post on 14-Jul-2015

68 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Systemy operacyjne - konspekt

Systemy operacyjne1. 2. 3. 4. 5. 6. 7. 8. Systemy plikw Rozwidlanie procesw - fork Synchronizacja - semafory Pami dzielona - shared memory Mechanizm pipe Kolejki komunikatw - message queue Projekty

Pawe opata, Katedra Telekomunikacji AGH

1

Systemy operacyjne - konspekt

2. Systemy plikwSystemy plikw DOS i UNIX znacznie si rni. Rnice wystpuj na wielu poziomach. Inny jest format dysku i struktura suca zapisowi i mapowaniu sektorw fizycznych na kolejne bajty i fragmenty plikw. Inne s rwnie zasady i moliwoci umiejscawiania plikw w katalogach i inne jest znaczenie nazwy plikw. Fizyczny podzia dysku zapewnia nam producent, okrela on ilo gowic, ilo cieek (cylindrw) oraz ilo sektorw na ciece. Kodowanie pooenia danych na fizycznych sektorach dyskowych jest zalene od systemu operacyjnego. Kady dysk niezalenie od systemu operacyjnego (moe to by zalene od rodzaju sterownika np. IDE, SCSI) posiada Master Boot Record. Master boot record (MBR) Jest to pierwszy fizyczny sektor na dysku (head 0, cylinder 0, sector 1). Zawiera on program, ktry zostaje wczytany i uruchomiony po restarcie komputera, sucy do okrelenia, ktra partycja jest aktywna i wczytania tzw. boot sektora tej partycji a nastpnie uruchomienia programu zawartego w nim. W kocowej czci MBR znajduje si rwnie tzw. tablica partycji dysku, czyli opis podziau dysku na logiczne wolumeny. Tablica partycji moe zawiera cztery elementy - tak wic istniej cztery dopuszczalne partycje dyskw (tzw. primary partitions). przesunicie rozmiar zawarto +0 0x01be kod do zaadowania i uruchomienia prog+0x01be +0x01ce +0x01de +0x01ee +0x01fe 16 16 16 16 2ramu z boot-sektora aktywnej partycji 1 wiersz tablicy partycji 2 wiersz tablicy partycji 3 wiersz tablicy partycji 4 wiersz tablicy partycji 0x55 0xAA

Wiersz (element) tablicy partycji dysku: przesunicie +0 +1 +2 +4 +5 +6 +8 +12 +16 rozmiar 1 1 2 1 1 2 4 4 zawartoboot-flag /czy partycja jest aktywna/ 0-nie 127-tak HD - numer gowicy (head) rozpoczynajcej SEC/CYL - numer sektora i cieki rozpoczynajcej 6/10 bitw kod systemu operacyjnego - np. DOS-12, DOS-16, DOS-EXT, LINUX, itp. HD - numer gowicy ostatniego sektora SEC/CYL - numer sektora i cieki ostatniego sektora pocztkowy sektor wzgldny dostpny do operacji dyskowych rozmiar partycji w sektorach nastpna partycja lub bajty 0x55 i 0xAA

Indeks sektora wzgldnego okrela nastpujcy wzr: R EC = CY S S L ECperCY HEADS + HEAD S L ECperCY + ( S L EC 1) W kadej partycji typu DOS-EXT mona z kolei umieci pewn ilo tzw. dyskw logicznych (logical drives), ktre bd z poziomu systemu operacyjnego widoczne jako osobne urzdzenia. Odpowiednikami ich tablic partycji s tzw. drive tables. Rnice s takie, e z takich dyskw nie mona bootowa komputera, nie mona w nich umieszcza filesystemw innych ni DOS (i Linux). Kady z dyskw logicznych trzeba formatowa niezalenie, po to aby utworzy w nich trzy elementy: boot sektor, FAT, directory table. Boot sektory dyskw logicznych z reguy rni si w zalenoci od systemu operacyjnego. Filesystem Dysk podzielony na partycje jest widoczny jako kilka dyskw logicznych. Na dyskach logicznych musi zosta utworzona odpowiednia struktura logiczna umoliwiajca ich uycie. Proces tworzenia tej struktury to formatowanie dysku lub zakadanie filesystemu. W przypadku DOS formatowanie dzieli dysk na tzw. klastry, tworzy boot sektor, tablice FAT oraz root directory. W systemie UNIX zakadanie filesystemu powoduje podzia dysku na tzw. bloki, tworzony jest boot blok, super blok oraz lista i-nodew.

Pawe opata, Katedra Telekomunikacji AGH

2

Systemy operacyjne - konspekt

Boot sektor dysku logicznego w systemie DOS Dysk logiczny w DOS moe by utworzony bezporednio w fizycznej partycji FAT-12, FAT-16 (jeden logiczny dysk to jedna primary partition) albo moe by jednym z kilku dyskw logicznych w partycji rozszerzonej extended DOS partition. System Linux rwnie pozwala na tworzenie partycji extended z logicznymi dyskami, umieszczonymi wewntrz niej. przesunicie +0 +3 +11 +13 +14 +16 +17 +19 +21 +22 +24 +26 +27 +29 rozmiar 3 8 2 1 2 1 2 2 1 2 2 1 2 zawartokod skoku do boot kodu identyfikator np.nazwa i wersja systemu operacyjnego BYTES per SECTOR SECTORS per CLUSTER sektory zarezerwowane liczba tablic FAT maksymalna liczba directory entries cakowita liczba sektorw typ FAT (typ partycji) ten sam bajt co w tablicy FAT[0] liczba sektorw w jednym FAT SECTORS per TRACK HEADS (powierzchnie - dwustronna fizyczna gowica to dwie powierzchnie) sektory ukryte (zarezerwowane) w systemie DOS tu moe by pocztek boot kodu BIOS Parameter Block

File allocation table (FAT) w systemie DOS FAT jest w systemie DOS tablic , uywan w celu odwzorowania fizycznego pooenia danych na dysku na pliki widoczne z poziomu systemu operacyjnego. W kadym directory entry znajduj si dwa bajty przeznaczone na indeks (numer) klastra od ktrego zaczynaj si kolejne bajty pliku. Jest to pierwszy klaster tzw. acucha alokacji (cluster allocation chain). Pod tym indeksem w tablicy FAT znajduje si indeks kolejnego klastra lub oznaczenie, e jest to ju ostatni klaster pliku. Przykad: Directory entry: FAT : M Y F I L E T X T a . . ... . . 0 8 . ...

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 ID ff 03 04 05 ff 00 00 09 0a 0b 15 00 00 00 00 10 00 00 00 00 00 16 17 ff 00 00 00 00 f7 00 00 00 20 . . .

Directory entry w systemie DOS: 32 bajty przesunicie +0 +8 +11 +12 +22 +24 +26 +28 rozmiar 8 3 1 10 2 2 2 4 zawartoF I L E N A E X T atrybuty zarezerwowane czas modyfikacji pliku data modyfikacji pliku numer klastra pocztkowego rozmiar pliku M E

Atrybuty plikw w systemie DOS Atrybut pliku to 1 bajt zwizany z kad nazw/plikiem, zapisan w tzw. directory entry, opisujcym jeden element katalogu - np. plik. Rne bity tego bajtu informuj o tym czy nazwa oznacza plik, katalog, etykiet dysku oraz czy jest on tylko do odczytu, czy jest systemowy, czy jest ukryty i czy by ostatnio zarchiwizowany

Pawe opata, Katedra Telekomunikacji AGH

3

Systemy operacyjne - konspekt

(to ostatnie jest uywane w zasadzie tylko przez systemowe programy backup i xcopy, ktrych nikt inny nie uywa). Zasady tworzenia nazw w systemie DOS Due i mae litery s nierozrnialne (w Windows 95 s rozrnialne - do pewnego stopnia). Dopuszczalne znaki, ktre mona uy w nazwie katalogu lub pliku to: litery od A do Z oraz od a do z, cyfry 0 do 9, a take inne znaki: !, @, #, $, %, &, (, ), -, _, { } , `, ~. Znak ~ posiada pewne znaczenie specjalne w systemie W95, w przypadku wykorzystywania tych samych dyskw i plikw w systemie DOS. Nie mona uywa znakw takich jak: spacja, /, ,, ;, ^, +, [, ], , =. Natomiast znaki: *, ?, :, ., \, |, maj znaczenie specjalne. Posta cieki dostpu do pliku: drive: dirname filename .ext drive: jedna litera z dwukropkiem; Litery A i B zarezerwowane s dla stacji dyskw lub dyskw logicznych, pozostae litery dyski fizyczne lub logiczne. Ostatnia dopuszczalna litera okrelona jest klauzul LASTDRIVE w pliku konfiguracji systemu. Z kad zarezerwowan liter wie si pewna ilo zarezerwowanej pamici RAM systemu (okoo 80 bajtw). W systemach W95/NT nie ma to praktycznie adnego znaczenia. LASTDRIVE=Z kosztuje okoo 2kB. dirname jest to lista katalogw, oddzielonych znakiem backslash \, ktra prowadzi od katalogu gwnego (root) do katalogu docelowego, w ktrym znajduje si plik. Dugo poczonej nazwy katalogu i nazwy pliku nie moe przekroczy 63 znakw. Nie s dopuszczalne wildcards w nazwach katalogw. Dwie specjalne nazwy s zarezerwowane. Kropka . oznacza katalog aktualny, ten w ktrym si akurat jest, a dwie kropki .. oznacza katalog nadrzdny w stosunku do aktualnego. Katalog gwny nie posiada swojego katalogu nadrzdnego. filenamejest to waciwa nazwa pliku; dugo od 1 do 8 znakw; Due i mae litery s nierozrnialne. Niektre nazwy plikw s zarezerwowane, z tego wzgldu, e odnosz si do urzdze. S to PRN, LPTn, AUX, COMn, NUL, CON. Kade rozszerzenie dodane do tych nazw plikw jest ignorowane. ext rozszerzenie nazwy pliku, mogce okrela jego typ. Od 0 do 3 znakw, poprzedzone znakiem kropki .. Rozszerzenia COM, EXE, OVL, BAT, OBJ, LIB, SYS s tradycyjnie zarezerwowane. Rozszerzenia niepoprawne np. wicej ni trzy-znakowe mog by w niektrych przypadkach automatycznie poprawiane przez system, np. obcinane po trzech znakach. Struktura dysku logicznego w systemie UNIX blok 0 BOOT blok 1 SUPER blok 2 8 inode blok 3 8 inode blok 4 8 inode ... ... blok i dane ... ... blok i+1 wolne ... ...

Boot blok w systemie UNIX peni tak sam rol jak boot sektor w systemie DOS. Znajduje si w nim kod programu adujcego dalsze elementy systemu operacyjnego. Struktura super bloku liczba blokw w filesystemie nazwa urzdzenia nazwa filesystemu liczba i-nodew wskanik na pierwszy element tablicy wolnych blokw wskanik na pierwszy element tablicy i-nodew data modyfikacji data ostatniego dostpu rozmiar bloku Tablice wolnych blokw i i-nodew rwnie znajduj si superbloku i cay czas rezyduj w pamici operacyjnej. Dziki temu system jest w stanie bardzo szybko znale wolny blok lub i-node przy tworzeniu lub modyfikacji plikw. W tablicach tych nie musz znale si wszystkie bloki i i-nodey. W przypadku braku wolnego i-nodeu lub bloku w tablicy, wykonywany jest specjalny algorytm poszukujcy odpowiedniego elementu w strukturze filesystemu. Katalogi i wzy plikw - i-node

Pawe opata, Katedra Telekomunikacji AGH

4

Systemy operacyjne - konspekt

W systemie UNIX kady element katalogu jest reprezentowany przez struktur informacyjn nazywan i-node. Pooenie i-nodeu katalogu gwnego (root directory) danego filesystemu jest cile okrelone. Jest to i-node o numerze 2. W UNIX kady katalog jest prawie zwyczajnym plikiem. Kolejne bajty tego pliku zawieraj informacj o zawartoci katalogu. przesunicie +0 +2 +16 +18 +32 +34 +48 +50 ... rozmiar 2 14 2 14 2 14 2 14 ... zawartonumer i-node pliku . nazwa pliku . numer i-node pliku .. nazwa pliku .. numer i-node pliku nazwa pliku numer i-node p