В3: Архитектура UNIX. Организация ядра UNIX. Характеристика основных подсистем

Двухуровневая архитектура. В центре находится ядро системы (kernel). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные и системные программы от особенностей ее архитек­туры. Ядро имеет набор услуг, предоставляемых прикладным программам. К услугам ядра относятся: операции ввода вывода (открытия, чтения, записи и управления файлами), соз­дание и управление процессами, их синхронизации и взаимодействия. Все приложения запрашивают услуги у ядра посредством системных вызовов. Второй уровень составляют приложения или задачи, как системные, так и прикладные, обеспечивающие пользовательский ин­терфейс UNIX.Одно из основных достижений ОС UNIX состоит в том, что система обладает свой­ством высокой мобильности. Смысл в том, что вся операционная система, включая ядро, просто переносится на различные аппаратные плат­формы. Все части системы, не считая ядра, являются полностью машинно-независимыми. Эти компоненты аккуратно написаны на языке Си, и для их переноса на новую платформу требуется только перекомпиляция исходных текстов в коды целевого компьютера. В самом ядре можно выделить машинно-зависимые и машинно-независимые компоненты. Основная часть ядра не зависит от архи­тектурных особенностей целевой платформы. Однако сравнительно небольшая часть ядра является машинно-зависимой и напи­сана на языке ассемблера целевого процессора. При переносе системы на новую платформу требуется переписывание этой части ядра с использованием языка ассемблера и учетом специфических черт целевой аппаратуры. Машинно-зависимая часть традиционного ядра ОС UNIX включает следующие компоненты: раскрутка и инициализация системы на низком уровне (пока это зависит от особенно­стей аппаратуры);первичная обработка внутренних и внешних прерываний; управление памятью (в той части, которая относится к особенностям аппаратной под­держки виртуальной памяти); переключение контекста процессов между режимами пользователя и ядра; связанные с особенностями целевой платформы части драйверов устройств.

Ядро состоит из трех основных подсистем:Файловая подсистема, Подсистема управления процессами и памятью, Подсистема ввода/вывода.

Функции ядра ОС UNI: Инициализация системы − функция запуска и раскрутки. Ядро системы обеспечивает средство раскрутки (bootstrap). Управление файлами − функция, реализующая абстракцию файловой системы, - иерархии каталогов и файлов. Файловые системы ОС UNIX поддерживают несколько типов файлов. Файлы обычно хранятся на устройствах внешней памяти; доступ к ним обеспечивается средствами ядра. Управление процессами и нитями − функция создания, завершения и отслеживания существующих процессов и нитей. Обмен данными (коммуникационные средства) − функция, обеспечивающая возможности обмена данными между процессами. Управление памятью − функция отображения практически неограниченной виртуальной памяти процессов в физическую оперативную память компьютера, которая имеет ограниченные размеры. Программный интерфейс − функция, обеспечивающая доступ к возможностям ядра со стороны пользовательских процессов на основе механизма системных вызовов, оформленных в виде библиотеки функций.

Файловая подсистема управляет файлами, размещает записи файлов, управляет свободным пространством, доступом к файлам и поиском данных для пользователей. Процессы взаимодействуют с подсистемой управления файлами, используя специальные обращений кОС (open(), close(), read(), write(), stat(), chown() и chmod()).Важной функцией файловой подсистемы в UNIX является контроль прав доступа к файлам и каталогам. Поскольку большинство прикладных функций выполняется через интерфейс файловой системы, права доступа к файлам определяют привилегии пользоателя в системе.

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

Подсистема управления процессами контролирует:Создание и удаление процессов.Распределение системных ресурсов (памяти, вычислительных ресур­сов) между процессами.Синхронизацию процессов.Межпроцессное взаимодействие.

Модуль управления памятью обеспечивает размещение оперативной памяти для прикладных задач. В случае если для всех процессов недостаточно памяти, ядро перемещает части процесса или нескольких процессов во вторичную память (область жесткого диска), освобождая ресурсы для выполняющегося процесса. Управление виртуальной памятью процесса также входит в задачи модуля управления памятью.

Подсистема ввода-вывода выполняет запросы подсистем к периферийным устройствам. Она обеспечивает необходимую буферизацию данных и взаимодействует с драйверами устройств – специальными модулями ядра, непосредственно обслуживающими внешние периферийные устройства.


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



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