- •Основы построения операционных систем
- •Введение
- •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. Планирование работы с магнитными дисками
- •Заключение
- •Список используемых источников
- •Оглавление
1.3. Функции операционных систем
Операционная система - это программа, управляющая исполнением прикладных программ и организующая интерфейс между пользователем и аппаратными средствами компьютера. Можно сказать, что операционная система предназначена для решения трех задач (или выполнения трех функций):
- упрощения доступа: операционная система упрощает доступ к компьютеру для пользователя;
- повышения эффективности: операционная система позволяет использовать ресурсы компьютера наиболее эффективным образом;
- способности к развитию: операционная система должна быть разработана так, чтобы иметь возможности к дальнейшему развитию, контролю, введению новых функций без изменения сервисных услуг.
1.3.1. Упрощение доступа к компьютеру
Существуют два варианта работы пользователя с компьютером. В первом случае пользователь постоянно управляет работой компьютера, во втором - работает с системными или прикладными программами.
Для того, чтобы управлять работой компьютера на уровне физических устройств, пользователь должен исполнять одну за другой инструкции машинного языка. Когда пользователь разрабатывает программу, он должен кодировать все операции по управлению компьютером. Естественно, что обычный пользователь не хочет (или не может) выполнять как первую, так и вторую работу. Наоборот, он предпочитает иметь дело с более простой абстракцией. Вот почему реализация первой функции позволяет "спрятать" аппаратные особенности компьютера и тем самым предоставить в распоряжение пользователей и программистов виртуальную ЭВМ с существенно облегченным управлением. Иными словами, операционная система поддерживает два следующих интерфейса :
1) пользовательский интерфейс - командный язык для управления функционированием компьютера и набор сервисных услуг, освобождающих пользователя от выполнения рутинных операций;
2) программный интерфейс - набор услуг, освобождающий программиста от кодирования рутинных операций.
Схематично интерфейсы операционной системы изображены на рис.1.2. Уровень программного интерфейса может быть дополнительно повышен путем использования систем программирования для языков высокого уровня.
Рис.1.2. Интерфейсы ОС
Сервисные системы дополняют и расширяют пользовательский, а возможно, и программный интерфейсы ОС. Место сервисных систем различных типов в программно-аппаратном комплексе и их функциональные различия представлены на рис.1.3.
Рис. 1.3. Роль сервисных систем
Еще один вид услуг, связанный с модификацией только программного интерфейса ОС, реализуют так называемые драйверы, которые относятся собственно к ОС. Конечно, это не означает, что они поставляются только совместно с ней. Драйверы не принадлежат к классу сервисных систем потому, что не влияют на пользовательский интерфейс ОС.
Заметим, что ПО, разработанное для функционирования под управлением какой-либо интерфейсной системы, вовсе не обязательно будет работать под управлением базовой ОС.
1.3.2. Повышение эффективности использования ресурсов
Распределение ресурсов вычислительной системы необходимо для:
- длительного хранения данных и управления ими (внешняя память);
- выполнения программ пользователей (процессор и оперативная память);
- использования устройств ввода-вывода, включая устройства для дальней передачи данных.
Для выполнения этих управляющих функций ОС должна иметь в своем распоряжении соответствующую информацию. Эта информация включает в себя как информацию об использовании вычислительной системы, например, данные о :
- допустимых пользователях и их правах (управление пользователями или обеспечение безопасности информации);
- выполняемых в данное время программах (управление процессами);
- так и информацию о фактическом внутреннем распределении ресурсов системы, такую как:
- состояние процессора (управление процессором);
- распределение оперативной памяти (управление оперативной памятью) и внешней памяти (управление внешней памятью);
- конкретизация устройств ввода-вывода (управление устройствами).
Представление и организация этой информации, а также алгоритмы, которые на основе этой информации управляют распределением ресурсов, в значительной мере определяют внутреннюю структуру ОС, а также ее производительность и надежность. Эта структура должна соответствовать как специфике вычислительной системы, так и требованиям пользователей.
Задача операционной системы состоит в таком распределении ресурсов системы, чтобы всегда существовал достаточный резерв ресурсов для возможности удовлетворения поступающих в систему запросов и исполнения процессов.
Процессом (задачей) называется последовательность действий, предписанных программой или ее логически законченной частью, а также данные, используемые при вычислениях. Процесс является минимальной единицей работы, для которой выделяются ресурсы.
Функция распределения ресурсов присуща не всем операционным системам, а только тем, которые обеспечивают одновременное выполнение (или по крайней мере хранение в ОЗУ) нескольких программ. Если компьютер имеет один процессор, то одновременное выполнение нескольких программ сводится по сути к поочередной реализации их фрагментов. Это не имеет ничего общего с параллелизмом, но в ряде случаев позволяет повысить производительность компьютера в результате совмещения выполнения операций в различных устройствах во времени. Если такой режим работы компьютера недоступен, то одновременное выполнение нескольких программ сводится к их простому переключению без какого-либо выигрыша по производительности. Однако возможность переключения программ повышает гибкость вычислительной системы и позволяет им взаимодействовать между собой, например, обмениваться информацией.