Операционные системы: архитектура и управление процессами. Макаров П.С. - 32 стр.

UptoLike

Составители: 

32
можно, к определенному файлу или устройству ввода-вывода. Например,
при создании процесса менеджер процессов обращается к менеджеру па-
мяти, который должен выделить процессу определенную область памяти
для его кодов и данных.
Интерфейс системных вызовов. Этот слой является самым верхним
слоем ядра и взаимодействует непосредственно с приложениями и сис-
темными утилитами, образуя прикладной программный интерфейс опе-
рационной системы. Функции API, обслуживающие системные вызовы,
предоставляют доступ к ресурсам системы в удобной и компактной фор-
ме без указания деталей их физического расположения. Например, в опе-
рационной системе UNIX с помощью системного вызова fd =
open("/doc/a.txt", 0_RDONLY) приложение открывает файл a.txt, храня-
щийся в каталоге /doc, а с помощью системного вызова read(fd. buffer,
count) читает из этого файла в область своего адресного пространства,
имеющую имя buffer, некоторое количество байт. Для осуществления та-
ких комплексных действий системные вызовы обычно обращаются за
помощью к функциям слоя менеджеров ресурсов, причем для выполне-
ния одного системного вызова может понадобиться несколько таких об-
ращений.
Приведенное разбиение ядра ОС на слои является достаточно условным.
В реальной системе количество слоев и распределение функций между ними
может быть и иным. В системах, предназначенных для аппаратных платформ
одного типа, например, ОС NetWare, слой машинно-зависимых модулей обыч-
но не выделяется, сливаясь со слоем базовых механизмов и, частично, со слоем
менеджеров ресурсов. Не всегда оформляются в отдельный слой базовые меха-
низмыв этом случае менеджеры ресурсов не только планируют использова-
ние ресурсов, но и самостоятельно реализуют свои планы.
Возможна и противоположная картина, когда ядро состоит из большего
количества слоев. Например, менеджеры ресурсов, составляя определенный
слой ядра, в свою очередь, могут обладать многослойной структурой. Прежде
всего это относится к менеджеру ввода-вывода, нижний слой которого состав-
ляют драйверы устройств, например, драйвер жесткого диска или драйвер сете-
вого адаптера, а верхние слоидрайверы файловых систем или протоколов се-
тевых служб, имеющие дело с логической организацией информации.
Способ взаимодействия слоев в реальной ОС также может отклоняться от
описанной выше схемы. Для ускорения работы ядра в некоторых случаях про-
исходит непосредственное обращение с верхнего слоя к функциям нижних сло-
ев, минуя промежуточные. Типичным примером такого «неправильного» взаи-
модействия является начальная стадия обработки системного вызова. На мно-
гих аппаратных платформах для реализации системного вызова используется
инструкция программного прерывания. Этим приложение фактически вызывает
модуль первичной обработки прерываний, который находится в слое базовых
механизмов, а уже этот модуль вызывает нужную функцию из слоя системных