Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Классификация по способу построения ОС

Поиск

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

Системные задачи в такой архитектуре естественно должны иметь самый высокий приоритет, иначе безопасность системы может быть нарушена.

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

На модули ядра накладываются определенные ограни­чения в части используемых функций. Модули ядра обязаны экспортиро­вать определенные функции, нужные ядру для правильного подключения и распознавания модуля Некоторые части ядра всегда обязаны присутствовать в оперативной памяти и должны быть жестко «вшиты» в ядро.

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

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

Для управления портами связи существуют 4 операции: создать порт, уничтожить порт, читать из порта и записать в порт.

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

Существенным минусом является требование ресурсов на передачу данных между процессами.

Представители этого класса: QNX; Minix; ChorusOS развиваются медленно, но они обладают огромным потенциалом.

ОС на основе гибридного ядра используют модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.

В большинстве случаев современные операционные системы используют различные комбинации этих подходов (в основном Unix-подобные системы, новые версии).

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

Архитектуры на основе экзоядер являются дальнейшим развитием и усовершенствованием микроядерных архитектур. Пока существуют толькоакадемические разработки, такие как The Pandora OS, XOK/ExOS, Nemesis, но данное направление стремительно развивается.


Объектно-ориентированная операционная система — операционная система, имеющая объектно-ориентированную архитектуру. Основные функции объектно-ориентированной ОС реализует микроядро, над кото­рым располагаются сервисные модули. С микроядром связаны объектно-ориентированные языки программирования. Ресурсы объектно-ориентированной ОС используют прикладные программы.

В объектно-ориентированных системах чаще используются потоки, чем процессы. Почтовый ящик- это объект, включающий в себя:

• в качестве данных - три очереди: очередь процессов, ожидающих
сообщения, очередь сообщений, ожидающих процессы, очередь процессов, пославших сообщения и ожидающих подтверждения;

• в качестве методов — функции работы с очередью и операции чтения и записи.

Такая организация почтового ящика позволяет организовать обмен со­общениями между процессами без потери данных. Представители данного класса: OZONE, OS/400.

  1. Загрузка ОС

Загрузка - процесс подготовки программы к работе, заключающийся в пересылке программы из внешней памяти в оперативную память, ее настройке и даль­нейшем запуске

Загрузка операционной системы на IBM-совместимом компьютере на­чинается с того, что BIOS считывает программу начальной загрузки (MBR) с первого сектора накопителя (первые 512 байт накопителя, MBS) в оперативную память по адресу 0000:7с00 и передает ей управление. MBR начинает со сканирования таблицы разделов в поисках раздела, где находится начальный загрузчик ОС (он помечен особым флагом). Этот флаг показывает, что данный раздел является загрузочным. Как только MBR обнаружит хотя бы один такой флаг, она считывает в память загрузочный код из первого сектора раздела, помеченного флагом, и передает ему управление или же загружается ядро ОС.

Загрузочный код содержит программу загрузчик ОС, который:

•обеспечивает необходимые средства для диалога с пользователем
компьютера

•приводит аппаратуру компьютера в состояние, необходимое для
старта ядра операционной системы;

•загружает ядро операционной системы в ОЗУ;

•формирует параметры, передаваемые ядру операционной системы;

• передает управление ядру операционной системы.

Большинство современных ОС используют схему, при которой допол­нительные модули подгружаются уже после старта самого ядра. Список модулей, которые необходимо загрузить, а также параметры настройки яд­ра, собраны в специальных файлах. У DOS этот файл называется CONFIG.SYS, у MS Windows - реестром.

 

Распространенные загрузчики:

•NTLDR - ядра Windows NT;

•Windows Boot Manager (bootmgr.exe, winload.exe) - ядра Windows Vista; ■LILO (Linux LOader) - ядра Linux;

•GRUB (Grand Unified Bootloader) - ядра Linux и Hurd (StartUp Manager); •OS/2 BootManager - загрузчик ядра OS/2; •RedBoot — для встраиваемых систем;

■SILO (SPARC Improved bootLOader) — Linux и Solaris для машин с архитектурой SPARC.

■Loadlin - Linux из под DOS или Windows; ■Syslinux - Linux из под DOS или Windows; •BOOTP - для загрузки по сети; ■Yaboot - Linux на PowerPC; ■BootX - Mac OS X.

  1. Построение и запуск задач

Исполняемый файл содержит двоичное представление машинных ин­струкций, предназначенных для исполнения на конкретной виртуальной или физической машине (чаще всего, конкретной ОС). ОС распознают та­кие файлы, либо благодаря расширению (*.ехе или др.), либо по специальному коду разрешения исполнения в структуре файла (как в UNIX). Современные фалы могут содержать дополнительную информацию (например, для отладки). Исполнимые файлы могут содержать вызовы библиотечных функций.

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

Форзац во время выполнения программы обеспечивает ее взаимодей­ствие с ОС. Его конкретным содержанием фактически определяется со­вместимость ОС с точки зрения переносимости исполняемых файлов.

Кодовый сегмент содержит инструкции для процессора, которыми оп­ределяется ход выполнения программы.

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

Стековый сегмент служит для решения, как правило, системных задач, например, организует сохранение (с последующим восстановлением) зна­чений регистров

В области свободной памяти выделяется место под соответствующую динамическую переменную.

При загрузке программы сначала осуществляется связывание информации, т. е. на основе виртуальных адресов переменных вычисляются их физические адреса, затем эти адреса заменяют в программных кодах соответствующие имена переменных (разумеется, все эти адреса принадлежат области сегмента данных). Далее из кодового сегмента по очереди считываются команды, которые с помощью форзац-сегмента «допускаются» до ОС и обрабатываются. Например, оператор varl = varl + var2 обрабатывается по следующей, несколько условной, схеме:

• по соответствующим физическим адресам выбираются значения
переменных varl и var2, которые затем доставляются в центр обработки
данных (ЦП);

• значения переменных varl и var2 суммируются, и результат от­
правляется по адресу переменной varl.

В результате этого в сегменте данных значение var2 останется без из­менения, а в varl будет находиться искомая сумма.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 653; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.71.166 (0.008 с.)