- •Основы построения операционных систем
- •Введение
- •1. Основные аспекты операционных систем
- •1.1. Программные системы
- •1.2. Ресурсы вычислительных систем
- •1.3. Функции операционных систем
- •1.3.1. Упрощение доступа к компьютеру
- •1.3.2. Повышение эффективности использования ресурсов
- •1.4. Классификация операционных систем
- •2. Управление файлами
- •2.1. Файлы
- •2.1.1. Имя файла
- •2.1.2. Типы файлов
- •2.1.3. Атрибуты файла
- •2.2. Функции системы управления файлами
- •2.3. Способы организации файлов
- •2.3.1. Последовательное размещение
- •2.3.2. Размещение с помощью сцепленных блоков
- •2.3.3. Организация файлов на основе таблиц размещения
- •2.3.4. Размещение с использованием таблицы индексов
- •2.3.5. Индексно-последовательное размещение
- •2.3.6. Библиотечная структура данных
- •2.4. Методы доступа к содержимому файлов
- •2.4.1. Последовательный доступ
- •2.4.2. Прямой доступ
- •2.4.3. Другие методы доступа
- •2.5. Способы организации файловой структуры
- •2.6. Манипулирование файловой структурой
- •3. Управление памятью
- •3.1. Простое непрерывное распределение
- •3.2. Распределение с несколькими непрерывными разделами
- •3.2.1. Мультипрограммирование и разбиение на разделы
- •3.2.2. Разделы с фиксированными границами
- •3.2.3. Разделы с подвижными границами
- •3.2.4. Своппинг
- •3.3. Организация виртуальной памяти
- •3.3.1. Основные концепции виртуальной памяти
- •3.3.2. Страничная организация памяти
- •3.3.3. Сегментная организация памяти
- •3.3.4. Сегментно-страничная организация памяти
- •3.4. Управление виртуальной памятью
- •3.4.1. Алгоритмы выталкивания страниц
- •3.4.2. Подкачка страниц по запросу
- •3.4.3. Подкачка страниц с опережением
- •3.4.4. Освобождение страниц
- •3.4.5. Размер страниц
- •4. Управление процессами
- •4.1. Концепции процесса
- •4.1.1. Понятие последовательного процесса
- •4.1.2. Состояния процесса
- •4.1.3. Блок управления процессом
- •4.1.4. Планирование процессов
- •4.1.5. Обработка прерываний
- •4.2. Синхронизация параллельных процессов
- •4.2.1. Параллельная обработка
- •4.2.2. Взаимное исключение
- •4.2.3. Алгоритм Деккера
- •4.2.4. Аппаратная реализация взаимного исключения
- •4.2.5. Семафоры
- •4.2.6. Мониторы
- •4.2.7. Передача сообщений
- •4.3. Тупиковые ситуации
- •4.3.1. Условия возникновения дедлоков
- •4.3.2. Основные направления исследований по проблеме тупиков
- •4.3.3. Предотвращение тупиков
- •4.3.4. Обход дедлоков
- •4.3.5. Алгоритм банкира
- •4.3.6. Распознавание дедлоков
- •4.3.7. Восстановление после тупиков
- •5. Управление процессором
- •5.1. Диспетчеризация процессов
- •5.2. Приоритеты
- •5.3. Алгоритмы диспетчеризации с одной очередью
- •5.3.1. Алгоритм fcfs (первый пришедший обслуживается первым)
- •5.3.2. Алгоритм spn (кратчайший процесс - следующий)
- •5.3.3. Алгоритм srt (по наименьшему остающемуся времени)
- •5.3.4. Алгоритм hrrn (по наибольшему относительному времени ответа)
- •5.3.5. Алгоритм циклической диспетчеризации rr
- •5.3.6. Сравнение алгоритмов диспетчеризации с одной очередью
- •5.4. Многоуровневые очереди с обратными связями
- •6. Управление устройствами
- •6.1. Общая организация ввода-вывода
- •6.2. Методы управления периферийными устройствами
- •6.3. Действия по вводу-выводу
- •6.3.1. Буферизация : прочитать и записать
- •6.3.2. Блокирование : получить и поместить
- •6.3.3. Подготовка : открыть и закрыть
- •6.4. Управление магнитными дисками
- •6.4.1. Физическая структура магнитного диска
- •6.4.2. Физическая структура формата данных дискеты
- •6.4.3. Логическая структура магнитного диска
- •6.4.4. Планирование работы с магнитными дисками
- •Заключение
- •Список используемых источников
- •Оглавление
2. Управление файлами
Для обеспечения удобства работы с записанными на диск сведениями их размещают в файлах. Файлом называется поименованная целостная совокупность данных на внешнем носителе информации. В этом контексте под данными понимается любая информация, включающая программы и исходные данные для их выполнения, результаты выполнения программ, тексты, иллюстрации и т.п.
Под файловой системой понимают функциональную часть операционной системы, обеспечивающую управление файлами, которые хранятся во внешней памяти.
Файловые системы, как правило, имеют только программный интерфейс. Однако это не означает, что их услугами невозможно воспользоваться через пользовательский интерфейс операционной системы, которая может транслировать команды, вводимые пользователем, в программные запросы к файловой системе.
В данном разделе будут рассмотрены как непосредственно сами файлы, их типы и характеристики, так и функции системы управления файлами.
2.1. Файлы
Файлом называется поименованная целостная совокупность данных на внешнем носителе информации. Пользователь вычислительной системы организует информацию в файлах, вводя в них определенную логическую структуру. В соответствии с ней файл определяется как совокупность элементарных единиц информации одной природы - записей. Записи в свою очередь подразделяются на поля.
С каждым файлом в операционной системе связываются:
- составное имя файла;
- тип файла;
- атрибуты файла.
2.1.1. Имя файла
Составное (полное) имя файла представляет собой совокупность имени файла и расширения имени файла.
Имя файла - это последовательность символов, в качестве которых допускается использовать буквы латинского алфавита от А (а) до Z (z), цифры от 0 до 9, а также символы @, #, $, %, &, (, ), -, _, ~, ‘, { и }. Можно также использовать буквы национального алфавита, поддерживаемого активизированной кодовой страницей. Никаких ограничений на порядок следования символов в имени файла не налагается, а одноименные строчные и прописные буквы в ряде операционных систем (в частности, в DOS) не различаются. Возможно, легче запомнить недопустимые в имени файла символы: /, запятая, ; , +, [, ], =, ", *,?, :, ., < и >. В качестве имен файлов по вполне понятным причинам нельзя использовать имена посимвольных устройств. Длина имени файла в разных операционных системах может составлять до 8 (в MS DOS) или до 256 (в UNIX и Windows 95 или Windows NT) символов.
Имя файла - это обязательный элемент и поэтому при доступе к файлу оно должно указываться всегда.
Расширение имени файла характеризует тип (содержимое) файла и представляется последовательностью из не более трех символов, допустимых для имени файла. При этом ограничения на использование имен устройств в качестве расширения отсутствуют.
Расширение имени файла является необязательным элементом и поэтому при создании файла может не задаваться. Однако это снижает информативность составного именования файла.
В командах операционной системы и программах на языках программирования составное имя файла записывается как имя файла, за которым следует расширение, отделенное от имени точкой.
Если файл не имеет расширения, то оно, естественно, при обращении к нему не указывается. В этом случае точка тоже может быть опущена. Но если требуется подчеркнуть отсутствие расширения в том контексте, где оно подразумевается по умолчанию, то точка необходима.
Умолчания расширений файлов поддерживают многие распространяемые программные продукты. При работе с таким программным обеспечением крайне желательно придерживаться принятых в нем соглашений. В этом случае явно указывать расширения существующих и создаваемых файлов необязательно, что упрощает диалог. Но сказанное не означает, что расширений имен файлов реально не существует и что они реально не будут созданы.
Таким образом, расширение имени файла не указывается в двух случаях:
- когда оно отсутствует;
- когда оно подразумевается по умолчанию и правила умолчания не противоречат тому, что требуется выполнить.
С учетом сказанного пользователь может в остальном использовать произвольные расширения, но желательно, чтобы они, как и имена файлов, несли какую-либо смысловую нагрузку.
Перечень умолчаний расширений имен файлов, используемых существующими программными продуктами, а также часто используемых расширений, ставших в определенном смысле стандартными, в алфавитном порядке приведен в табл. 2.1.
Таблица 2.1
Расширение |
Назначение |
|
1 |
2 |
|
ARC |
Архив |
|
ASM |
Программа на языке Ассемблера |
|
BAK |
Предыдущая (резервная) версия файла |
|
BAS |
Программа на языке Basic |
|
BAT |
Командный файл |
|
BIN |
Двоичный файл, в том числе машинная программа или драйвер |
|
C |
Программа на языке C |
|
CFG |
Файл, описывающий конфигурацию (параметры) программы |
|
CHI |
Документ текстового редактора ChiWriter |
|
COB |
Программа на языке Cobol |
|
COM |
Позиционно-независимая машинная программа |
|
CPI |
Файл кодовых страниц периферийных устройств |
|
DAT |
Файл данных |
|
DB |
База данных |
|
DBF |
Файл данных с развитой организацией (dBase) |
|
DOC |
Документ, подготовленный одним из текстовых редакторов, в частности, MicroSoft Word |
|
DRV |
Драйвер |
|
EXE |
Позиционно-зависимая машинная программа |
|
EXT |
Файл расширений |
|
FNT |
Файл со шрифтами для принтера |
|
FOR |
Программа на языке Fortran |
|
HLP |
Файл, содержащий экранный интерактивный справочник |
|
INI |
Файл, описывающий конфигурацию (параметры) |
|
LET |
Письмо |
Продолжение табл. 2.1
1 |
2 |
LIB |
Библиотека подпрограмм |
LSP |
Программа на языке Lisp |
LST |
Листинг программы |
MAC |
Макрокоманда на языке Ассемблера |
MAP |
Листинг компоновщика |
MNU |
Файл меню |
MSG |
Файл сообщений программы |
OBJ |
Объектная программа |
OVG |
Оверлейный файл |
OVL |
Оверлейный файл |
OVR |
Оверлейный файл |
PAS |
Программа на языке Pascal |
PCX |
Иллюстрация графического редактора PC PaintBrush |
PIC |
Иллюстрация |
PIF |
Оверлейный файл |
PRN |
Файл, подготовленный для вывода на принтер |
PRG |
Программа на языке Clipper, FoxPro |
SYS |
Драйвер, если имя файла отлично от IO, MSDOS и CONFIG |
TMP |
Временный файл |
TPL |
Библиотека объектных модулей Turbo Pascal -я |
TPU |
Объектный модуль Turbo Pascal - я |
TXT |
Текстовый файл |
$$$ |
Временный файл |
ZIP |
Архив |
Расширение СОМ (от COMmand - командный) зарезервировано для файлов, содержащих готовые к выполнению машинные программы, не требующие перемещения при загрузке их в оперативную память для выполнения независимо от адреса загрузки. Иными словами, программа инвариантна к адресу загрузки. Она может быть загружена в оперативную память и выполнена без настройки содержащихся в ней адресов по месту загрузки. Размер такой программы не может превышать одного сегмента (64 Кбайт). СОМ-программу можно назвать позиционно независимой.
Расширение ЕХЕ (от EXEcutable - выполняемый) зарезервировано для файлов, содержащих готовые к выполнению машинные программы, которые при загрузке на выполнение в оперативную память требуют настройки адресов, что увеличивает общее время выполнения программ. Такой программе предшествует заголовок, содержащий необходимую для перемещения информацию, а ее размер может быть больше 64 Кбайт. ЕХЕ-программу называют позиционно зависимой.
Как позиционно независимые, так и позиционно зависимые программы являются перемещаемыми в том смысле, что могут быть размещены для выполнения в любом месте оперативной памяти. В отличие от перемещаемой абсолютная программа должна загружаться в память по вполне определенному адресу.
Любой файл, содержащий исполняемую программу, будем называть программным.
Расширение BAT (от BATch - командный) зарезервировано для командных файлов, т.е. текстовых файлов, содержащих программы на командном языке операционной системы.
Файлы с расширениями СОМ, ЕХЕ и BAT (если их содержимое соответствует выше сказанному) называются исполняемыми. Исполняемыми являются также файлы и с другими расширениями, если они содержат готовые к выполнению машинные программы или программы на командном языке. Однако такие файлы не всегда могут быть выполнены без предварительного явного изменения расширения в соответствии с их содержимым. Некоторые операционные системы (в частности DOS) распознают формат СОМ- и ЕХЕ - файлов (но только их) по содержимому, а не по расширению. Поэтому файлы с перемещаемыми программами могут иметь любое расширение, но тогда при запуске такого файла на выполнение расширение придется указать явно. Изменение расширений программных файлов можно иногда применять для защиты от компьютерных вирусов. Вместе с тем командный файл обязательно должен иметь расширение BAT, чтобы его можно было выполнить.