Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety1.docx
Скачиваний:
4
Добавлен:
20.09.2019
Размер:
92.43 Кб
Скачать

Билет 13.

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

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

Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты всегда имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на различных машинах. Для пользователя, купившего в свое время пакет (например, Lotus 1-2-3) для MS-DOS, важно, чтобы он мог запускать этот полюбившийся ему пакет без каких-либо изменений и на своей новой машине, работающей под управлением, например, Windows NT.

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

  •  вызовы функций API, которые содержит приложение, должны поддерживаться данной ОС;

  •  внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной ОС.

Билет 14.

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

Монолитные ядра имеют долгую историю развития и усовершенствования и, на данный момент, являются наиболее архитектурно зрелыми и пригодными к эксплуатации. Вместе с тем, монолитность ядер усложняет их отладку, понимание кода ядра, добавление новых функций и возможностей, удаление «мёртвого», ненужного, унаследованного от предыдущих версий, кода. «Разбухание» кода монолитных ядер также повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. Это делает монолитные ядерные архитектуры мало пригодными к эксплуатации в системах, сильно ограниченных по объёму ОЗУ, например, встраиваемых системах, производственных микроконтроллерах и т. д.

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

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

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

Достоинства: скорость работы, упрощённая разработка модулей.

Недостатки: поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.

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

Такая организация ОС предлагает следующую структуру:

1 уровень: Главная программа

2 уровень: Набор служебных процедур

3 уровень: Набор утилит

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]