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

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

6 Системные вызовы «Создать процесс» и «Удалить процесс»

6.1 Системный вызов «Создать процесс»

Системный возов «Создать процесс» служит для создания почти полной копии родительского процесса (процесса, в котором был инициирован системный вызов). Для создания почти полной копии вызывающего процесса ОС должна скопировать некоторые данные из процесса-родителя в процесс-потомок. Выполнение процессов разделяется после данного системного вызова. Имя системного вызова вызова: creat_proc. Входные данные: отсутствуют. Выходные данные: идентификатор процесса. Сам системный вызов реализован в ядре ОС, к которому обращается программа-заглушка в системной библиотеке (через прерывание). Перечень действий, совершаемым ядром ОС, представлен в таблице 6.1.

Таблица 6.1 – Системный вызов «Создать процесс»

№ этапа Описание этапа
1 Проверить возможность создания нового процесса (кол-во процессов < 65535).
2 Выделить память в области ОС для дескриптора процесса.
3 Создать дескриптор для нового процесса.
4 Назначить новому процессу идентификатор.
5 Записать в поле «Идентификатор родительского процесса» идентификатор процесса-родителя.
6 Скопировать содержимое полей (приоритет, информация о ресурсах и идентификатор пользователя, запустившего процесс) дескриптора процесса-родителя.
7 Выделить память в области пользователя для процесса.
8 Выделить память в области ОС для контекста процесса.
9 Настроить содержимое контекста нового процесса.
10 Полностью скопировать образ памяти из процесса-родителя.
11 Обновить информацию у процесса-родителя о потомках.
12 Добавить указатель о новом процессе список готовых процессов.

6.2 Системный вызов «Удалить процесс»

Системный вызов «Удалить процесс» служит для удаления уже существующего процесса. Причем удаление совершается самим ядром в принудительном порядке. Имя системного вызова: kill_proc. Входные данные: идентификатор процесса. Выходные данные: отсутствуют. Сам системный вызов реализован в ядре ОС, к которому обращается программа-заглушка в системной библиотеке (через прерывание). Также программа-заглушка проверяет допустимость входного параметра. То есть идентификатор процесса должен быть беззнаковым 2-байтным целым числом. Перечень действий, совершаемым ядром ОС, представлен в таблице 6.2.

Таблица 6.2 – Системный вызов «Удалить процесс»

№ этапа Описание этапа
1 Проверить существование данного идентификатора в таблице процессов.
2 Удалить информацию о текущем процессе из процесса-родителя.
№ этапа Описание этапа
3 Удалить из всех очередей указатель на дескриптор текущего процесса.
4 Освободить память от дескриптора, контекста и ОП уровня пользователя текущего процесса.
5 Вызвать планировщик.

7.1 В данном проекте была рассмотрена разработка программно-аппаратного комплекса «Планировщик и диспетчер процессов в системе разделения времени» с алгоритмом планирования RR и относительным приоритетом, а также некоторые системные вызовы. Проект показал, что программу планировщик надо разрабатывать очень тщательно, так как она является основой любой многозадачной ОС. В итоге получилось, что для нормальной работы планировщика и диспетчера процессов необходимо иметь в области ОП ОС как минимум дескриптор и контекст для каждого процесса, список готовых и заблокированных процессов. Также выяснилось, что переключение процессов – это длительная операция, так как приходится переключаться из режима пользователя в режим ядра, запускать процесс планировки, потом диспетчеризации, а потом снова переключаться обратно, на уровень пользователя. Системные вызовы создания и удаления процесса также требуют времени на обработку, так как им тоже нужно манипулировать данными в области ОЗУ ОС, для чего требуется также переключаться на уровень ядра.

Приложение А

Графические материалы

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

Рисунок А.1 – Блок-схема алгоритма работы планировщика

с очередью готовых процессов

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

Рисунок А.2 – Блок-схема алгоритма работы планировщика

с очередью заблокированных процессов

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

Рисунок А.3 – Блок-схема алгоритма работы планировщика

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

Рисунок А.4 – Блок-схема алгоритма диспетчеризации

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

Рисунок А.5 – Структурно-функциональная схема

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

Список литературы

Таненбаум Э.С. Современные операционные системы. 2-е изд. – М.: ПИТЕР, 2006.

Embedded X86 Programming: Protected Mode by Jean Gareau

Руководство по процессору Intel i80486.

http://www.brokensword.narod.ru/

http://asmdev.narod.ru/asmos/asmos.html

http://lowlevel.ru/

http://xkernel.excode.ru/

Исходный код ядра ОС Linux версии 0.01

http://www.citforum.ru/operating_systems/bach/contents.shtml


Информация о работе «Планировщик и диспетчер процессов в системе разделения времени»
Раздел: Информатика, программирование
Количество знаков с пробелами: 14572
Количество таблиц: 6
Количество изображений: 7

Похожие работы

Скачать
104513
2
0

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

Скачать
155611
5
0

... теми же ресурсами, но управляемая различными ОС, вычислительная система может работать с разной степенью эффективности. Поэтому знание внутренних механизмов операционной системы позволяет косвенно судить о ее эксплуатационных возможностях и характеристиках. Управление процессами Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной ...

Скачать
61959
0
0

ие MSX-DOS, учитывала необходимость поддержки обширного программного обеспечения, разработанного для СР/М, и одновременно ориентировалась на новые в то время разработки, связанные с DOS. 4. Операционные системы, основанные на графическом интерфейсе Помимо широко распространенных машин, проектируемых в соответствии со сложившимися стандартами, часто создаются машины, в которых особо выделяется ...

Скачать
232852
0
0

... с приглашением по запросу (в машинной графике)required parameter обязательный параметрrequired space обязательный пробел (в системах подготовки текстов)requirements specification 1. техническое задание 2. описание требований к программному средствуrerun перезапуск, повторный запускreschedule переупорядочивать очередь (о диспетчере операционной системы)reschedule interval период переупорядочения ...

0 комментариев


Наверх