- •Основы построения операционных систем
- •Введение
- •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. Основные аспекты операционных систем
Программы, выполняемые на компьютере, по функциональному назначению подразделяются на два класса: прикладные и системные. Важную часть программ второго класса составляют операционные системы, одной из функций которых является распределение ресурсов ЭВМ, предоставляемых пользователю. В связи с большим многообразием операционных систем в данном разделе будет приведена классификация операционных систем.
1.1. Программные системы
Любая вычислительная система состоит из трех компонентов:
- аппаратного обеспечения;
- программного обеспечения;
- пользователей.
Во многих случаях аппаратное обеспечение подразделяется на два или более уровней. Самый простой (нижний) составляют физические приборы (интегральные микросхемы, источники питания, устройства ввода-вывода и т.д.). Их устройство и принципы их работы изучаются в других курсах. Следующий уровень составляют программы, постоянно управляющие этими приборами и устройствами и организующие интерфейс со следующим уровнем. Эти программы обычно записаны в постоянном запоминающем устройстве (ПЗУ) и представляют собой внутренние драйверы. Они выполняют следующие функции:
- принимают запросы на обращение к устройству;
- преобразуют запросы в команды управления устройством с учетом всех деталей его конструкции и особенностей работы в реальном времени;
- обрабатывают прерывания от обслуживаемого устройства.
Без программного обеспечения компьютер - просто бесполезная груда железа. Будучи оснащенным программным обеспечением, компьютер становится способен выполнять свою основную функцию - преобразовывать информацию.
Программное обеспечение (ПО) ЭВМ по функциональному признаку традиционно делится на системное и прикладное.
Системным называется ПО, используемое для разработки и выполнения программных продуктов, а также для предоставления пользователю ЭВМ определенных услуг. Оно является необходимым дополнением к техническим средствам ЭВМ. Без системного программного обеспечения компьютер, по сути, безжизнен.
Прикладным называют ПО, предназначенное для решения определенной целевой задачи или класса таких задач. К этим задачам относятся производство вычислений по заданному алгоритму, подготовка того или иного текстового документа и т.п.
Структура системного программного обеспечения ЭВМ, отражающая его классификацию по функциональному признаку, приведена на рис.1.1.
Рис.1.1. Структура программного обеспечения
Операционные системы являются неотъемлемым обязательным дополнением ЭВМ, организуя выполнение программ и взаимодействие пользователя с компьютером.
Другие компоненты СПО являются факультативными. Их состав определяется потребностями и желаниями пользователя.
Сервисные системы расширяют возможности ОС, предоставляя пользователю, а также выполняемым программам набор дополнительных услуг.
По функциональному назначению сервисные системы делят на:
1) интерфейсные системы (interface), в основном, графического типа, модифицирующие как пользовательский, так и программный интерфейс ОС, а также иногда реализующие и дополнительные возможности по распределению ресурсов ЭВМ; вследствие этого они считаются естественным продолжением ОС;
2) оболочки (shell) ОС, модифицирующие только пользовательский интерфейс, повышая его уровень (главным образом за счет меню и использования функциональных клавиш), а также предоставляя дополнительные возможности;
3) утилиты (utility) - обслуживающие программы, которые предоставляют пользователю сервисные услуги, т.е. обогащают пользовательский интерфейс ОС.
Разница между оболочками и развитыми утилитами зачастую состоит лишь в универсальном характере первых и специализации вторых.
Некоторые сервисные системы таковы, что изменяют облик ОС до неузнаваемости, а поэтому иногда называются операционными системами. Сказанное имеет отношение в особенности к интерфейсным системам.
Гораздо менее однородной группой системных программных средств являются инструментальные системы. Объединяет их то, что все они предназначены для разработки ПО, хотя часть из них может применяться и для решения прикладных задач. Использование большинства инструментальных систем связано с составлением программ, поэтому они могут считаться системами программирования. Однако собственно к системам программирования традиционно относят такие системы, с помощью которых можно запрограммировать и решить любую задачу, допускающую алгоритмическое решение. Иными словами, системы программирования обладают универсальностью. Другие же типы инструментальных систем являются специализированными в том смысле, что они служат для создания ПО определенного функционального назначения. При этом эффективность разработки ПО по сравнению с использованием для этой же цели универсальных инструментальных средств возрастает.
Системы технического обслуживания предназначены для облегчения тестирования оборудования и поиска неисправностей. Они являются инструментом специалистов по эксплуатации аппаратной части компьютеров и в данном пособии рассматриваться не будут.