русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-28; просмотров: 2998; Нарушение авторских прав


 

Файловая система 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), которая помещается в оперативную память (в СР/М дисковые адреса файлов хранятся в их описателях). В каталоговой записи файловой системы MS-DOS хранится номер первого блока файла, который используется в качестве индекса для 64 К[5] элементов FAT-таблицы. Все блоки файла могут быть найдены, если проследовать по цепочке элементов таблицы (рис.2.).

 

   
   
 
 
Начало файла А
   
Начало файла В
 
   
   
 
 
-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.

 



<== предыдущая лекция | следующая лекция ==>
Файловая система DFS | Файловая система операционной системы Windows 98


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.273 сек.