Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Файловая система операционной системы MS-DOS




Файловая система MS-DOS представляет собой увеличенную и улучшенную версию файловой системы СР/М, которая работает только на платформах с центральным процессором Intel, не поддерживает многозадачности и работает только в реальном режиме IBM PC. Файловая система MS-DOS во многом напоминает файловую систему СР/М, включая использование имен файлов, состоящих из 8 + 3 символов верхнего регистра. В первой версии системы (MS-DOS 1.0) был всего один каталог, как и в СР/М.

Однако, начиная с версии операционной системы MS-DOS 2.0, функциональность файловой системы значительно расширилась. Самым серьезным улучшением явился переход на иерархическую файловую систему, в которой каталоги могли вкладываться друг в друга на произвольную глубину. Это означало, что корневой каталог (размер которого по-прежнему был ограничен) мог содержать подкаталоги, которые так же могли содержать свои подкаталоги. Связи, принятые в UNIX, не допускались, поэтому файловая система представляла дерево, начинавшееся в корневом каталоге.

Прикладные программы часто начинают с того, что задают в корневом каталоге подкаталог, в который записывают свои файлы, что позволяет программам избежать конфликта. Так как сами каталоги хранятся в MS-DOS как файлы, нет ограничения на число каталогов или файлов на диске. Однако в отличие от СР/М, в MS-DOS нет концепции различных пользователей. Соответственно, любой вошедший в систему пользователь получает доступ ко всем файлам.

Чтобы прочитать файл, программа, работающая в системе MS-DOS, должна вначале сделать системный вызов open, чтобы получить дескриптор файла[4]. Системному вызову open в качестве одного из входных аргументов следует указать путь к файлу, который может быть как абсолютным, так и относительным (относительно текущего каталога).

Файловая система открывает каталоги, перечисленные в пути, один за другим, пока не обнаруживает последний каталог, который считывается в оперативную память. Затем в считанном каталоге ищется описатель файла, который требуется открыть.

Хотя каталоги в файловой системе MS-DOS переменного размера, используемые каталоговые записи, как и в СР/М, имеют фиксированный размер 32 байт (рис.1.).

Описатель файла содержит: имя файла, его атрибуты, дату и время создания, номер начального блока и точный размер файла. Имена файлов короче 8 + 3 символов выравниваются по левому краю полей и дополняются пробелами, каждое поле отдельно. Поле Attributes (атрибуты) представляет собой новое поле, содержащее биты, которые указывают тип файла (заархивирован, системный или скрытый) и действия, которые ему разрешены (чтение или чтение и запись). Запись в файл, для которого разрешено только чтение, не разрешается. Таким образом, осуществляется защита файлов от случайной записи или удаления.



Бит archived (архивный файл) не устанавливается и не проверяется операционной системой. Он зарезервирован в описателе для архивирующих программ уровня пользователя, сбрасывающих этот бит при создании резервной копии файла, в то время как программы, модифицирующие файл, устанавливают этот бит. Таким образом, архивирующая программа определяет какие файлы, подлежат архивации. Бит hidden (скрытый файл) позволяет не отображать файл в перечне файлов каталога, что позволяет скрыть от неопытных пользователей файлы, назначение которых им неизвестно. Бит system (системный) также скрывает файлы и защищает их от случайного удаления командой del, он установлен у основных компонентов системы MS-DOS.

Каталоговая запись также содержит дату и время создания или последнего изменения файла. Время хранится с точностью ±2 секунды, так как для него отведено 2-байтовое поле, способное содержать всего 65536 уникальных значений, а в сутках 86400 секунд. Поле времени разбивается на подполя: секунды (5 бит), минуты (6 бит) и часы (5 бит). Шестнадцатиразрядное поле даты также разбивается на три подполя: день (5 бит), месяц (4 бит) и год – 1980 (7 бит). При 7 двоичных разрядах для хранения года и 1980 в качестве точки отсчета, максимальное значение года, которое можно получить – 2107-й, поэтому файловая система MS-DOS имеет встроенную проблему 2108 года.


В отличие от файловой системы СР/М, не хранящей точного размера файла, система MS-DOS хранит точный размер файла и номера блоков файла в специальной таблице размещения файлов (FAT), которая помещается в оперативную память (в СР/М дисковые адреса файлов хранятся в их описателях).



   
   
 
 
Начало файла А
   
Начало файла В
 
   
   
 
 
-1  
   
-1  
  Неиспользуемый блок

 

Физический блок

 

 

Рис. 2. Таблица размещения файлов

 

В зависимости от количества блоков на диске в системе MS-DOS применяется три версии файловой системы FAT: FAT-12, FAT-16 и FAT-32. Во всех файловых системах FAT размер блока диска в байтах может быть установлен равным некоторому числу, кратному 512 с наборами разрешенных размеров блоков (кластеров), различными для каждого варианта FAT.

В первой версии системы MS-DOS использовалась FAT-12 с 512- байтовыми блоками, что позволяло создавать дисковые разделы размером до 212 х 512 байт. При этом максимальный размер дискового раздела мог составлять 2 Мбайт, а в оперативной памяти FAT-таблица занимала 4096 элементов по два байта каждый. Такая система хорошо работала на гибких дисках.

Для работы на жестких дисках корпорация Microsoft решила использовать дисковые блоки (кластеры) размером 1,2 и 4 Кбайт, что позволило сохранить структуру и размер таблицы FAT-12 и увеличить размер дискового раздела до 16 Мбайт.

Так как MS-DOS поддерживала до четырех дисковых разделов, файловая система FAT-12 могла работать с дисками емкостью до 64 Мбайт. Для поддержки жестких дисков большего размера была разработана файловая система FAT-16 с 16-разрядными дисковыми указателями.

Дополнительно было разрешено использовать кластеры размеров 8, 16 и 32 Кбайт. Таблица FAT-16 занимала 128 Кбайт оперативной памяти, максимальный размер дискового раздела, поддерживаемый файловой системой, составлял 2 Гбайт (64 К элементов по 32 Кбайт каждый), максимальный размер диска составлял 8 Гбайт (4 раздела по 2 Гбайт каждый).

Для второй версии операционной системы Windows 95 была разработана файловая система FAT-32 с 28-разрядными адресами. При этом версия системы MS-DOS, лежащая в основе Windows 95, была адаптирована для поддержки FAT-32. Размер разделов увеличился до 2 Тбайт (2048 Гбайт) и 8-гигобайтный диск мог состоять всего из одного раздела (при использовании FAT-16 он должен был содержать четыре раздела, что представлялось пользователям как логические устройства: С:, D:, Е: и F:).

Кроме того, для дискового раздела заданного размера могли использоваться блоки меньшего размера, например, 4 Кбайт (для FAT-16 использовались 32-килобайтные блоки). При размере блока в 32 Кбайт даже маленький (10-байтовый файл) занимает на диске 32 Кбайт. Так как многие файлы имеют размер меньше 32 Кбайт, то при использовании 32-килобайтных блоков около 3/4 дискового пространства теряется, то есть эффективность использования диска низкая. При 8-килобайтных файлах и 4-килобайтных блоках потерь дискового пространства нет, но значительно увеличился размер оперативной памяти, занимаемой таблицей FAT.

 


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал