Что такое таблица вызовов в Unix? - PullRequest
0 голосов
/ 01 мая 2010

Кто-нибудь может сказать мне, что такое «таблица вызовов» в Unix? Морис Дж. Бах дает объяснение в своей книге Проект операционной системы UNIX , но мне трудно разобраться в примерах, особенно в том, что объясняет причину отрицательного времени. поля Почему там используются программные прерывания?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 мая 2010

Прерывания останавливают текущий код и начинают выполнение высокоприоритетного обработчика; пока работает этот обработчик, ничто другое не может получить процессор. Поэтому, если вам нужно сделать что-то сложное, ваш обработчик прерываний может повесить всю систему.

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

1 голос
/ 01 мая 2010

В System V Unix ядро ​​или драйверы устройств могут запланировать выполнение какой-либо функции (или «вызывание») ядром на более позднее время. Обработчик часов ядра отвечал за выполнение таких зарегистрированных вызовов. Таблица вызовов была структурой данных ядра, в которой хранились такие зарегистрированные вызовы.

Я не знаю, с какой целью они обычно использовались.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...