Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Особенности архитектуры: UNIX, Linux и Windows
Базовая архитектура UNIX UNIX является примером довольно простой архитектуры ОС. Большая часть функциональности этой системы находится в ядре, ядро общается с прикладными программами с помощью системных вызовов (см рис 2.5). Рисунок 2.5 – Базовая архитектура UNIX
Система состоит из трех основных компонентов: подсистемы управления процессами, файловой подсистемы и подсистемы ввода-вывода. Подсистема управления процессами контролирует создание и удаление процессов, распределение системных ресурсов между ними, межпроцессовое взаимодействие, управление памятью. Файловая подсистема обеспечивает единый интерфейс доступа к данным, размещенных на дисковых накопителях и к периферийным устройствам. Такой интерфейс является одной из важнейших особенностей UNIX. Одни и те же системные вызовы используют как для обмена данными с диском, так и для вывода на терминал или принтер (программа работает с принтером так же, как и с файлом). При этом файловая система переадресовывает вызовы соответствующим модулям подсистемы ввода-вывода, и те – непосредственно периферийным устройствам. Кроме того, файловая подсистема контролирует права доступа к файлам, которые в значительной степени определяет привилегии пользователя в системе. Подсистема ввода-вывода выполняет запросы файловой подсистемы, взаимодействуя с драйверами устройств. В UNIX различают два типа устройств: символьные (например, принтер) и блоковые (например, жесткий диск). Основное их отличие в том, что блоковое устройство допускает прямой доступ. Для повышения продуктивности работы с блоковыми устройствами используют буферный кэш – область памяти, в которой сохраняются данные, считанные с диска последними. Во время следующих обращений к этим данным, они могут быть получены из кэша. Современные UNIX-системы несколько отличаются по своей архитектуре. Ø В них выделен отдельный менеджер памяти, отвечающий за поддержку виртуальной памяти. Ø Стандартом для реализации интерфейса файловой подсистемы является виртуальная файловая система, которая абстрагирует этот интерфейс и дает возможность организовать поддержку разных типов файловых систем. Ø В этих системах поддерживается многопроцессорная обработка, а так же многопотоковость. Базовые архитектурные решения, такие как доступ ко всем устройств ввода-вывода через интерфейс файловой системы или организация системных вызовов, остаются неизменными во всех реализациях UNIX. Архитектура Linux В ОС Linux можно выделить три основные части: Ø ядро, которое реализует основные функции ОС (управление процессами, памятью, вводом-выводом и т.д.); Ø системные библиотеки, которые определяют стандартный набор функций для использования в применениях ( выполнение таких функций не требует перехода в привилегированный режим); Ø системные утилиты (прикладные программы, которые выполняют специализированные задачи). Назначение ядра Linux и его особенности Linux реализует технологию монолитного ядра. Весь код и структуры данных ядра находятся в одном адресном пространстве. В ядре можно выделить несколько функциональных компонентов: Ø Планировщик процессов – отвечает за реализацию многозадачности в системе (обработка прерываний, работа с таймером, создание и завершение процессов, переключение контекста). Ø Менеджер памяти – выделяет отделбное адресное пространство для каждого процесса и реализует поддержку виртуальной памяти. Ø Виртуальная файловая система – предоставляет универсальный интерфейс взаимодействия с разными файловыми системами и устройствами ввода-вывода. Ø Драйверы устройств – обеспечивают непосредственную работу с периферийными устройствами. Доступ к ним реализуется через интерфейс виртуальной файловой системы. Ø Сетевой интерфейс – обеспечивает доступ к раелизации сетевых протоколов и драйверов сетевых устройств. Ø Подсистема межпроцессового взаимодействия – предлагает механизмы, которые дают возможность разным процессам в системе обмениваться данными между собой. Некоторые из этих подсистем являются логическими компонентами системы, они загружаются в память вместе с ядром и остаются там постоянно. Компоненты других подсистем (например, драйверы устройств) выгодно реализовать так, что бы их код мог загружаться в память по требованию. Для решения данной задачи Linux поддерживает концепцию модулей ядра. Модули ядра Ядро Linux дает возможность по требованию загружать в память и выгружать из нее отдельные секции кода. Такие секции называются модулями ядра и выполняются в привилегированном режиме. Модули ядра дают ряд преимуществ: 1. Код модулей может загружаться в память в процессе работы системы, что упрощает настройку компонентов ядра, прежде всего драйверов. 2. Есть возможность изменять набор компонентов ядра во время выполнения: те из них, которые в этот момент не используются, можно не загружать в память. 3. Модули являются исключением из правила, по которому код, который расширяет функции ядра, в соответствии лицензии Linux должен быть открытым. Это дает возможность производителям аппаратного обеспечения разрабатывать драйверы под Linux, даже если не запланировано давать доступ к их коду. Поддержка драйверов в Linux состоит из трех компонентов: 1. Средства управления модулями дают возможность загружать модули в память и реализовывать обмен данными между модулями и остальной частью ядра. 2. Средства реализации драйверов позволяют модулям сообщать остальной части ядра о том, что новый драйвер стал доступным. 3. Средства разрешения конфликтов дают возможность драйверам устройств резервировать аппаратные ресурсы и защищать их от случайного использования другими драйверами. Один модуль может зарегистрировать несколько драйверов, если это необходимо (например, для двух разных механизмов доступа устройства). Модули могут быть загружены заранее – во время старта системы (загрузочные модули) или в процессе выполнения программы, которая вызывает их функции. После загрузки код модуля находится в том же адресном пространстве, где и остальной код ядра. Ошибка в модуле является критичной для системы. Популярное:
|
Последнее изменение этой страницы: 2016-05-28; Просмотров: 1997; Нарушение авторского права страницы