Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
40
Добавлен:
30.04.2013
Размер:
16.33 Mб
Скачать

/Обзор подсистем ядра Unix

В ядре ОС Unix выделяют пять главных подсистем:

Планировщик (Process Scheduler) предназначен для управления процессами (в том числе и доступом к центральному процессору). Планировщик определяет стратегию управления системой и гарантирует каждому процессу доступ как к процессору, так и к другим устройствам, входящим в систему.

Контроллер памяти (Меmory Manager) обеспечивает для множества процессов сохранение информации в главной памяти системы с возможностью разделения ее между процессами. ММ также поддерживает виртуальную память, позволяющую Unix реализовать работу процессов с использованием памяти, существенно превышающую физическую. Это дос­тигается путем использования двух механизмов (swapping и paging).

Виртуальная файловая система (Virival Fi1e System, VFS) обеспечивает управление различными устройствами, на которых могут находиться файлы. А также управление файлами и каталогами на всех этих устройствах . Кроме того, VFS поддерживает множество различных файловых систем, форматы которых становятся доступны пользователям ОС Unix.

Сетевой интерфейс (Network Interface, NЕТ) обеспечивает доступ к

Различным сетевым стандартами различному сетевому оборудованию.

Подсистема межпроцессорного взаимодействия (Inter-Process Соmmunication IPC) — подсистема, которая используется процессами для поддержания различных механизмов обмена внутри системы.

На рис. 2.2а. показана концептуальная высокоуровневая декомпозиция ядра Unix, где стрелками показаны зависимости одной подсистемы от другой.

Однако реальная структура системы Unix несколько отличается от ее концептуальной архитектуры. Так на рис. 2.2b. показана реальная архитектура системы Unix, полученная в результате её реинжениринга. Из рисунка видно, что количество связей в реальной системе значительно больше. А это значит, что модификация системы только на основе концептуальной схемы может привести к нарушению её работы.

На этих схемах центральное место занимает процесс планирования - планировщик. Все остальные подсистемы существенно зависят от процесса планирования, так как именно он приостанавливает и возобновляет Работу всех остальных процессов. Обычно работа подсистемы приостанавливается, когда некоторый процесс ожидает освобождения некоторого ресурса в виде устройства или памяти, которые заняты другим процессом.

Другие зависимости проявляются менее очевидно, но являются не менее важными: планировщик использует ММ для регулирования объема памяти различными процессам, когда процессы возобновляют свою работу.

IPC зависит от ММ через механизм разделения памяти. Этот механизм позволяет двум процессам доступ в одну общую область памяти в дополнение к собственным неразделяемым областям.

VFS использует NET для поддержки сетевой файловой системы (NFS), а так же использует ММ для обеспечения работы виртуальных дисков.

MM использует VFS для поддержки работы swapping или paging. Однако когда процессу необходимо выделить память, то она выделяется прямо в swap файле, при этом ММ выполняет запрос к файловой системе на выделение памяти из постоянной области и приостанавливает процесс.

В дополнение к зависимостям, которые показаны явно, все подсистемы ядра зависят от общих ресурсов, которые не показаны на рисунке. Эти ресурсы включают в себя процедуры, используемые всеми подсистемами выделения и освобождения памяти, для самого ядра, процедур печати предупредительных сообщений или системных ошибок, а также системных отладочных процедур. Обращение к этим ресурсам происходит неявно, как они используются главным образом внутри ядра.

/Понятие интерфейсов в ОС

Понятие интерфейсов в операционной системе весьма абстрактно. Под интерфейсом обычно понимают набор функций и структур данных, посредством которых происходит взаимодействие с системой (в том числе и пользователей).

Ядро Unix использует для управления процессами, управления памятью обеспечения защиты системы так называемые системные вызовы запускаемые в режиме ядра.

Для работы с физическими устройствами используются так называемые драйверы устройств (I/О tasks или device drivers). Описание драйверов приводится в разделе описания VFS.

Процессы - демоны

Среди фоновых процессов значительное место занимают системные фо­новые процессы, называемые демонами. Демоны предназначены для того, чтобы выполнять функции, которые могут непосредственно не относиться к ядру, но без которых ни одна ОС Unix работать не сможет. Они выпол­няют различные функции: это и обслуживание самой ОС, и доставка поч­ты, и обеспечение работы устройств печати, и выполнение отложенных за­дач. Рассмотрим некоторые основные демоны ОС Unix.

Демон Init –это процесс, запускаемый первым. Имеет PID=1 и является предком всех процессов в системе. При загрузке он либо переводит систе­му в однопользовательский режим, либо запускает shell для чтения файлов запуска. Кроме того, демон Init находит и уничтожает процессы зомби, ко­торые накапливаются в системе.

Демон Стоп: обеспечивает выполнение команд по установленному гра­фику.

Демон Inetd – демон, управляющий работой других демонов. Он запус­кает демоны, когда для них есть работа, и уничтожает их, когда работа вы‑

полнена.

Демон Lрd- управляет печатью в ВSD-система

Кроме этих существуют многие другие демоны. В различных версиях ОС Unix они могут носить различные наименования, но выполнять одина­ковые функции. Кроме того, следует заметить, что некоторые разработчи­ки ОС Unix (АТТ разновидности) даже пошли на то, чтобы переложить на