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



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

 


Дата добавления: 2019-07-15; просмотров: 277; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!