Zarządzani plikami Systmy Opracyjn Systm plików dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.du.pl Instytut utomatyki i Informatyki Stosowanj Politchnika Warszawska Systm zarządzania plikami: udostępnia wyłączną mtodę dostępu do plików, zwalnia z koniczności implmntacji własnych mtod dostępu. Zadania systmu zarządzania plikami: gwarantowani prawidłowości przchowywania danych w plikach, optymalizacja wydajności, ofrowani mtod zarządzania danymi spłniających wymagania użytkowników, minimalizacja/ liminacja potncjalnych możliwości uszkodznia bądź utracnia danych, udostępniani obsługi wjścia/ wyjścia dla wilu użytkowników, udostępniani obsługi wjścia/wyjścia dla jak największj klasy urządzń do przchowywania danych. Systmy opracyjn / Systm plików str.1/4 Systmy opracyjn / Systm plików str.3/4 Systm plików Wymagania wobc systmu plików Zarządzani plikami: zarządzani plikami zadanim systmu opracyjngo, dan wjściow procsów pobiran z plików, dan wyjściow zachowywan w plikach, niulotność plików. Pojęcia dotycząc plików: pol, podstawowa jdnostka danych, zawira pojdynczą wartość charaktryzującą się rozmiarm i typm danych, rkord, kolkcja powiązanych pól traktowana jako pwna całość, można tworzyć i modyfikować pliki, można mić kontrolowany dostęp do plików innych użytkowników, można kontrolować dostęp do własnych plików, można zminiać strukturę własnych plików na potrzby aplikacji, można przmiszczać dan między plikami, można przchowywać i odtwarzać dan w przpadku uszkodznia, można odwoływać się do plików poprzz nazwy symboliczn. plik, kolkcja podobnych rkordów traktowana jako pwna całość, idntyfikowana przz unikatową nazwę z dostępm ograniczanym zadanymi prawami dostępu. Systmy opracyjn / Systm plików str.2/4 Systmy opracyjn / Systm plików str.4/4
Funkcj systmu plików idntyfikacja i lokalizacja wybranych plików, wykorzystani katalogów w clu opisania lokalizacji i atrybutów poszczgólnych plików, zarządzani dostępm użytkowników do plików, blokowani na czas dostępu do plików, zarządzani alokacją wolnych bloków dla plików, zarządzani przstrznią wolnych bloków. Krytria organizacji plików: szybki dostęp, łatwość aktualizacji, fktywność przchowywania, łatwość zarządzania, nizawodność. Systmy opracyjn / Systm plików str.5/4 Rodzaj organizacji plików (I) strta, plik skwncyjny, plik indksowany, plik z kodowanim miszającym. Istotn aspkty wpływając na przyjmowaną organizację wwnętrzną: możliwość rozszrzania, wydajność wstawiania, wydajność wyszukiwania, mtody wyszukiwania, koszty potncjalnych rorganizacji, wymagana rdundancja danych. Systmy opracyjn / Systm plików str.6/4 Rodzaj organizacji plików (II) 1 yt 1 Rcord nt Fox Pig at ow Dog Goat Lion Owl Pony Rat Worm Hn Ibis Lamb (c) Trzy rodzaj plików: a. skwncja bajtów, b. skwncja rkordów, c. plik o strukturz drzwiastj. Systmy opracyjn / Systm plików str.7/4 Przykładow atrybuty plików ttribut Maning Protction Who can accss th fil and in what way Password Password ndd to accss th fil rator ID of th prson who cratd th fil Ownr urrnt ownr Rad-only flag for rad/writ; 1 for rad only Hiddn flag for normal; 1 for do not display in listings Systm flag for normal fils; 1 for systm fil rchiv flag for has bn backd up; 1 for nds to b backd up SII/binary flag for SII fil; 1 for binary fil Random accss flag for squntial accss only; 1 for random accss Tmporary flag for normal; 1 for dlt fil on procss xit Lock flags for unlockd; nonzro for lockd Rcord lngth Numbr of byts in a rcord Ky position Offst of th ky within ach rcord Ky lngth Numbr of byts in th ky fild ration tim Dat and tim th fil was cratd Tim of last accss Dat and tim th fil was last accssd Tim of last chang Dat and tim th fil has last changd urrnt siz Numbr of byts in th fil Maximum siz Numbr of byts th fil may grow to Systmy opracyjn / Systm plików str.8/4
Opracj na plikach (I) Pliki odwzorowywan w pamięci / * copy program. Error chcking and rporting is minimal. * / #includ <sys/typs.h> / * includ ncssary hadr fils * / #includ <fcntl.h> #includ <stdlib.h> #includ <unistd.h> int main(int argc, char * argv[]); / * NSI prototyp * / / #dfin UF_SIZE 496 * copy program. Error chcking and rporting / * us aisbuffr minimal. siz of 496 byts * / #dfin OUTPUT_MODE 7 / * protction bits for * / output fil * / #includ <sys/typs.h> / * includ ncssary hadr fils * / #includ int main(int <fcntl.h> argc, char * argv[]) #includ { <stdlib.h> #includ int in_fd, <unistd.h> out_fd, rd_count, wt_count; char buffr[uf _SIZE]; int main(int argc, if (argc!= 3) char xit(1); * argv[]); / / * syntax NSI prototyp rror if argc * / is not 3 * / #dfin / * Opn UF_SIZE th input 496 fil and crat th output / * us fil a * buffr / siz of 496 byts * / #dfin OUTPUT_MODE 7 in_fd = opn(argv[1], O_RDONLY); / * opn protction th sourc bits for fil output * / fil * / if (in_fd < ) xit(2); int main(int argc, / * if it cannot b opnd, xit * / out_fd = crat(argv[2], char * argv[]) OUTPUT_MODE); { / * crat th dstination fil * / if (out_fd < ) xit(3); / * if it cannot b cratd, xit * / } } int in_fd, out_fd, rd_count, wt_count; char buffr[uf_size]; / * opy loop * / whil (TRUE) { if (argc!= 3) xit(1); rd_count = rad(in_fd, buffr, UF_SIZE); / * syntax / rror * rad if argc a is not of data 3 * / * / / if (rd_count <= ) brak; / * if nd of fil or rror, xit loop * * Opn / wt_count th input = writ(out fil and crat _fd, buffr, th output rd_count); fil * / in_fd = opn(argv[1], O_RDONLY); * writ data * / if (wt_count <= ) xit(4); / * wt_count opn th sourc <= is fil an rror * / if * / } (in_fd < ) xit(2); / * if it cannot b opnd, xit * / out_fd = crat(argv[2], OUTPUT_MODE); / * crat th dstination fil * / if / (out_fd * los th < ) fils xit(3); * / / * if it cannot b cratd, xit * / / clos(in_fd); * clos(out_fd); opy loop * / whil (TRUE) { xit(); ls Opracj na plikach (II) Systmy opracyjn / Systm plików str.9/4 if (rd_count == ) rd_count = rad(in_fd, buffr, UF_SIZE); / * no rror / on last rad * * rad a / of data * / if (rd_count <= ) brak; / * if nd of fil or rror, xit loop * / wt_count xit(5); = writ(out _fd, buffr, rd_count); / rror on/ * last writ rad data * / * / if (wt_count <= ) xit(4); / * wt_count <= is an rror * / } / * los th fils * / clos(in_fd); clos(out_fd); if (rd_count == ) / * no rror on last rad * / xit(); ls xit(5); / * rror on last rad * / Program txt Data Postać sgmntów procsu: Program txt Data a. przd odwzorowanim pliku w jgo przstrzń adrsową. b. po odwzorowaniu istnijącgo pliku abc w sgmnt i utworzniu nowgo sgmntu dla pliku xyz. abc Organizacja plików w katalogi katalogi zawirają informacj o plikach: atrybuty, lokalizacj, id właścicila, katalog sam w sobi moż być plikim (np. w systmi Unix), xyz Systmy opracyjn / Systm plików str.11/4 głównym przznacznim katalogów jst udostępniani odwzorowania między nazwami plików a samymi plikami. Struktury organizacji katalogów: struktura prosta, struktura dwupoziomowa, katalog główny + po katalogu dla każdgo użytkownika, struktura hirarchiczna, pliki idntyfikowan przz ściżkę, możliwych wil nazw dla tgo samgo pliku, pojęci katalogu biżącgo i odwołania rlatywn wobc katalogu biżącgo. Systmy opracyjn / Systm plików str.1/4 Systmy opracyjn / Systm plików str.12/4
Systmy z jdnopoziomowym katalogowanim Systmy z hirarchią katalogów Root dirctory Usr dirctory Root dirctory Systm z jdnopoziomowym katalogowanim zawirający cztry pliki, w władaniu trzch różnych osób. Usr subdirctoris Usr fil Systmy opracyjn / Systm plików str.13/4 Systmy opracyjn / Systm plików str.15/4 Systmy z dwupoziomowym katalogowanim Drzwo katalogów w systmi Unix Root dirctory / bin tc Root dirctory Usr dirctory lib usr tmp bin tc lib usr ast jim tmp lib ast lib dict. jim /usr/jim s Systmy opracyjn / Systm plików str.14/4 Systmy opracyjn / Systm plików str.16/4
Zarządzani pamięcią pomocniczą lokacja z listą połączń (I) Mtody alokacji plików: alokacja ciągła, pozycja FT = nazwa, blok startowy, rozmiar, alokacja łańcuchowa, pozycja FT = nazwa, blok startowy, rozmiar, w każdym bloku pol z numrm koljngo bloku. alokacja indksowa, Physical 4 1 2 7 2 1 12 3 4 pozycja FT = nazwa, nr bloku z indksami, blok z indksami zawira indksy bloków z danymi. możliw rozszrzni o wprowadzni obszarów z lokalną ciągłością, pozycja bloku z indksami = nr bloku danych, liczba bloków, Physical 1 2 6 3 11 14 3 Systmy opracyjn / Systm plików str.17/4 Systmy opracyjn / Systm plików str.19/4 lokacja ciągła plików lokacja z listą połączń (II) (4 s) (6 s) E (12 s) G (3 s) Physical 1 2 1 (3 s) D (5 s) F (6 s) 3 4 5 6 11 7 3 starts hr starts hr ( ) ( ) ( E) ( G) 7 8 9 2 1 11 12 14 5 Fr s 6 Fr s 12 13 14-1 -1 15 Unusd lokacja z listą połączń wykorzystująca tablicę alokacji plików w pamięci głównj. Systmy opracyjn / Systm plików str.18/4 Systmy opracyjn / Systm plików str.2/4
Przykładowy i-węzł Obsługa długich nazw plików ttributs ddrss of disk ddrss of disk 1 ddrss of disk 2 ddrss of disk 3 ddrss of disk 4 Entry for on fil p b 1 ntry lngth 1 attributs r c u t o t d 2 ntry lngth 2 attributs j - g Pointr to fil 1's nam 1 attributs Pointr to fil 2's nam 2 attributs Pointr to fil 3's nam 3 attributs Entry for on fil ddrss of disk 5 ddrss of disk 6 ddrss of disk 7 ddrss of of pointrs Disk containing additional disk addrsss p o l n 3 ntry lngth 3 attributs f o o r n s p b r c u t o t d j - g p r s o n n l f o o Hap Mtody obsługi długich nazw plików w katalogu: a. obsługa wwnętrzna (ang. in-lin), Systmy opracyjn / Systm plików str.21/4 b. obsługa poprzz dodatkową strtę. Systmy opracyjn / Systm plików str.23/4 Implmntacja katalogów (I) Pliki współdzilon Root dirctory gams attributs gams mail attributs mail nws work attributs attributs nws work Przchowywani atrybutów pozycji katalogowych: Data structur containing th attributs a. prosty katalog zawirający lmnty o stałym rozmiarz z adrsami dyskowymi oraz atrybutami w samj pozycji katalogowj, b. katalog, w którym każdy lmnt wskazuj na i-węzł.? Shard fil Systmy opracyjn / Systm plików str.22/4 Systmy opracyjn / Systm plików str.24/4
Ukirunkowan grafy acykliczn Quota dyskowa 's dirctory 's dirctory 's dirctory 's dirctory Opn fil tabl Quota tabl Ownr = ount = 1 Ownr = ount = 2 Ownr = ount = 1 ttributs disk addrsss Usr = 8 Quota pointr Soft limit Hard limit urrnt # of s # lock warnings lft Soft fil limit Hard fil limit Quota rcord for usr 8 urrnt # of fils # warnings lft (c) Odsyłacz do pliku: a. przd stworznim odsyłacza, b. po stworzniu odsyłacza, c. po usunięciu oryginalngo odsyłacza. Quota kontrolowan dla poszczgólnych użytkowników w tablicach quota. Systmy opracyjn / Systm plików str.25/4 Systmy opracyjn / Systm plików str.27/4 Zarządzani listą wolnych bloków rchiwizacja plików Fr disk s: 16, 17, 18 42 23 86 111111111 1 Root dirctory 136 162 234 111111111111 21 97 612 342 897 422 1111111111 11111111111 2 5 16 18 27 41 214 14 1111111111111 63 16 223 1111111111 3 4 6 17 19 28 29 21 48 262 31 664 216 32 18 223 16 126 142 111111111 111111111111 1111111111 111111111111 Dirctory that has not changd 7 1 2 22 3 8 9 11 14 21 23 31 32 516 1-K disk can hold 256 32-bit disk numbrs 482 141 1111111111111 bitmap 12 13 15 that has changd 24 25 26 that has not changd a. zarządzani wolnymi blokami w postaci listy, b. zarządzani wolnymi blokami z wykorzystanim mapy bitowj. każdy katalog i plik tykitowany odpowiadającym numrm i-węzła, obikty zacinion modyfikowan od czasu ostatnij archiwizacji. Systmy opracyjn / Systm plików str.26/4 Systmy opracyjn / Systm plików str.28/4
Wykorzystani map bitowych do archiwizacji Systm plików w Unix V7 (II) (c) 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 22 23 24 25 26 27 28 29 3 31 32 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 22 23 24 25 26 27 28 29 3 31 32 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 22 23 24 25 26 27 28 29 3 31 32 Disk addrsss I-nod ttributs Singl indirct Doubl indirct ddrsss of data s (d) 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 22 23 24 25 26 27 28 29 3 31 32 Tripl indirct I-węzł w systmi Unix V7. Systmy opracyjn / Systm plików str.29/4 Systmy opracyjn / Systm plików str.31/4 Systm plików w Unix V7 (I) Systm plików w Unix V7 (III) yts 2 14 nam Root dirctory 1. 1.. 4 bin I-nod 6 is for /usr Mod siz tims lock 132 is /usr dirctory 6 1 19 dick I-nod 26 is for /usr/ast Mod siz tims lock 46 is /usr/ast dirctory 26 6 64 grants 7 dv 132 3 rik 46 92 books 14 lib 51 jim 6 mbox I-nod numbr Pozycja katalogowa w systmi Unix V7 9 6 8 tc usr tmp Looking up usr yilds i-nod 6 I-nod 6 says that /usr is in 132 26 45 ast bal /usr/ast is i-nod 26 I-nod 26 says that /usr/ast is in 46 81 17 minix src /usr/ast/mbox is i-nod 6 Przykład rozwiązywania nazwy /usr/ast/mbox. Systmy opracyjn / Systm plików str.3/4 Systmy opracyjn / Systm plików str.32/4
Systm plików w Unix V7 (IV) Przykładowa struktura systmu plików W systmi Unix systm plików jst zapisywany na dysku na ogół w postaci cztrch skcji: blok (boot ), wykorzystywany do ładowania przy starci systmu, blok 1, (supr), zawira informacj o strukturz systmu plików, bloki 2 m, (i-nods), listy i-węzłów, bloki m+1 n, bloki na dan. Partition tabl MR Entir disk Disk partition I-węzły a pliki spcjaln: w przypadku plików spcjalnych w i-węzłach w mijsc pirwszgo wskaźnika na blok danych wpisywany jst numr programu obsługi urządznia, numr programu obsługi urządznia składa się z dwóch części, oot Supr Fr spac mgmt I-nods Root dir s and dirctoris numrów major numbr i minor numbr, do utworznia pliku spcjalngo stosuj się komndę mknod. Systmy opracyjn / Systm plików str.33/4 Systmy opracyjn / Systm plików str.35/4 Systm plików w Unix V7 (V) Systm plików P/M Informacj zawart w bloku supr: rozmiar w blokach listy i-węzłów, rozmiar w blokach systmu plików, liczba wolnych bloków w systmi plików, indks następngo wolngo bloku na liści wolnych bloków, liczba wolnych i-węzłów w systmi plików, indks następngo wolngo i-węzła na liści wolnych i-węzłów, pol blokad dla listy wolnych bloków i listy wolnych i-węzłów, znacznik modyfikacji bloku supr, czas modyfikacji i nazwa systmu plików. W nowoczsnych systmach często dodatkow własności, taki jak: wil kopii bloku supr, dzinniki transakcyjn (ang. journaling), możliwość wykonywania migawk (ang. snapshot). yts 1 8 3 1 2 Usr cod nam typ (xtnsion) Extnt lock count Disk numbrs Pozycja katalogowa w systmi P/M. 16 Systmy opracyjn / Systm plików str.34/4 Systmy opracyjn / Systm plików str.36/4
Systm plików w MS-DOS (I) Systm plików w Windows 98 (I) yts 8 3 1 1 2 nam 2 2 4 Siz yts 8 3 1 1 1 4 2 2 as nam Ext N T ration dat/tim Last accss 4 2 4 Last writ dat/tim siz Extnsion ttributs Rsrvd Tim Dat First numbr ttributs Sc Uppr 16 bits of starting Lowr 16 bits of starting Rozszrzona postać pozycji katalogowj MS-DOS w systmi Windows 98. Pozycja katalogowa w systmi P/M. yts 1 1 1 1 1 12 2 4 5 charactrs 6 charactrs 2 charactrs Squnc ttributs hcksum Elmnt stanowiący część opisu długij nazwy w systmi Windows 98. Systmy opracyjn / Systm plików str.37/4 Systmy opracyjn / Systm plików str.39/4 Systm plików w MS-DOS (II) Systm plików w Windows 98 (II) lock siz FT-12 FT-16 FT-32.5 K 2 M 1 K 4 M 2 K 8 M 128 M 4 K 16 M 256 M 1 T 8 K 512 M 2 T 16 K 124 M 2 T 32 K 248 M 2 T 68 d o g K 3 o v K t h 2 w n f o K x 1 T h q K u i T H E Q U I ~ 1 yts N T S ration tim j c Last acc u k l m a p b Last Upp writ Low Siz Przykład postaci przchowywania długij nazwy w systmi Windows 98. z s r y o Maksymalny rozmiar partycji dla różnych rozmiarów bloku. Systmy opracyjn / Systm plików str.38/4 Systmy opracyjn / Systm plików str.4/4