Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС - Модуль - Часть 1.doc
Скачиваний:
3
Добавлен:
23.11.2019
Размер:
232.96 Кб
Скачать
  1. Многослойная структура ос. Структура ядра.

Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный – ядро, а утилиты, обрабатывающие программы и приложения, составляют верхний слой системы. При такой организации ОС приложения не могут непосредственно взаимодействовать с аппаратурой, а только через слой ядра. Многослойный подход является универсальным и эффективным способом декомпозиции сложных систем любого типа, в том числе и программных. В соответствии с этим подходом система состоит из иерархии слоев. Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный інтерфейс. На основе функций нижележащего слоя следующий (вверх по иерархии) слой строит свои функции – более сложные и более мощные, которые, в свою очередь, оказываются примитивами для создания еще более мощных функций вышележащего слоя.

Состав ядра

1. Средства аппаратной поддержки ос

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

2. Машинно-зависимые компоненты ОС

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

3. Базовые механизмы ядра

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

4. Менеджеры ресурсов

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

5. Интерфейс системных вызовов

Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы. Функции API, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной и компактной форме без указания деталей их физического расположения.

  1. Средства аппаратной поддержки ОС

Типовий набір апаратної підтримки ОС:

  1. Засоби підтримки привілегійованого – основано на системному регістрі процесора, що містить деякі ознаки, що визначають режим роботи процесора, у тому числі і поточний режим; + визначає допустимий…

  2. Засоби трансляції адрес – виконує операції перетворення віртуальних адрес, що знаходяться у коді процесора, у адреси фізичної пам’яті; таблиця адрес міститься у оперативній пам’яті, а апаратура містить лише вказівники на ці адреси

  3. Засіб переключення процесора – призначений для швидкого збереження контексту процесу, призупиняючи його, і швидкого відновлення контексту процесу, який стає активним

  4. Система переривання – дозволяє комп’ютеру реагувати на зовнішні події, синхронізувати виконання процесів, роботу пристроїв введення-виведення, переходити з однієї програми на іншу; при виникненні умов переривання його джерело подає сигнал, що перериває виконання процесу і викликає автоматичний перехід на зараннє визначену процедуру (процедуру обробки переривання)

  5. Системний таймер – часто реалізується у вигляді швидкодіючого лічильника; необхідний ОС, щоб витримувати задані інтервали часу

  6. Засіб захисту областей пам’яті – забезпечує на апаратному рівні перевірку можливостей програмного коду, здійснює з даними у певних областях такі операції як запис, читання, виконання

  1. Переносимость операционной системы. Требования

Одна й та сама ОС не може без будь-яких змін встановлюватися на комп’ютер, що відрізняється або типом процесору, або способом організації обчислювального процесу, або і тим і іншим. У модулях ядра ОС не можуть не відобразитися такі особливості апаратних платформ як тип переривання, формат таблиці посилань на процедури обробки переривань, системні регістри і т.д. Одначе, ядро ОС можна спроектувати таким чином, що лише частина модулів буде машинно-залежною, а решта – машинно-незалежною. Для зменшення кількості машинно-залежних модулів виробники ОС зазвичай обмежують універсальність машинно-незалежних модулів.

Переносимість ОС требованя:

  1. Більша частина коду має бути написана на мові, трансляція якого є на усіх машинах, на які передбачається перенести ОС

  2. Об’єм машинно-залежних частин коду має, по можливості, бути мінімізованим

  3. Апаратно-залежний код має бути локалізований у декількох модулях

  1. Микроядерная архитектура. Преимущества и недостатки микроядерной архитектуры

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

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

  • Недостатки: Передача данных между процессами требует накладных расходов.

  1. Совместимость ОС.

Сумісність ОС – можливість запускати за стосунки у даній ОС, що були написані для іншої ОС. Виділяють:

  1. Двійкова сумісність – досягається у тому випадку, коли можна взяти виконувану програму і запустити її на виконання у середовищі іншої ОС

  2. Сумісність вихідний текстів – потребує наявності відповідного компілятора, … бібліотек і системних викликів; при цьому необхідна перекомпіляція вихідних текстів у новий виконуваний модуль

Залежить від багатьох факторів: головний – архітектура процесора, на якому працює нова ОС. Якщо процесор використовує той самий набір команд, і той самий діапазон адрес, то двійкова сумісність може бути досягнута досить легко, для цього необхідно лише дві речі: виклик функції інтерфейсу прикладного програмування, що містить за стосунки, що підтримуються даною ОС, і внутрішня структура виконуваного модулю має відповідати внутрішній структурі модулів даної системи.

Набагато складніше досягти двійкової сумісності на різних архітектурах: тоді використовується емулятор, що послідовно обирає кожну двійкову інструкцію одного процесора, програмним чином виконує дешифрування для визначення дій, що вона виконує, і, відповідно, виконує еквіваленту підпрограму у інструкціях іншого процесору. Вихід з такої ситуації – використання прикладних програмних засобів. Одна з складових, що формує прикладне середовище, - набір функцій інтерфейсу прикладного програмування, котрі ОС надає своїм застосункам; 60-80% процентів часу витрачається на виконання функцій графічних інтерфейсів користувача, трансляція використовує власні бібліотеки, що імітують внутрішні бібліотеки графічних інтерфейсів, але є написані на інших мовах. Щоб програма, написана для однієї ОС, могла бути виконана у рамках іншої, недостатньо забезпечити … інтерфейсів прикладного програмування… Концепції, закладені у основи ОС, можуть протиречити одна одній: кожна ОС має свої алгоритми обробки помилок, схеми керування пам’яттю, семантику доступу до файлів і графічний інтерфейс користувача, тому для забезпечення сумісності треба організувати у рамках однієї ОС декілька способів керування ресурсами.