Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Задание. Планирование процессовСтр 1 из 2Следующая ⇒
Планирование процессов Для реализации процессов операционные системы используют таблицу, называемую таблицей процессов, в которой каждая запись соответствует одному из процессов. Эти записи содержат данные по каждому из процессов, такие как: приоритет, внутренний счетчик команд, состояние процесса, указатель стека, распределение памяти, состояние открытых им файлов и всю остальную информацию, относящуюся к процессу, для возможности быстрого переключения процесса в различные состояния. +------------------------------------------------------------+ | алгоритм schedule_process | | входная информация: отсутствует | | выходная информация: отсутствует | | { | | выполнять пока (для запуска не будет выбран один из про-| | цессов) | | { | | для (каждого процесса в очереди готовых к выполнению)| | выбрать процесс с наивысшим приоритетом из загру-| | женных в память; | | если (ни один из процессов не может быть избран для | | выполнения) | | приостановить машину; | | /* машина выходит из состояния простоя по преры- | | /* ванию | | */ | | } | | удалить выбранный процесс из очереди готовых к выполне- | | нию; | | переключиться на контекст выбранного процесса, возобно- | | вить его выполнение; | | } | +------------------------------------------------------------+
Рисунок 8.1. Алгоритм планирования выполнения процессов
задание
Разработать и реализовать программу (эмулятор планировщика), реализующую модель обслуживания процессов с приоритетами обслуживания и заданным квантом времени.
Алгоритм работы планировщика следующий:
выбираются задачи, требующие по времени исполнения все найденные задачи последовательно выполняются, после исполнения всех задач планировщик ещё раз делает выборку задач, которые нуждаются выполнения и делает так по циклу
На рисунке 1.1 номерами обозначены ситуации, когда происходит данный переход: 1 – планировщик выбирает данный процесс из списка готовых процессов, 2 – квант данного процесса истек и планировщик выбирает другой процесс, 3 – процесс блокируется, ожидая входных данных, 4 – поступили ожидаемые входные данные.
Таблица – Моменты перепланировки
Этапы переключения между процессами представлены в таблице 3.2.
Таблица 3.2 – Этапы переключения между процессами
Для обеспечения многозадачности в ОС используется таблица процессов (список), в которой находятся указатели на дескрипторы процессов. Дескрипторы содержат статическую информацию о процессе. Кроме этого в ОС также используется динамическая информация о текущем (работающем) процессе. Совокупность этой информации называется контекстом процесса. Примеры дескриптора и контекста процесса представлены в таблицах 1 и 2, соответственно.
Таблица 1 – Дескриптор процесса
Таблица 2 – Контекст процесса
Основные структуры данных
- Дескриптор (представлен в таблице 1), контекст (представлен в таблице 2), список готовых процессов (организован по принципу алгоритма RR с относительными приоритетами), список заблокированных процессов (организован по принципу список списков, то есть внутри списка заблокированных процессов находятся списки процессов, ожидающих ответ от НЖМД, ожидающих ответ от НГМД, ожидающих определенный семафор, ожидающих определенную очередь сообщений, ожидающих определенного сигнала и т.д.). - Указатель на начало списка готовых процессов, указатель на конец списка готовых процессов. - Указатель на структуру-описатель списка списков заблокированных процессов. Данная структура хранит в себе информацию о начале и конце каждой очереди. В случае появления нового устройства в системе необходимо только создать новую очередь и добавить информацию об ее начале и конце в данную структуру.
Схематично алгоритм работы планировщика можно представить следующим образом: Цикл планирования { J = Ø; /* J – множество нераспределенных заданий */
/* Выбор заданий */ По всем j Є (множеству заданий) { Если j не распределено J += j; } Сортировать J по приоритетам;
1. Исходные данные: · поток заявок на выполнение процессов (имя заявки, время поступления, приоритет, время исполнения). 2. Результаты работы модели, отображаемые на дисплее, должны для каждого момента времени, когда состояние системы изменяется, включать номер обслуживаемого процесса или фиксировать режим ожидания, а так же список процессов, составляющих очередь. Кроме этого возможна графическая интерпретация результатов работы программы, например в виде диаграммы выполнения процессов.
|