Планировщик и диспетчер процессов в системе разделения времени

Реферат - Компьютеры, программирование

Другие рефераты по предмету Компьютеры, программирование

µскрипторы содержат статическую информацию о процессе. Кроме этого в ОС также используется динамическая информация о текущем (работающем) процессе. Совокупность этой информации называется контекстом процесса. Примеры дескриптора и контекста процесса представлены в таблицах 4.1 и 4.2 соответственно.

 

Таблица 4.1 Дескриптор процесса

Название
поляОписаниеДиапазон
допустимых
значенийИдентификатор процессаЧисло, однозначно идентифицирующее процесс в ОС.
В системе не должно быть процессов с одинаковыми идентификаторами.0 - 216Оставшийся квант времениНазначается ОС при создании процесса. С каждым прерыванием от таймера данное значение уменьшается на едини цу (у активного процесса).0 - 255Продолжение таблицы 4.1

Название
поляОписаниеДиапазон допустимых значенийКогда значение достигнет 0, процесс переносится в конец очереди готовых процессов.Приоритет процессаУсловное значение, по которому планировщик определяет, какой процесс выбрать на обслуживание. От 0 до 4 приоритеты, назначаемые ядром ОС для своих нужд. От 5 до 9 приоритеты, назначаемые пользователем для своих нужд. 0 самый высокий приоритет, 9 самый низкий приоритет.0 - 9Базовый адрес контекста процессаСодержимое регистра TR (содержит селектор дескриптора в GDT). Команда LTR загружает регистр TR. Кроме загрузки непосредственно селектора, процессор автоматически загружает базовый адрес, лимит и атрибуты из дескриптора, находящегося в GDT. Команда STR сохраняет содержимое регистра TR в РОН или ОЗУ.0 - 216Продолжение таблицы 4.1

Название
поляОписаниеДиапазон допустимых значенийИнформация о ресурсахСписок, содержащий информацию об открытых файлах, программных каналах, именованных каналах, общих областях ОП и т.д.0 - 216Идентификатор родительского процессаДля ускоренной работы системного вызова getppid().0 - 216Список идентификаторов процессов-потомковДля ускоренной работы системного вызова wait().0 - 216Идентификатор пользователяДля обеспечения многопользовательского режима.0 - 216

Таблица 4.2 Контекст процесса

Название
поляОписаниеДиапазон
допустимых
значенийРОНСодержимое всех регистры общего назначения. EAX, EBX, ECX, EDX. Данное поле должно интерпретироваться как 4 подряд сохраненных 4-байтных значений.4 * (0 232)СелекторыСелектор кодового сегмента (CS), селектор сегмента данных (DS), селектор сегмента стека (SS) и селекторы ES, FS, GS дескрипторов в LDT. Данное поле должно интерпретироваться как 6 подряд идущих 2-байтных значений.6 * (0 216)Регистры
смещенийСодержимое всех регистров смещений. EIP, ESP, EBP, ESI и EDI. 5 подряд идущих 4-байтных значений.5 * (0 232)Регистр флаговСодержимое регистра EFLAGS.0 - 232Продолжение таблицы 4.2

Название
поляОписаниеДиапазон
допустимых
значенийРегистр LDTRСелектор дескриптора LDT в GDT.0 - 247Регистр CR3Содержимое регистра, содержащего базовый адрес каталога страниц.0 - 232Базовый адрес битового массива разрешенных операций ввода/выводаИспользуется для ограничения доступа процесса к определенным портам ВВ. 0 доступ к порту запрещен, 1 доступ к порту разрешен.0 - 2555 Спецификация на разработку программного
компонента Планировщик и диспетчер процессов (ПИДП)

 

5.1 Общее описание

 

5.1.1 ПИДП это программный комплекс, который вызывается, когда требуется любое действие, связанное с администрированием процессов в системе (создание/удаление процесса, перенос процесса из очереди заблокированных в очередь готовых и т.д.). Данная программа должна максимально быстро выполнять свои действия, так как она вызывается достаточно часто.

 

5.2 Основные компоненты

 

5.2.1 Планировщик часть комплекса ПИДП, предназначенная для принятия решения о выборе следующего процесса на исполнение и переноса процессов между очередями.

5.2.2 Диспетчер это часть программного комплекса ПИДП, предназначенная для реализации решения, выбранного планировщиком.

5.3 Ответственность компонентов

 

5.3.1 Сначала происходит поиск решения, а потом его реализация, то есть сначала вызывается планировщик, а потом уже диспетчер. Также может вызываться только планировщик, а диспетчер нет (например, когда требуется просто перенести процесс из очереди заблокированных процессов в очередь готовых, если он получил данные от ВУ). Алгоритмы работы планировщика и диспетчера процессов представлены в приложении А.

 

5.4 Правила коммуникации

 

5.4.1 Функции, обеспечивающие планировку процессов, обмениваются указателями на дескрипторы процессов. Функция, обеспечивающая переключение контекста, работает с указателями на контексты процессов.

 

5.5 Основные структуры данных

 

5.5.1 Дескриптор (представлен в таблице 4.1), контекст (представлен в таблице 4.2), список готовых процессов (организован по принципу алгоритма RR с относительными приоритетами), список заблокированных процессов (организован по принципу список списков, то есть внутри списка заблокированных процессов находятся списки процессов, ожидающих ответ от НЖМД, ожидающих ответ от НГМД, ожидающих определенный семафор, ожидающих определенную очередь сообщений, ожидающих определенного сигнала и т.д.).

5.5.2 Указатель на начало списка готовых процессов, указатель на конец списка готовых процессов.

5.5.3 Указатель на структуру-описатель списка списков заблокированных процессов. Данная структура хранит в себе информацию о начале и конце каждой очереди. В случае появления нового устройства в системе необходимо только создать новую очередь и добавить