- •Основы построения операционных систем
- •Введение
- •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.1.2. Типы файлов
Как правило, операционная система различает файлы в двух форматах : двоичные и текстовые.
Двоичный файл - это файл общего вида, на содержимое которого не накладывается никаких ограничений. Считается, что он состоит из последовательности байтов (рис.2.1,а), возможно, сгруппированных в логические записи фиксированной длины. Последняя запись может быть неполной. В двоичных файлах хранятся исполняемые программы и "снимки" основной памяти, т.е. какие-либо данные во внутреннем представлении. Несмотря на то, что ограничения на содержимое двоичных файлов отсутствуют, файлы с исполняемыми программами при их запуске на выполнение должны иметь определенную структуру, что операционная система обязательно анализирует. В других же случаях (при записи в двоичный файл или чтении из такого файла) его содержимое абсолютно никакой роли не играет и ни на что не влияет.
Текстовым (ASCII - American Standard Code for Information Interchange - американский стандартный код для обмена информацией) файлом называется файл, содержимое которого без преобразования может быть выдано на экран дисплея или принтер и непосредственно воспринято человеком. Такой файл состоит из последовательности строк постоянной (рис.2.1,б) или переменной длины (рис.2.1,в), которые можно считать логическими записями. Каждая строка содержит только текстовые символы (символы пишущей машинки) и завершается маркером конца строки EOL (End Of Line). Роль маркера EOL играет символ возврата каретки CR (Carriage Return), за которым, возможно, следует символ перевода строки LF (Line Feed). В качестве исключения внутри строк текстового файла допустим символ горизонтальной табуляции HT (Horizontal Tabulation), заменяющий несколько расположенных подряд пробелов и обеспечивающий сдвиг остатка строки вправо, к очередной позиции табуляции, при выдаче файла на устройство вывода. Текстовый файл обычно завершается маркером конца файла EOF (End Of File), роль которого играет символ подстановки SUB (SUBstitute). Однако иногда маркер EOF может отсутствовать. Часто между некоторыми строками текстового файла размещают еще один управляющий символ - символ перевода формата FF (Format Feed), обеспечивающий прогон бумаги на принтере до начала следующей страницы. На экране же дисплея он отображается как таковой и ни к каким действиям не приводит. В текстовых файлах хранят различные текстовые документы, в том числе исходные программы, данные к ним, а также окончательные результаты их выполнения. Конечно, для хранения данных экономнее использовать двоичные файлы, однако такие файлы не могут быть проинтерпретированы человеком. Поэтому данные записывают одной программой в двоичный файл только тогда, когда они в последующем понадобятся другой или этой же программе.
Многие программные продукты, в частности, текстовые редакторы, создают файлы, близкие к текстовым, но содержащие дополнительные управляющие символы, например, для задания шрифтов, интервалов, разбивки текста на абзацы или строки и т.п. При копировании таких файлов на экран дисплея или принтер средствами операционной системы отнюдь не всегда удается получить нормально читаемый документ. Несмотря на наличие управляющих символов, их иногда называют текстовыми (но не ASCII-) файлами.
Рис. 2.1. Структура файла