Ф изическа о рганизация на ф айловат а система в UNIX...

23
Операционни системи, М. Филипова Физическа организация на файловата система в UNIX System V (s5fs) гл. ас. Моника Филипова ФМИ, Катедра Изчислителни системи

description

Ф изическа о рганизация на ф айловат а система в UNIX System V (s5fs). гл. ас. Моника Филипова ФМИ, Катедра Изчислителни системи. Разпределение на дисковото пространство. boot блок - програма за зареждане на ОС суперблок - общи параметри на ФС - PowerPoint PPT Presentation

Transcript of Ф изическа о рганизация на ф айловат а система в UNIX...

Page 1: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 1

Физическа организация на файловата система в UNIX System V (s5fs)

гл. ас. Моника ФилиповаФМИ, Катедра Изчислителни системи

Page 2: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 2

Разпределение на дисковото пространство

boot блок - програма за зареждане на ОС суперблок - общи параметри на ФС индексна област - индескните описатели (i-nodes)

на всички файлове на диска данни - блокове с данни на файлове и каталози,

косвени блокове, блокове от списъка на свободните блокове и свободни блокове

Page 3: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 3

Индексeн описател

mode - тип на файла и код на защита nlink - брой на твърдите връзки uid – идентификатор на собственик gid - идентификатор на потребтелска група size - размер в брой байта atime - дата и време на последен достъп mtime - дата и време на последно изменение ctime - дата и време на последно изменение на

i-node addr - 13 адреса на дискови блокове

(данни на файла / адреси на блокове)

Page 4: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 4

Индексeн описател (2)

Page 5: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 5

Код на защита – в младшите 12 бита на mode

Определя правата на различните потребители за достъп до файла.

Класове потребители– администратор (root) – собственик - потребител, чийто идентификатор е в полето

uid на i-node– група - потребители, които не са собственик на файла, но

принадлежат на групата в полето gid на i-node– други – потребители, които не са в първите класове

Set UID |Set GID |Sticky | r | w | x | r | w | x | r | w | x

собственик група други

Page 6: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 6

Типове достъп Право r

– Да четем от файла или каталога. (cat text, ls -l dir) Право w

– Да отворим файл за писане.

– За каталог - да създаваме или унищожаваме файлове в него. (cp text dir, rm dir/text)

Право x – Да извикваме файл за изпълнение.

– За каталог - търсене на файлове в него и позициониране в каталога. (cat dir/text, cd dir)

Sticky bit за каталог – допълнителна защита при унищожа-ване на файлове в каталога.

Page 7: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 7

Суперблок

struct filsys{ ushort s_isize; /* size in blocks of i-list*/ daddr_t s_fsize; /* size in blocks of entire volume*/ short s_nfree; /* number of addresses in s_free*/ daddr_t s_free[NICFREE]; /* free block list*/ short s_ninode; /* number of i-nodes in s_inode */ ushort s_inode[NICNODE]; /* free i-node list*/ ...

}

Page 8: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 8

Списък на свободните блокове Масивът s_free в суперблока съдържа номера на

свободни блокове. Полето s_nfree съдържа брой свободни блокове,

чиито номера са записани в масива s_free. Масивът s_free продължава в списък от блокове в

областта за данни, съдържащи всички номера на свободни блокове.

. . .

. . .

s_free

суперблок

блокове от областта

за данни

202

202

402

402

404

. . .

602

6020 801

203204400401

403

200 198

800

601 600

Page 9: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 9

Алгоритъм alloc за разпределяне на блок1. Ако s_nfree не е 0, то се разпределя блок, чийто номер е в

s_free[s_nfree--].

2. Ако s_nfree е 0, то се попълва масивът s_free, като се прочита първият блок от списъка, чийто адрес е в s_free[0]. Разпределя се току що освободеният блок.

Алгоритъм free за освобождаване на блок1. Ако масивът s_free не е пълен, то номерът на

освобождавания блок се записва в s_free[++s_nfree].

2. Ако масивът s_free е пълен, то съдържанието му се копира в освобождавания блок, а неговият адрес се записва в s_free[0] и в s_nfree се записва 0.

Page 10: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 10

При нарастване и унищожаване на файлове, списъкът се манипулира по принципа на стека.

. . .

. . .

s_free

202

202

402

402

404602

203204400401

403601 600

. . .

. . .

s_free

202

202

402

402

404602

203204400401

403601 600

(а) Първоначално съдържание на списъка (б) След free(100)

100

. . .

. . .

s_free

202

202

402

402

404602

203204400401

403601 600

. . .

. . .402

402

404602

203204400401

403601 600

s_free

(г) След alloc - разпределен е блок 202

(в) След alloc - разпределен е блок 100

Page 11: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 11

Списък на свободните индексни описатели

Масивът s_inode в суперблока съдържа номера на свободни индексни описатели.

Полето s_ninode съдържа брой свободни i-node, чиито номера са записани в масива s_inode.

Този масив не съдържа номерата на всички свободни i-node, но не продължава в свързан списък от блокове.

Свободен i-node на диска е отбелязан - битовете за тип на файла в полето mode са 0.

Масивът играе ролята на кеш памет.

Page 12: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 12

Каталози

2 .2 ..4 bin6 dev7 home

Коренен каталог i-node 7

1200

Блок 1200каталог /home

7 .2 ..10 emi11 jim25 ivan23 mary

i-node 25

1208

Блок 1208каталог /home/ivan

25 .7 ..105 letter120 p.c

/home/ivan/letter е с i-node 105

Записите са с фиксирана дължина 16 байта.struct direct {

ushort d_ino; char d_name[DIRSIZE]; };

Във всеки каталог има двата стандартни записа. Номер 0 в полето d_ino означава свободен запис. Преобразуване на име на файл в i-node - /home/ivan/letter

Page 13: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 13

Твърди връзки (hard link)

Твърдите връзки са няколко записа в каталози, които съдържат един и същи номер на i-node.

Съдържание на каталозите преди и след създаване на твърда връзка към файла p.c (i-node 120) с:

$ ln /home/ivan/p.c /home/mary/copy.c

25 .7 ..105 letter120 p.c

/home/ivan /home/mary

23 .7 ..80 text95 proc

25 .7 ..105 letter120 p.c

/home/ivan /home/mary

23 .7 ..80 text95 proc120 copy.c

i-node 120

nlink=2

Page 14: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 14

Символни връзки (symbolic link)

25 . 7 .. 105 letter 120 p.c

/home/ivan /home/mary

23 . 7 .. 80 text 95 proc 151 copy.c

i-node 151

1208

Блок 1208 на

файл /home/mary/copy.c

/home/ivan/p.c

Символна връзка е тип файл, който сочи към друг файл (съдържанието му е името на другия файл).

Съдържание на каталозите след създаване на символна връзка към p.c с командата:

$ ln -s /home/ivan/p.c /home/mary/copy.c

Page 15: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 15

Физическа организация на файловата система в LINUX (ext2/ext3)

гл. ас. Моника Филипова

ФМИ, Катедра Изчислителни системи

Page 16: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 16

Разпределение на дисковото пространство

boot блок - програма за зареждане на ОС групи блокове - всяка група съдържа част от ФС

и копие на глобални системни структури

Page 17: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 17

Битови карти Описват свободните ресурси в групата - блокове и

индексни описатели (block bitmap и i-node bitmap). Значение 0 означава свободен, а 1 използван блок

или i-node. Всяка битова карта заема един блок. Размерът на групата е 8*b блока, където b е размер

на блок в брой байта.

Размер на блок Размер на група

1KB 8MB

2KB 32MB

4KB 128MB

Page 18: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 18

Индексен описател Индексната област във всяка група съдържа част от

индексните описатели на файловата система. Индексните описатели се адресират в рамките на

файловата система. i-node е с размер 128 байта

– адресните полета са 12+1+1+1 по 4 байта– нови атрибути на файл:

• размер на файла в брой блокове по 512 байта (i_blocks)

• още едно поле за дата и време (i_dtime)• флагове: immutable, append only, synchronous write,

secure deletion, undelete

Page 19: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 19

Описатели на групи (Group descriptors) Всяка група е описана в един запис:

– адрес на битовата карта на блоковете– адрес на битовата карта на i-nodes– адрес на първи блок на индексната област– брой свободни блокове в групата– брой свободни i-nodes в групата– брой каталози в групата

Описателите на всички групи са събрани на диска в област Group descriptors, която има копие във всяка група.

Page 20: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 20

Каталози Записите в каталога са с променлива дължина и

съдържат:– номер на i-node (4 байта)– дължина на записа (2 байта)– дължина на името (2 байта)– име на файла, съхранявано в толкова байта

колкото са необходими (до 255 байта) Всеки запис в каталога е подравнен на границата на

4 байта. В края името на файла може да е допълнено с няколко символа ‘\0’.

Изтриване на запис от каталог е по-сложно.

Page 21: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 21

Съдържание на каталог, преди и след като файл с име oldfile е изтрит от каталога.

inode rec_len name_len name

21 12 1 . \0 \0 \0 22 12 2 . . \0 \0 54 16 5 h o m e 1 \0 \0 \0 62 12 3 u s r \0 199 16 7 o l d f i l e \0 35 12 4 n e x t

inode rec_len name_len name

21 12 1 . \0 \0 \0 22 12 2 . . \0 \0 54 16 5 h o m e 1 \0 \0 \0 62 28 3 u s r \0 0 16 7 o l d f i l e \0

35 12 4 n e x t

Page 22: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 22

Суперблок

– общ брой блокове - размер на файловата система– общ брой индексни описатели– брой блокове резервирани за администратора– общ брой свободни блокове– общ брой свободни индексни описатели– размер на блок– брой блокове в група– брой i-nodes в група

Page 23: Ф изическа  о рганизация на  ф айловат а  система  в UNIX System V (s5fs)

Операционни системи, М. Филипова 23

Новото в LINUX в сравнение с UNIX Използвани са битови карти при управление на

ресурсите - блокове и индексни описатели– При разпределянето се отчита съседството.

Разделяне на дисковото пространство на групи блокове– Системните структури са близко до обектите, които

описват.– Постига се по-висока степен на локалност на файловете.

Няколко копия на системните структури, съдържа-щи информация критична за ФС

Бързи символни връзки (само i-node, без блок) По-надеждна и по-ефективна ФС