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
... ресурсов компьютера между пользователями и задачами (система разделения времени) будет создана программная разработка планировщика задач, в котором главной целью является успеть среагировать на происходящие события в жестко заданный интервал времени (система реального времени). На основе планировщика будет реализован протокол, требующий поддержки реального времени. Для проектирования его ...
... теми же ресурсами, но управляемая различными ОС, вычислительная система может работать с разной степенью эффективности. Поэтому знание внутренних механизмов операционной системы позволяет косвенно судить о ее эксплуатационных возможностях и характеристиках. Управление процессами Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной ...
ие MSX-DOS, учитывала необходимость поддержки обширного программного обеспечения, разработанного для СР/М, и одновременно ориентировалась на новые в то время разработки, связанные с DOS. 4. Операционные системы, основанные на графическом интерфейсе Помимо широко распространенных машин, проектируемых в соответствии со сложившимися стандартами, часто создаются машины, в которых особо выделяется ...
... с приглашением по запросу (в машинной графике)required parameter обязательный параметрrequired space обязательный пробел (в системах подготовки текстов)requirements specification 1. техническое задание 2. описание требований к программному средствуrerun перезапуск, повторный запускreschedule переупорядочивать очередь (о диспетчере операционной системы)reschedule interval период переупорядочения ...
0 комментариев