- •Основы построения операционных систем
- •Введение
- •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. Планирование работы с магнитными дисками
- •Заключение
- •Список используемых источников
- •Оглавление
4.1. Концепции процесса
4.1.1. Понятие последовательного процесса
Понятие процесса дает возможность рассматривать активное состояние непрерывного выполнения программы на компьютере. Состояние компьютера определяется состоянием процессора (содержанием адресуемых и внутренних регистров) и состоянием памяти (содержанием ячеек памяти). Это состояние изменяется при выполнении инструкций процессором. Каждое выполнение инструкции представляет собой некоторое действие: результатом действия является переход за конечное время из начального состояния машины в конечное состояние. Этот результат описывается спецификациями инструкции.
Будем рассматривать выполнение инструкции как неделимое действие, т. е. в процессе ее выполнения запрещается на6людать и определять состояние компьютера. Итак, время, в течение которого прослеживается изменение состояния компьютера, представляется параметром t, принимающим последовательность возрастающих дискретных значений, которые выбираются в начале и конце каждой инструкции). Эти выделенные моменты времени называются точками наблюдения, а соответствующие состояния компьютера - наблюдаемыми точками. Каждому состоянию компьютера ставится в соответствие некоторое число (текущее значение t); такое состояние называется событием. События позволяют отмечать изменения состояния компьютера. Начало и конец каждого действия a являются событиями, соответствующие числовые данные которых обозначаются НАЧ(a) и КОН(a); причем НАЧ(a) < КОН(a).
Таким образом, выполнение программы представляется в виде последовательности действий a1, a2, ai, для каждого элемента которой КОН(ai) < НАЧ(ai+1). Такая последовательность называется последовательным процессом (или просто процессом).
Процесс можно описать рядом следующих друг за другом событий НАЧ (a1 ) , КОН (a1 ) , НАЧ (a2) , ... . Такая последовательность данных и состояний компьютера называется временным следом (трассой, или историей) процесса.
Можно также определить процесс как некоторую последовательность активных состояний выполнения процедур программы.
Процесс состоит из трех основных компонент :
- исполняемой программы (или ее логически законченной части);
- данных, используемых при вычислениях;
- контекста исполняемого процесса.
Контекстом процесса называется информация, которую действия процесса могут проверять или изменять. Контекст процесса, связанного с выполнением программы, включает:
1. Информацию о состоянии процессора, требуемую для переназначения (содержимое слова состояния и регистры);
2. Указатели на рабочее пространство (сегменты процедуры и данных, стек выполнения);
3. Атрибуты процесса, используемые операционной системой для управления процессом.
Совокупность программы, данных, стек выполнения и атрибуты процесса принято рассматривать как образ процесса - содержимое оперативной памяти, относящейся к процессу.
Рис.4.1 поясняет последовательность действий при выполнении процессов. Два процесса, A и B, загружены в соответствующие разделы оперативной
Рис. 4.1
памяти, так что блоки памяти, связанные с каждым процессом, содержат программу, данные и контекст процесса. Каждый процесс, загружаемый в оперативную память, записывается в список процессов, который создается и поддерживается операционной системой. Список процессов содержит одну запись для каждого процесса, которая включает в себя указатель на блоки оперативной памяти, где расположен данный процесс. Номер записи при этом соответствует номеру (индексу) процесса. В некоторых операционных системах в состав указанной записи может входить весь или только часть контекста процесса (оставшаяся часть контекста в этом случае размещается в оперативной памяти вместе с процессом). Регистр индекса процесса содержит индекс списка процессов, соответствующий исполняемому в данный момент процессу. Счетчик программ указывает на инструкцию программы, которая должна выполняться в следующий момент времени. Регистры защиты памяти указывают адрес начала и длину сегмента памяти, выделенного процессу. Рис.4.1 соответствует ситуации, когда исполняется процесс В. Процесс А, ранее исполняемый, был временно прерван. Состояния регистров процессора в момент прерывания процесса А были сохранены в контексте процесса А. Если позднее процессор выполнит переключение контекстов и продолжит выполнение процесса А, то состояния регистров для процесса В будут сохранены в его контексте, а из контекста процесса А будут восстановлены состояния регистров, соответствующие моменту прерывания последнего.