1 / 23

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

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

aoife
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 |SetGID |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 продължава в списък от блокове в областта за данни, съдържащи всички номера на свободни блокове.

  9. Алгоритъм alloc за разпределяне на блок Ако s_nfree не е 0, то се разпределя блок, чийто номер е вs_free[s_nfree--]. Ако s_nfree е 0, то се попълва масивът s_free, като се прочитапървият блок от списъка, чийто адрес е в s_free[0]. Разпределя се току що освободеният блок. Алгоритъм free за освобождаване на блок Ако масивът s_free не е пълен, то номерът на освобождаванияблок се записва в s_free[++s_nfree]. Ако масивът s_free е пълен, то съдържанието му се копира восвобождавания блок, а неговият адрес се записва в s_free[0] и в s_nfree се записва 0.

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

  11. Списък на свободнитеиндексни описатели • Масивът s_inode в суперблока съдържа номера на свободни индексни описатели. • Полето s_ninode съдържа брой свободни i-node, чиито номера са записани в масива s_inode. • Този масив не съдържа номерата на всички свободни i-node, но не продължава в свързан списък от блокове. • Свободен i-node на диска е отбелязан - битовете за тип на файла в полето mode са 0. • Масивът играе ролята на кеш памет.

  12. Каталози • Записите са с фиксирана дължина 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

  14. Символни връзки (symbolic link) • Символна връзка е тип файл, който сочи към друг файл (съдържаниетому еимето на другия файл). • Съдържание на каталозите след създаване на символна връзка към 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 е размер на блок в брой байта.

  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 е изтрит от каталога.

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

  23. Новото в LINUX в сравнение с UNIX • Използвани са битови карти при управление на ресурсите - блокове и индексни описатели • При разпределянето се отчита съседството. • Разделяне на дисковото пространство на групи блокове • Системните структури са близко до обектите, които описват. • Постига се по-висока степен на локалност на файловете. • Няколко копия на системните структури, съдържа-щи информация критична за ФС • Бързи символни връзки (само i-node, без блок) • По-надеждна и по-ефективна ФС

More Related