- •Классификация и характеристика программного обеспечения
- •Назначение, классификация системного программного обеспечения. Требования к спо
- •Формирование целостного представления о назначения организации сис по.
- •Овладение методами и инструментами: настройки, откладки, диагностики и защиты программных систем.
- •Назначение, функции и основные качества операционных систем. Требования к современным ос
- •Поколения операционных систем и их классификация
- •Функциональные компоненты операционных систем: подсистема управления ресурсами
- •1.1. Управление процессами
- •1.2. Управление памятью
- •1.3. Управление файлами и внешними устройствами
- •Функциональные компоненты операционных систем: подсистема управления задачами
- •2.1. Защита данных и администрирование
- •2.2. Интерфейс прикладного программирования
- •2.3. Пользовательский интерфейс
- •Архитектура операционных систем: ядро и вспомогательные модули ос
- •Модулями ос
- •Архитектура операционных систем: ядро в привилегированном режиме
- •В привилегированном режиме
- •К привилегированному ядру
- •Архитектура операционных систем: многослойная структура ос
- •Типовые средства аппаратной поддержки операционных систем
- •Концепция, преимущества и недостатки микроядерной архитектуры
- •Пространство
- •Мультипрограммирование. Реализация в системах пакетной обработки
- •Ввода-вывода
- •В мультипрограммной системе (б)
- •Мультипроцессорная обработка: сущность и характеристика
- •Понятия «процесс» и «поток», операции над процессами в мультипрограммных системах
- •Планирование и диспетчеризация потоков в мультипрограммных системах
- •Состояния потока в мультипрограммных системах
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Синхронизация процессов и потоков: цели и средства синхронизации
- •Синхронизация процессов и потоков: гонки и тупики
- •Синхронизация процессов и потоков: критическая секция, блокирующие
- •Синхронизация процессов и потоков: использование семафоров
- •Синхронизация процессов и потоков: синхронизирующие объекты ос
- •Функции операционных систем по управлению памятью
- •Управление памятью: виртуальное адресное пространство и виртуальная память
- •Алгоритмы распределения памяти: распределение памяти фиксированными разделами
- •Алгоритмы распределения памяти: распределение памяти динамическими разделами, перемещаемые разделы
- •Управление памятью: страничное распределение
- •Управление памятью: сегментное распределение
- •Управление памятью: сегментно-страничное распределение
- •Мультипрограммирование на основе прерываний: диспетчеризация и приоритезация прерываний в ос
- •Мультипрограммирование на основе прерываний: системные вызовы
- •Управление вводом-выводом в операционной системе: основные понятия и концепции организации ввода/вывода
- •Режимы управления вводом/выводом. Основные системные таблицы ввода/вывода
- •2.1. Режимы управления вводом/выводом
- •2.2. Основные системные таблицы ввода-вывода
- •Управление вводом-выводом в операционной системе: кэширование операций ввода/вывода при работе с накопителями на магнитных дисках
- •Управление файлами: общий принцип работы операционной системы с файлами
- •Управление файлами: общая характеристика файловых систем (fat, fat32 и ntfs)
- •2.1. Файловая система fat
- •2.2. Файловые системы vfat и fat32
- •3. Файловая система ntfs
- •3.1. Структура тома с файловой системой ntfs
- •3.2. Возможности файловой системы ntfs по ограничению
- •Сетевые и распределенные операционные системы
- •Функциональные компоненты сетевой операционной системы
- •Одноранговые и серверные сетевые операционные системы
- •Интерфейс прикладного программирования (api)
- •1.1. Принципы построения интерфейсов ос
- •1.2. Варианты реализации функций api
- •1). Реализация функций api на уровне ос
- •2). Реализация функций api на уровне системы программирования
- •3). Реализация функций api с помощью внешних библиотек
- •Платформенно-независимый интерфейс posix
- •Технологии программирования сом
Управление файлами: общий принцип работы операционной системы с файлами
Общий принцип работы ОС с файлами
Под файлом понимают набор данных, организованных в виде совокупности записей одинаковой структуры
Для управления этими данными, создаются соответствующие системы управления файлами (СУФ), и возможность иметь дело с логическим уровнем структуры данных и операций, выполняемых над ними в процессе обработки, предоставляет файловая система
Файловая система – это набор спецификаций и соответствующее им ПО, которое отвечает за создание, уничтожение, организацию, чтение, запись, модификацию и перемещение файловой информации, а также за управление доступом файла и за управление ресурсами, которое используется файлами.
СУФ является основной подсистемой в абсолютном большинстве систем современных ОС.
Необходимость СУФ обуславливается:
через СУФ связываются по данным все обрабатывающие программы;
с помощью этой системы решается проблема централизованного распределения дискового пространства и управление данными;
СУФ предоставляет пользователям возможности
– создание, удаление, переименование данных программ
– работа с недисковыми ПУ, как с файлами
– обмен данными между файлами, между устройствами, между файлами и устройствами
– защита файлов от несанкционированного доступа
– и другие
Функция управления файлами поясняется рисунком 1.
Рис. 1. К пояснению функции управления файлами
Каталог устанавливает соответствие логических имён файлов с их физическим местонахождением и может представить о файлах некоторую общую информацию.
Файловая информационная таблица содержит дополнительную информацию об организации файлов, длине записи и формат, о способе индексирования.
Чтобы начать работу с файлами ОС просматривает каталог, определяет местонахождение соответствующей информационной таблицы. При открытии файла ОС в ОП создаёт буферы для размещения в них 2х блоков файлов, как правило использует способ двойной буферизации, показан на рисунке 2.
Рис. 2. Операции буферизации и объединения в блоки читаемых
и записываемых файлов
Управление файлами: общая характеристика файловых систем (fat, fat32 и ntfs)
ФАЙЛОВЫЕ СИСТЕМЫ FAT, VFAT И FAT32
2.1. Файловая система fat
Аббревиатура FAT (file allocation table) расшифровывается как «таблица размещения файлов».
Этот термин относится к линейной табличной структуре со сведениями о файлах – именами файлов, их атрибутами и другими данными, определяющими местонахождение файлов (или их фрагментов) в среде FAT. Элемент FAT определяет фактическую область диска, в которой хранится начало физического файла.
В файловой системе FAT логическое дисковое пространство любого логического диска делится на две области (рис. 3):
- системную область и
- область данных.
Рис. 3. Логическое дисковое пространство в файловой системе FAT
Системная область логического диска создается и инициализируется при форматировании, а впоследствии обновляется при манипулировании файловой структурой.
Область данных логического диска содержит файлы и каталоги, подчиненные корневому. Она, в отличие от системной области, доступна через пользовательский интерфейс DOS.
Системная область состоит из следующих компонентов, расположенных в логическом адресном пространстве подряд:
- загрузочной записи (boot record);
- зарезервированных секторов (reserved sector);
- таблицы размещения файлов (file allocation table);
- корневого каталога (root derectory).
Таблица размещения файлов является очень важной информационной структурой. Можно сказать, что она представляет собой карту (образ) области данных, в которой описывается состояние каждого участка области данных. Область данных разбивают на так называемые кластеры.
Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее – только в области данных).
В таблице FAT кластеры, принадлежащие одному файлу (некорневому каталогу), связываются в цепочки. Для указания номера кластера в системе управления файлами FAT-16 используется 16-битовое слово, следовательно, можно иметь до 216 = 65536 кластеров (с номерами от 0 до 65535).
В тоже время кластер – это минимальная адресуемая единица дисковой, памяти, выделяемая файлу (или некорневому каталогу).
Файл или каталог занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что приведет к заметной потере дискового пространства при большом размере кластера. На дискетах кластер занимает один или два сектора, а на жестких дисках – в зависимости от объема раздела (табл. 1).
Таблица 1.
Емкость раздела, Мб |
Количество секторов в кластере |
Размер кластеров, Кб |
16-127 |
4 |
2 |
128-255 |
8 |
4 |
256-511 |
16 |
8 |
512-1023 |
32 |
16 |
1024-2047 |
64 |
32 |
Номер кластера всегда относится к области данных диска (пространству, зарезервированному для файлов и подкаталогов). Первый допустимый номер кластера всегда начинается с 2. Номера кластеров соответствуют элементам таблицы размещения файлов.
Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:
- прежде всего, уменьшается размер самой таблицы FAT;
- уменьшается возможная фрагментация файлов;
- ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочек фрагментов дискового пространства, выделенных для него.
Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов. В среднем на каждый файл теряется около половины кластера. Из таблицы следует, что при размере кластера в 32 сектора (объем раздела – от 512 Мбайт до 1023 Мбайт), то есть 16 Кбайт, средняя величина потерь на файл составит 8 Кбайт, и при числе файлов в несколько тысяч потери могут составлять более 100 Мбайт.
Поэтому в современных файловых системах размеры кластеров ограничиваются (обычно - от 512 байт до 4 Кбайт).
Основная идея файловой системы с использованием таблицы размещения файлов FAT иллюстрируется рис. 4.
Из этого рисунка видно, что файл с именем myfile.txt размещается начиная с восьмого кластера. Всего файл myfile.txt занимает 12 кластеров. Цепочка кластеров для нашего примера может быть записана следующим образом:
8, 9, 0А, 0В, 15, 16, 17, 19, 1А, 1В, 1С, 1D.
Кластер с номером 18 помечен специальным кодом F7 как плохой (bad), он не может быть использован для размещения данных. При форматировании обычно проверяется поверхность магнитного диска, и те секторы, при контрольном чтении с которых происходили ошибки, помечаются в FAT как плохие. Кластер 1D помечен кодом FF как конечный (последний в цепочке) кластер, принадлежащий данному файлу.
Рис. 4. Пример размещения файлов в FAT
Свободные (незанятые) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый свободный кластер. Поскольку файлы на диске изменяются – удаляются, перемещаются, увеличиваются или уменьшаются, – то упомянутое правило выделения первого свободного кластера для новой порции данных приводит к фрагментации файлов, то есть данные одного файла могут располагаться не в смежных кластерах, а, порой, в очень удаленных друг от друга, образуя сложные цепочки. Естественно, что это приводит к существенному замедлению работы с файлами.
Так как FAT используется при доступе к диску очень интенсивно, она обычно загружается в ОЗУ (в буфера ввода/вывода или кэш) и остается там настолько долго, насколько это возможно.
В связи с чрезвычайной важностью FAT она обычно хранится в двух идентичных экземплярах, второй из которых непосредственно следует за первым. Обновляются копии FAT одновременно. Используется же только первый экземпляр. Если он по каким-либо причинам окажется разрушенным, то произойдет обращение ко второму экземпляру.
Так, например, утилита проверки и восстановления файловой структуры scandisk.exe при обнаружении несоответствия первичной и резервной копии FAT предлагает восстановить главную таблицу, используя данные из копии.