Ф изическа о рганизация на ф айловат а система в unix...
DESCRIPTION
Ф изическа о рганизация на ф айловат а система в UNIX System V (s5fs). гл. ас. Моника Филипова ФМИ, Катедра Изчислителни системи. Разпределение на дисковото пространство. boot блок - програма за зареждане на ОС суперблок - общи параметри на ФС - PowerPoint PPT PresentationTRANSCRIPT
Операционни системи, М. Филипова 1
Физическа организация на файловата система в UNIX System V (s5fs)
гл. ас. Моника ФилиповаФМИ, Катедра Изчислителни системи
Операционни системи, М. Филипова 2
Разпределение на дисковото пространство
boot блок - програма за зареждане на ОС суперблок - общи параметри на ФС индексна област - индескните описатели (i-nodes)
на всички файлове на диска данни - блокове с данни на файлове и каталози,
косвени блокове, блокове от списъка на свободните блокове и свободни блокове
Операционни системи, М. Филипова 3
Индексeн описател
mode - тип на файла и код на защита nlink - брой на твърдите връзки uid – идентификатор на собственик gid - идентификатор на потребтелска група size - размер в брой байта atime - дата и време на последен достъп mtime - дата и време на последно изменение ctime - дата и време на последно изменение на
i-node addr - 13 адреса на дискови блокове
(данни на файла / адреси на блокове)
Операционни системи, М. Филипова 4
Индексeн описател (2)
Операционни системи, М. Филипова 5
Код на защита – в младшите 12 бита на mode
Определя правата на различните потребители за достъп до файла.
Класове потребители– администратор (root) – собственик - потребител, чийто идентификатор е в полето
uid на i-node– група - потребители, които не са собственик на файла, но
принадлежат на групата в полето gid на i-node– други – потребители, които не са в първите класове
Set UID |Set GID |Sticky | r | w | x | r | w | x | r | w | x
собственик група други
Операционни системи, М. Филипова 6
Типове достъп Право r
– Да четем от файла или каталога. (cat text, ls -l dir) Право w
– Да отворим файл за писане.
– За каталог - да създаваме или унищожаваме файлове в него. (cp text dir, rm dir/text)
Право x – Да извикваме файл за изпълнение.
– За каталог - търсене на файлове в него и позициониране в каталога. (cat dir/text, cd dir)
Sticky bit за каталог – допълнителна защита при унищожа-ване на файлове в каталога.
Операционни системи, М. Филипова 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*/ ...
}
Операционни системи, М. Филипова 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
Операционни системи, М. Филипова 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.
Операционни системи, М. Филипова 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
Операционни системи, М. Филипова 11
Списък на свободните индексни описатели
Масивът s_inode в суперблока съдържа номера на свободни индексни описатели.
Полето s_ninode съдържа брой свободни i-node, чиито номера са записани в масива s_inode.
Този масив не съдържа номерата на всички свободни i-node, но не продължава в свързан списък от блокове.
Свободен i-node на диска е отбелязан - битовете за тип на файла в полето mode са 0.
Масивът играе ролята на кеш памет.
Операционни системи, М. Филипова 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
Операционни системи, М. Филипова 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
Операционни системи, М. Филипова 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
Операционни системи, М. Филипова 15
Физическа организация на файловата система в LINUX (ext2/ext3)
гл. ас. Моника Филипова
ФМИ, Катедра Изчислителни системи
Операционни системи, М. Филипова 16
Разпределение на дисковото пространство
boot блок - програма за зареждане на ОС групи блокове - всяка група съдържа част от ФС
и копие на глобални системни структури
Операционни системи, М. Филипова 17
Битови карти Описват свободните ресурси в групата - блокове и
индексни описатели (block bitmap и i-node bitmap). Значение 0 означава свободен, а 1 използван блок
или i-node. Всяка битова карта заема един блок. Размерът на групата е 8*b блока, където b е размер
на блок в брой байта.
Размер на блок Размер на група
1KB 8MB
2KB 32MB
4KB 128MB
Операционни системи, М. Филипова 18
Индексен описател Индексната област във всяка група съдържа част от
индексните описатели на файловата система. Индексните описатели се адресират в рамките на
файловата система. i-node е с размер 128 байта
– адресните полета са 12+1+1+1 по 4 байта– нови атрибути на файл:
• размер на файла в брой блокове по 512 байта (i_blocks)
• още едно поле за дата и време (i_dtime)• флагове: immutable, append only, synchronous write,
secure deletion, undelete
Операционни системи, М. Филипова 19
Описатели на групи (Group descriptors) Всяка група е описана в един запис:
– адрес на битовата карта на блоковете– адрес на битовата карта на i-nodes– адрес на първи блок на индексната област– брой свободни блокове в групата– брой свободни i-nodes в групата– брой каталози в групата
Описателите на всички групи са събрани на диска в област Group descriptors, която има копие във всяка група.
Операционни системи, М. Филипова 20
Каталози Записите в каталога са с променлива дължина и
съдържат:– номер на i-node (4 байта)– дължина на записа (2 байта)– дължина на името (2 байта)– име на файла, съхранявано в толкова байта
колкото са необходими (до 255 байта) Всеки запис в каталога е подравнен на границата на
4 байта. В края името на файла може да е допълнено с няколко символа ‘\0’.
Изтриване на запис от каталог е по-сложно.
Операционни системи, М. Филипова 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
Операционни системи, М. Филипова 22
Суперблок
– общ брой блокове - размер на файловата система– общ брой индексни описатели– брой блокове резервирани за администратора– общ брой свободни блокове– общ брой свободни индексни описатели– размер на блок– брой блокове в група– брой i-nodes в група
Операционни системи, М. Филипова 23
Новото в LINUX в сравнение с UNIX Използвани са битови карти при управление на
ресурсите - блокове и индексни описатели– При разпределянето се отчита съседството.
Разделяне на дисковото пространство на групи блокове– Системните структури са близко до обектите, които
описват.– Постига се по-висока степен на локалност на файловете.
Няколко копия на системните структури, съдържа-щи информация критична за ФС
Бързи символни връзки (само i-node, без блок) По-надеждна и по-ефективна ФС