70
прерывания”, возобновляя нормальное выполнение пользовательской программы.
Поскольку ОС
UNIX
стремится обеспечить среду, в которой
пользовательские
программы
полностью
мобильны,
потребовался
дополнительный уровень, скрывающий особенности
конкретного механизма
возбуждения внутренних прерываний. Он обеспечивается “библиотекой
системных вызовов” – обычной библиотекой с заранее реализованными
функциями системы программирования языка Си. Внутри любой функции
конкретной библиотеки системных вызовов содержится код, являющийся
специфичным для данной аппаратной платформы.
Каждому возможному
прерыванию процессора соответствует фиксированный адрес физической
оперативной памяти. Когда процессору разрешается прерваться из-за наличия
внутренней или внешней заявки на прерывание, происходит аппаратная передача
управления на ячейку физической оперативной памяти с соответствующим
адресом. Обычно адрес этой ячейки называется “вектором прерывания”. Как
правило, заявки на внутреннее прерывание (поступающие непосредственно от
процессора) удовлетворяются немедленно. ОС
должна разместить в
соответствующих
ячейках
оперативной
памяти
программный
код,
обеспечивающий начальную обработку прерывания и инициирующий полную
обработку.
ОС
UNIX
требуется общая основа организации сетевых средств, основанных
на многоуровневых протоколах. Для решения этой проблемы реализовано
несколько механизмов, обладающих примерно одинаковыми возможностями, но
не
совместимых между собой, поскольку каждый из них являлся результатом
индивидуального проекта. Слабая развитость в
UNIX
подсистемы ввода/вывода
потребовала включения потоков, как механизма реализации существующего
символьного ввода/вывода. Механизм потоков не
навязывает конкретной
архитектуры сети и (или) конкретных протоколов. Как любой другой драйвер
устройства, потоковый драйвер представляет специальный файл файловой
системы со стандартным набором операций:
Достарыңызбен бөлісу: