Задачи ОС по управлению файлами и устройствами.
Одной из главных функций ОС является управление всеми устройствами ввода-вывода компьютера. ОС должна передавать устройствам команды, перехватывать прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс между устройствами и остальной частью системы. В ОС для этого существует подсистема ввода/вывода(драйвер управления периферией,файловая система)
Задачи ОС по управлению файлами и устройствамивами
При обмене данными с внешними устройствами ОС должна решать
1.параллельную работу ввода/вывода и процессора(каждому устройству ввода/вывода соответствует контроллер, работающий параллельно с процессором и взаимодействует с системой через драйвер).
2.согласование скоростей и кэширование(при обмене данными возникает проблема согласования скорости.решается с помощью буферизации данных и синхронизации доступа процессов к буферу.При больших обьёмах данных памяти может не хватать и буфер использует spool файл. Спулинг - это способ работы с выделенными устройствами в мультипрограммной системе.
4.предоставление удобного логического интерфейса между у-вами и системой(любое у-во это последовательность байтов.Есть команды read,write с параметрами имени и смещения относительно начала последовательности)
5.поддержка широкого спектра драйверов(дрова пишут как разработчики прог,так и производители устройств.есть два типа интерфейса.Driver Kernel Interface(драйвер ядро, взаимодействует с ОС) и Driver Device Interface(драйвер у-во, взаимодействует с у -вами).Для поддержки драйверов выпускают пакет Driver Development Kit-набор библиотек,компиляторов и отладчиков)
6.Динамическая загрузка-выгрузка драйверов(Далеко не все поддерживаемые у-ва используются в компьютере.Поэтому нужна динамическая загрузка-выгрузка дров в оперативку,что экономит системную область данных)
7.Поддержка нескольких файловых систем(файловые системы определяют быстродействие,надёжность ОС.Обычно имеется слой ПО отвечающий за простоту подключения новой файловой системы.в Юниксе это VFS-virtual file system)
8.поддержка синхронных операций ввода-вывода(синхронно-приложение останавливается ждёт отклика от у –ва.асинхронно-продолжает работать параллельно с ожиданием отклика.ОС должна обеспечивать и асинхронную, и синхронную работу)
Многослойная модель подсистемы ввода-вывода. Драйверы
У-ва бывают блок-ориентированные(диски,управляемые файловой системой и использующие КЭШ) и байт-ориентированные(графические у-ва,управляемые диспетчерами окон и графическими драйверами.сетевые устройства, управляемые протоколами).В каждой вертикальной подсистеме есть несколько слоёв модулей.Это позволяет объеденить много дров в систему и общим интерфейсом.
Менеджеры ввода/вывода.В подсистеме ввода-вывода есть модуль универсального назначения.Он с помощью пакетных запросов организует работу всех компонентов ввода-вывода,таких как системные вызовы ввода-вывода и взаимодействие с устройствами.
Файловая система
Файл -именованная система внешней памяти для записи-чтения.Позволяет долговременно и надёжно хранит инфу и
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие "файловая система" включает:
•совокупность всех файлов на диске,
•наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске,
•комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Имена файлов
Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. До недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Например, Windows NT в своей новой файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.
При переходе к длинным именам возникает проблема совместимости с ранее созданными приложениями, использующими короткие имена. Чтобы приложения могли обращаться к файлам в соответствии с принятыми ранее соглашениями, файловая система должна уметь предоставлять эквивалентные короткие имена (псевдонимы) файлам, имеющим длинные имена. Таким образом, одной из важных задач становится проблема генерации соответствующих коротких имен.
Длинные имена поддерживаются не только новыми файловыми системами, но и новыми версиями хорошо известных файловых систем. Например, в ОС Windows 95 используется файловая система VFAT, представляющая собой существенно измененный вариант FAT. Среди многих других усовершенствований одним из главных достоинств VFAT является поддержка длинных имен. Кроме проблемы генерации эквивалентных коротких имен, при реализации нового варианта FAT важной задачей была задача хранения длинных имен при условии, что принципиально метод хранения и структура данных на диске не должны были измениться.
Типы файлов
Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.
Обычные файлы в свою очередь подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл.
Специальные файлы - это файлы, ассоциированные с устройствами ввода-вывода, которые позволяют пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла. Эти команды обрабатываются вначале программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством. Специальные файлы, так же как и устройства ввода-вывода, делятся на блок-ориентированные и байт-ориентированные.
Каталог - это, с одной стороны, группа файлов, объединенных пользователем исходя из некоторых соображений, а с другой стороны - это файл, содержащий системную информацию о группе файлов, его составляющих. В каталоге содержится список файлов, входящих в него, и устанавливается соответствие между файлами и их характеристиками (атрибутами).
В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например:
•информация о разрешенном доступе,
•пароль для доступа к файлу,
•владелец файла,
•создатель файла,
•признак "только для чтения", "скрытый файл","системный файл”, "архивный файл",
•признак "архивный файл",
•признак "двоичный/символьный",
•признак "временный" (удалить после завершения процесса),
•признак блокировки,
•длина ключа,
•времена создания, последнего доступа и последнего изменения,
•текущий размер файла,
•максимальный размер файла.
Каталоги могут непосредственно содержать значения характеристик файлов(MS-DOS), или ссылаться на таблицы, содержащие эти характеристики(ОС UNIX). Каталоги могут образовывать иерархическую структуру
Каталоги образуют дерево, если файлу разрешено входить только в один каталог(MS-DOS), и сеть - если файл может входить сразу в несколько каталогов(UNIX).Каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога.