Системные вызовы. Схема 12. Системные вызовы. Схема обработки системных вызовов

Системный вызов (С.В.) - обращение прикладной программы к ядру ОС для выполнения какой-либо операции

Требования к реализации С.В.:

1) обеспечить переключение в привилегированный режим

2) обладать высокой скоростью вызова процедур ОС

3) обеспечивать единообразное обращение к системным вызовам для аппаратных платформ на которых работает ось

4) допускать легкое расширение вызова набора системных вызовов

5) обеспечить контроль со стороны ОС

При любом системном вызове выполняется программное прерывание int80h. Передаётся номер системного вызова, затем параметры и вызывается обработчик данного прерывания – диспетчер С.В., который сохраняет содержимое в системном стеке, проверяет попадает ли запрошенный номер вызова в диапазон, по номеру находят соответствующие процедуры и передает ей управление

Типы С.В.:

1) синхронное –процесс приостанавливается и ждет завершения выполнения системного вызова

2) асинхронное – процесс продолжает выполняться II с действием системного вызова

fork –создание нового процесса

exec – подмена текущего процесса другим исполняемым файлом

open, close, read, write – работа с файлами

Схема обработки системных вызовов:

Текущий процесс shell делает вызов fork порождая вторую копию shell, которая вызывает exec, указывая в качестве параметра имя используемого файла, образ которого необходимо загрузить в память. Утилита ls начинает выполняться, по завершении работы ls созданный процесс исчезает (exit). Системный вызов wait позволяет заблокировать выполнение процесса, пока кто-нибудь из потомков не завершит работу. 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: