- •Основы построения операционных систем
- •Введение
- •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.2. Состояния процесса
Рис. 4.2. Изменение состояний процесса
Процесс создается (состояние новый), когда начинается выполнение задания пользователя. Новый процесс может быть порожден другим процессом. В этом случае порождающий процесс называется родительским процессом, а создаваемый процесс - дочерним процессом.
С течением времени процесс выбирается, т.е. ему выделяются оперативная память и другие необходимые ресурсы, и он переходит в состояние готовый к исполнению. Такой процесс ждет только одного ресурса - процессора.
Если процесс устанавливается на центральный процессор (ЦП), т.е. он использует его для выполнения своих команд, то он находится в состоянии исполняемый.
Если процесс не может быть продолжен в связи с ожиданием некоторого события, то он находится в заблокированном состоянии. Примерами таких событий являются запросы на дополнительные ресурсы, отсутствие сегмента или страницы, операции ввода-вывода, инициированные процессом, включая получение сигнала от терминала о конце передачи. Чтобы заблокированный процесс не занимал оперативную память, его можно откачать во внешнюю память. Некоторые системы откачивают готовые к исполнению процессы и тем самым переводят их в заблокированное состояние.
Когда событие, ожидаемое заблокированным процессом, наступило, управляющая программа деблокирует процесс, переводя его в состояние готовности. Если заблокированный процесс был откачан, то деблокирование не завершается до тех пор, пока процесс не будет снова подкачан в память.
Когда процесс завершен, он переводится в состояние удаляемый, где он, прежде чем покинуть систему, ждет завершения печати всех выводимых данных.
В состоянии исполнения может находиться только один процесс; в остальных состояниях может находиться одновременно несколько процессов. Чтобы предотвратить либо случайный, либо умышленный монопольный захват ЦП одним процессом, операционная система устанавливает в специальном аппаратном таймере прерываний некоторое значение, определяющее временной интервал, или квант времени, в течение которого данному процессу пользователя разрешается занимать ЦП. Если до истечения указанного временного интервала процесс не освободит ЦП, таймер выработает сигнал прерывания, по которому управление будет передано операционной системе. После этого управляющая программа снимет процесс с процессора и переведет его в состояние готовый, а следующий процесс, находящийся в очереди готовых к исполнению, - в состояние исполняемый.
Следует отметить, что единственная смена состояния, инициируемая самим процессом, - это блокирование, остальные смены состояния инициируются объектами, внешними по отношению к данному процессу.
4.1.3. Блок управления процессом
Для того, чтобы управлять процессом, операционная система должна знать атрибуты процесса. Набор атрибутов, характеризующих поведение процесса, объединен в блок управления процессом (PCB - Process Control Block). По сути дела, блок управления процессом является центральным пунктом, в котором операционная система может сосредоточить информацию о процессе. Эта информация в общем случае может быть разделена на три категории:
- информация для идентификации процесса;
- информация о состоянии процессора;
- информация для управления процессом.
С целью идентификации каждому процессу назначается уникальный числовой идентификатор. Этот идентификатор может быть просто индексом в списке процессов, создаваемом операционной системой (см. п.4.1.1). Когда процессам порождают другие процессы, идентификаторы используются для указания родителя и потомков каждого процесса. Кроме того, процессу может быть назначен идентификатор пользователя, загружающего данный процесс.
Информация о состоянии процессора представляет собой данные, заносимые в регистры процессора. К таким регистрам относятся следующие:
- регистры, доступные пользователю, управляемые программами и предназначенные для временного хранения данных; их количество колеблется от 8 до 32;
- счетчик команд (PC - Program Counter), содержащий адрес команды, следующей за выполняемой;
- специализированные регистры, предназначенные для некоторой синтетической информации, называемые словом состояния процессора или словом состояния программы (PSW - Program Status Word );
- регистры стека, содержащие указатели вершины и базы стека выполнения, который используется операционной системой для управления исполнением программы и хранения параметров. Такой стек существует для каждого процесса.
Информация для управления процессом включает в себя :
- текущее состояние процесса;
- приоритет процесса;
- указатели выделенных процессу ресурсов;
- указатели памяти процесса (включая таблицу страниц и(или) таблицу сегментов в зависимости от используемого метода управления памятью).
Поскольку при переключении центрального процессора с процесса на процесс операционная система должна иметь возможность быстро выполнять операции с различными PCB, во многих вычислительных машинах предусматривается специальный аппаратный регистр, который всегда указывает на PCB текущего выполняемого процесса.