ПредишенСледващото

Обща характеристика на системата на FAT

FAT система е предназначена за OS MS-DOS. Това е прост файлова система с сегментиран поставяне без мултиплейър защита. Directory структура - едно дърво, а на всеки том диск за създаване на отделен дърво. пълното му име може да се използва, за да уточни мястото на файла. съдържаща буквата на устройството, по пътя на дървото на директориите и действителното име на файла, например: «C: \ UTILS \ ARCH \ RAR.EXE».

В Windows, можете да използвате и FAT, особено оправдано флопи. За твърди дискове, голяма част от FAT система става неефективна и постепенно се заменя с по-мощна система NTFS.

структури от данни на диска

При форматиране на дискета или дял на твърдия диск в системата FAT, всички дисково пространство е разделено на следните области, както е показано на фиг. 3 # 8209; 2.

· BOOT сектор съдържа основна количествени параметри обем диск и файловата система, и може да включва и операционна програма на зареждане на системата.

· Таблица FAT (File-таблица на разпределение) - съдържа информация за разположението на файловете и свободното пространство на диска. Поради голямото значение на тази таблица е винаги се съхранява в двете копия да бъдат еднакви [4]. Всяка операция, която се променя съдържанието на мазнини, същото трябва да се променят и двете копия.

· ROOT - системната директория на корен, който да съдържа информация за файловете и поддиректориите на горното ниво, всеки от които на свой ред могат да съдържат файлове и поддиректории.

· Площ на данни - набор от клъстери, която съдържа всички файлове и директории (с изключение на корена).

Нека разгледаме по-подробно как да се съхранява цялата информация за файловете в FAT файловата система.

Когато създадете файл във влизането на файловата система директория се създава, съхранява по-голямата част от информацията за този файл. Всяка директория, с изключение на корена и специален тип файл, и съдържа запис на директория. Каталог запис винаги заема 32 байта, неговата структура е показана в таблица. 3.1.

запис от указателя структура е FAT файлова система

Невярно размер (байтове)

Както се вижда от таблицата, името на файла може да бъде не повече от 8 знака плюс разширение на 3 характер. В началото на 80-те години изглеждаше, че това е напълно достатъчно. По-късно на това ограничение е кръстен "проклятието на 8 + 3", и я държи на разстояние от FAT файлова система е възможно само в Windows 95.

Байт атрибут съдържа набор от битове, описващи свойствата на файла. Заедно с почти безполезни атрибути "скрит", "система" и "Архив", а тя съдържа важна "само за четене", "Каталог" и "етикет обем." Атрибутът "само за четене" не позволява на системата да изтриете или да отворите файла за запис. Умение "директория" показва, че влизането описва не е нормална файл и директория. Умение "Volume Label" може да се съдържа само в главната директория, такъв запис не разкрива всеки файл, но вместо да съдържа името на полета и разширяване на етикета на 11-герой (име), определени за обема на диск.

Като цяло, записа на директорията съдържа почти всичко, което се знае за файловата система, и ако размерът на файла е по-малко от една чепка, а след това всички напълно. Ако файлът съдържа повече от един клъстер, а след това другите стаи могат да бъдат намерени в таблицата FAT.

FAT таблица се състои от записи, чиито брой е равен на броя на клъстери в областта на данни, както и на размера на един запис може да бъде равен на 12, 16 или 32 бита. Съответно каже видове FAT-12 файлова система, FAT-16 или FAT-32. размер Запис трябва да бъде такова, че може да се съхранява на максималния брой клъстер. Например, за стандартен три-инчов дискета 1.44 Mb е достатъчно да използвате FAT-12, тъй като позволява да има 2 12 = 4096 клъстери (в действителност, малко по-малко), а дори и с размера на клъстер от 1 сектор (512 байта) е повече от достатъчно: 4096 "2 = 512 MB.

Записи FAT «по исторически причини" са преброени, започвайки от 2 и завършва с максимален брой от клъстера, влизане FAT описва всяка група, съответстваща на един и същ номер. Записът може да отнеме от следните стойности:

· Ако клъстера принадлежи към файл (или директория) и последната (или само) в този файл, записът в FAT съдържа специално значение - всички единици (FFF16 да FAT-12 или FFFF16 за FAT-16);

· Ако клъстера принадлежи към файл (или директория), но не и последният във файла, записът в FAT съдържа номера на следващия клъстер на същия файл;

· Ако клъстера е безплатно, записът съдържа всички нули;

• Ако клъстера е дефектен (т.е., когато проверката на диск показва, че тази група съдържа поне един дефектен сектор), записът съдържа особено значение за FF716 мазнини 12 или FFF716 да FAT-16.

Сега ние знаем как FAT файловата система съхранява информация за разположението на сегментиран файл. Брой на първия клъстер на файла се съхранява в записа на директорията, а останалата част от клъстерите могат постоянно да се идентифицира чрез записи FAT таблица.

Всяка директория, с изключение на основата, на първите две вписвания са специални имена: самото име показва името на директорията, ".." - предната директория ".".

Създаване и изтриване на файлове

За завършване на изследването на структурите на данни FAT система, помислете как тези структури се променят в операциите за създаване и изтриване на файлове.

Когато операционната система изпълнява функцията за създаване на файл с посоченото име в конкретна директория, тя е на първо място, да намерите дървото на директориите в директорията на файловата система. (Тъй като е тя е - пропуска за краткост Опитайте се да разберете себе си ..) След като прочетете каталога, системата проверява дали вече е запис с това име (т.е. дали вече има такъв файл). Ако има, то не е инсталиран, ако е "само за четене" атрибут на файла? Ако е зададено, а след това се създава нов файл не може да бъде по-рано, необходимо за премахване на атрибута. Ако не е зададено, старият файл се изтрива. След това системата е в записа свободен директория. Ако директорията не остава пространство, той може да бъде продължен за още един клъстер, този факт се отразява в таблицата FAT. И накрая, намери едно празно място, системата запълва областта записва нов файл: неговото име и разширение, дата и час на последна промяна, атрибути. Размерът и броят на първия клъстер настроен нула, защото файл, докато тя не съдържа никакви данни.

В бъдеще, когато първият запис във файла, системата ще се намери кой да е свободен клъстер от FAT таблица, маркирайте го FAT като последния клъстер на файла, въведете номера на първия клъстер в каталожния запис, за да запишете, и ще донесе на броя на байтове, написани на размера на файла на терена в каталога ,

Когато изтриете файл, на първо място върху влизането на стоките се проверява дали е възможно да се премахне (ако "само за четене" атрибут не е зададен), а след това направи две неща:

· Първият байт на името на изтрити файлове се заменя със специален знак с кода за E516 (тя се показва като руската буквата "х", най-вероятно, разработчиците система мазнини, вярвали, че кодът не могат да се срещнат в името на файла);

· Всички записи мазнината, съответстваща на клъстери, за да изтриете файла са пълни с нули, т.е., Клъстерите са обявени за свободни.

Както се вижда от горната процедура по време на изтриване на файлове му данни не се изтрива от диска, но информацията за поставяне на повредени файлове. Ако размерът на файла превиши единично струпване, няма гаранция, че тя може да бъде възстановена в случай на случайно изтриване, дори ако потребителят се е проверена веднага.

Работа с файлове в MS-DOS

За да работите с файлове и директории на FAT система MS-DOS осигурява достатъчно богат набор от функции. Всички от тях са причинени от въвеждане вътр 21ч софтуер прекъсване и конкретна функция определя от броя, посочен в AH регистъра. Тези функции позволяват по-специално:

· Създаване на файла, което показва пълното му име;

· Промяна на атрибутите на файла;

· Преименуване на файла или да го преместите в друга директория на същия диск [5];

· Потърсете в дадена директория, всички файлове, чиито имена съвпадат с определен шаблон (например, модел «XYZ C *.» Съвпадение на всички файлове, чиито имена започват с "XYZ", и съдържат точно 5 знака, както и разширяването започва с "С" писмо);

· Създаване и изтриване на папки;

· Попитайте текущия диск и текущата директория;

· Отворете файла чрез достъп до своите данни, както и затворете файла.

В MS-DOS, има два различни набора от функции, които ви позволяват да се работи с файлове с данни. Един от тях се основава на използването на блок за управление на файлове (FCB), едва ли някой го използва в последните 20 години, но запазва за съвместимост с MS-DOS 1.0 версия. Конвенционалният метод за работа с файлове на базата на използването на дръжки [6].

Дръжката - това е номер, който системата се връща в програмата потребител с успешното изпълнение на операцията, за да отворите или да създадете файл. Значимостта на този номер е без значение за програмата. Важното е, че на следващите покани за отваряне на файлове програма трябва да преминат на дръжката на системата като указател към файла.

MS-DOS осигурява достатъчно набор от функции за работа с отворени файлове. Това включва четене и писане на произволен брой байтове, функцията на показалеца във функцията настройка точка на произволен файл и отключване фрагменти файловите принуден почистване файл кеш буфери (обикновено почистване се извършва само, когато файлът е затворена или ако липсата на буфери функция см. P.2.6 0,6; принуден почистване е гаранция за незабавни промени на диска).

Когато се обадите функция за отваряне на файл, можете да укажете името на файла, вместо името на който и да е характер устройство, например, «PRN:». Той също така се връща на дръжката, която може да извършва операции за запис по същия начин, както ако дръжката, за да сочи към файл на диска. Разбира се, вие не можете да отворите устройството, за да четат и не може да изпълнява движението на гърба.

Когато стартирате всяка програма, която получава "подарък" от MS-DOS-пет вече отворени дръжки номерирани от 0 до 4. От тях най-важни са дръжката на 0, което по дефиниция се отнася до стандартния вход на програмата, както и дръжката 1 - стандартния изход. Дръжката 2 е стандартно устройство за генериране на съобщения за грешка се справят 3 - стандартно устройство сериен вход / изход (COM-порт), дръжката 4 - стандартна принтера.

По-горе в раздел 2.2., Различно определение даден стандарт вход и изход като устройства, използвани "по подразбиране". Няма противоречие. Транслатори езици за програмиране, които отговарят на предизвикателствата на процедурите за I / O, без да уточнява файла, да ги трансформират в разговори с функции на MS-DOS система с дръжката, съответно, 0 или 1.

Ако програмата се ръководи от MS-DOS командния ред, обикновено е дръжката на 0 показва, че клавиатурата (или по-точно, на устройството CON :) и дръжката. 1 - На екрана (CON същото устройство, но тя работи на изхода). Въпреки това, можете да използвате символите на стандартния вход пренасочването (символът "<») и вывода (знаки «>"А" >> "). Например, програмата, която стартира с помощта на екипа на «MY_PROG PRN »ще се използва като стандартен вход INFILE.TXT файл и стандартния изход директно към принтера. Знакът ">>" означава добавяне на данни към края на стандартната изходния файл, знака ">" - презапишете файла отново. Системата се отваря даден файл или устройство (на знака ">>" извършва и движението на показалеца на файла) и осигурява достъп до него от програма да се изпълнява чрез стандартна дръжка на 0 или 1. По този начин, за извършване на определен от потребителя пренасочи стандартния вход или изход работна програма не знае кои устройства или файлове са стандартни своя вход и изход.

Пренасочване на стандартния вход и изход може да се извърши и потребителската програма. Това обикновено се прави преди стартирането на програмата всяка друга програма, да се разпространява за пренасочване на стандартните дръжки.

структурата на данните в паметта

За да се осигури достъп до откритите файлове MS-DOS, използващи системата таблиците на два вида.

SFT таблица (System File таблица) съдържа запис на момента всички файлове отворени потребителски програми и самата операционна система. Тази таблица се съхранява в системната памет, броя на записите се определят параметрите на файлове в конфигурационния файл CONFIG.SYS, но не може да надвишава 255.

Ако са били открити и същи файл няколко пъти (независимо дали са на едни и същи или различни програми на втората програма), ще има няколко записа в SFT за него.

Всеки запис съдържа информация за даден файл, който е достатъчен за извършване на операции с него. По-специално, в SFT влизане съдържа:

· Копие от информацията за стоките файл;

· В текущата позиция на показалеца на четене / запис;

· Режим на достъп, определен при отваряне.

Освен това, в SFT за запис съдържа референтния брой за този запис от всички JFT маси, които ще бъдат посочени по-долу. Когато този брояч достигне нула, за въвеждане SFT става свободен, тъй като файлът е затворен.

За разлика от единична SFT, JFT маса (Йов документация на маса) е създаден за всяка програма да се изпълнява, така че може да съществува едновременно няколко такива таблици. (А къде в единична многозадачови MS-DOS може да отнеме няколко програми простият отговор е: Когато една програма стартира друг, паметта има две подробности вижте параграф 4.4.3 ....) Таблица JFT има проста структура: тя се състои от еднобайтови записи стойността на всеки запис е индекс (Резултати брой) в таблицата SFT. Неизползваните записи съдържат FF16 на стойност. Размерът на неизпълнение от страна на масата е 20 записа (байтове), но може да бъде увеличен до 255.

Сега за Хендли. Приложението използва дръжки, тъй като някои условно брой отворени файлове, конкретната стойност на дръжката в същото време не играе роля (освен очевидната стандарт дръжки от 0 до 4). В действителност, на стойност дръжка е нищо друго освен индексът на влизането в таблицата JFT програмата. Първият запис на таблицата съответства на дръжката на 0.

Фиг. 3 # 8209; 3 показва връзката между Хендли, маси JFT, SFT маса и отваряте файлове / устройства.

В примера, показан на фигурата, стандарт дръжки метод А се използва по подразбиране прави MS-DOS: дръжки 0, 1 и 2 показват SFT на запис, съответстващ конзола CON дръжка устройство 3 - на влизане COM1 устройство дръжката 4 -он запис на принтера. В процес В стандартния изход изпраща към устройството, което се отразява на стойността на елемента 1 JFT този процес. Дръжки 3 и 4 за процес B не са показани, за да не се претрупва чертежа. Останалата част от елементите, показани на фигура JFT двата процеса показват влизането SFT описване на отворените файлове на дискове.

Имайте предвид, че файловете, свързани PICTURE.BMP два записа на SFT в таблицата. Това означава, че този файл е открит във всеки процес поотделно (но, разбира се, като се използва един от режима за споделяне на файлове).

Какво е значението на такава схема на два етапа? Дали това е по-лесно да се дръжката сочи директно към момента на влизане SFT? Човек може да цитирам най-малко две очевидни причини за използване на JFT.

· Използване JFT позволява отделни логически концепция стандартно устройство (по-специално, на стандартния вход - дръжка 0 и стандартния изход - дръжката 1) на специфични устройства. Пренасочване на стандартните устройства се осъществява чрез промяна на стойностите на съответните елементи на JFT.

Новите версии на FAT система

В Windows 95 тя е преодоляна жалко ограничаване на дължината на името на файла - известния върховенството на "8 + 3". Изглежда, че когато размерът на запис от указателя в 32-байт трудно за да се надяваме на дълги имена на файлове. Въпреки това, беше установено, забавно решение на този проблем.

разработчиците на Microsoft забелязали, че директорията на записи, която отговаря безсмислен битов модел атрибут "скрит + система + + само за четене етикет обем" е просто игнорира като системните програми MS-DOS и помощните средства, които са общи за други разработчици. Това дава възможност да се използват за регистрирането на такава комбинация за съхранение на дълго име на файла. Както и преди, за всеки файл в директорията, има магистърска рекорд в необичайно, стария формат, съдържащ атрибутите на файла, броят на първия клъстер и задължително "къси" име. Въпреки това, ако потребителят при създаването на файла посочва името не е подходящо за стандарта "8 + 3" или съдържа малки букви, а след това преди самото записът ще бъде включен в желания брой допълнителни записи строшиха "дълго име" в кодирането на Unicode (2 байта на знак , която позволява използването на всички известни азбука). Дължината на името, според документацията, може да бъде до 255 символа (в действителност, малко по-малко).

Започвайки с Windows 98, то е възможно да се използва нов вид файлова система - FAT-32. Тя се различава от FAT-12 и FAT-16 е не само по-голям капацитет в номера на клъстер (въпреки че това е много важно за голям диск), но също така и във факта, че Microsoft най-накрая решили да използват 10-байт резерв, който не е известен за всеки цели са останали незаети във всеки запис от указателя. Поради това има възможност за добавяне на дата / час на последна промяна на два времеви печат: дата на създаване / час (в действителност, това е датата / часа на последна промяна на стоките записи) и датата на последния достъп.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!