- •Эволюция ос и Сетевые ос
- •3.Назначение и функции ос для автономного (не сетевого )пк
- •Функциональные компоненты автономной ос
- •Назначение и функции сетевой ос
- •Сетевые службы и сервисы
- •Одноранговые и Сервисные ос, Современные ос
- •Архитектура ос
- •Многослойная архитектура ос
- •Микроядерная архитектура
- •Совместимость и множественные прикладные среды.
- •Мультипрограммирование
- •Мультипроцессорная обработка
- •Процессы и потоки
Архитектура ос
ОС – это комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой ПК с другой стороны.
Структуризация ОС:
Ядро-модули, выполняющие основные ф-ии ОС
Модули, выполняющие вспомогательные ф-ии ОС
Основные функции ядра :
Организация выч процесса
Загрузка/выгрузка страниц
Обработка прерываний
Прикладная программная среда – набор функций ядра для поддержки приложений.
Функции ядра, которые могут вызываться приложениями образуют интерфейс прикладного программирования (API) – предоставляется ОС для пользователя в виде набора функций. Приложения обращаются к API с помощью системных вызовов.
Вспомогательные модули: оформляются в виде приложений или библиотек процедур.
Виды:
Утилиты-проги, которые решают отдельные задачи управления и сопровождения комп. системы( напр. программы сжатия дисков)
Системные обрабатывающие проги (Paint, блокнот)
Проги, предоставляющие пользователю отдельные услуги – спец вариант пользовательского интерфейса, калькулятор.
Библиотеки процедур – процедуры, облегчающие разработку приложений.(напр. Библиотека мат. функций)
Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативу только на время выполнения своих функций. Постоянно в оперативе располагаются только самые необходимые коды ОС, составляющее ее ядро. Такая организация ОС экономит оперативу ПК.
Многослойная архитектура ос
Любая вычислительная система может рассматриваться в виде иерархии 3-х слоев. Каждый слой может взаимодействовать только со смежным.
Каждый слой обслуживает вышележащий слой, выполняя некий набор функций, который образует межслойный интерфейс
«+»
Упрощается разработка ОС за счет определения функций межслойного взаимодействия.
упрощается модернизация
Ядро состоит из следующих слоев:
Средства аппаратной поддержки ос – те, которые на прямую участвуют в организации вычислительного процесса (средства защиты областей памяти, средства переключения контекстов процесса, система прерываний.)
Машинно-зависимые компоненты – этот слой образуют программные модули, в которых отражается специфика аппаратной платформы ПК. Остальные слои могут разрабатываться на основе машинно-независимых модулей, одинаковых для любых архитектур ПК.
Базовые механизмы ядра – этот слой выполняет наиболее примитивные операции ядра: переключение механизмов процессов; перемещение страниц из оперативной памяти на жесткий (swapping); управление прерываниями.
Менеджеры ресурсов – состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами системы. (память, процессор и т.д.)
Менеджер=диспетчер: процессов, вв.выв, памяти.
Каждый менеджер ведет свободный учет ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений.
Внутри слоя менеджеров существуют тесные взаимосвязи т.к. для выполнения процесса необходим доступ к нескольким ресурсам одновременно.
Интерфейс системных вызовов: взаимодействует с приложениями, образуя интерфейс ОС. Это позволяет обратится к ресурсам без указания физических деталей.
Увеличения числа слоев приводит к замедлению работы за счет дополнительных накладных расходов. Уменьшение числа слоев уменьшает расширяемость.
10. Аппаратная зависимость и переносимость ОС
Средства аппаратной поддержки:
Средства поддержки привилегированного режима: реализуется на системном регистре процессора(слово состояния) – содержит признаки, определяющие режим работы процессора, в том числе и признак текущего режима работы. Смена режима работы происходит за счет слова-состояния, в результате прерывания или привилегированной команды.
Средства трансляции адресов – выполняют операции преобразования виртуальных адресов, которые содержатся в кодах процессора, в адреса физической памяти. Таблицы предназначенные для трансляции адресов обычно имеют большой объем, поэтому для их хранения используют области ОП, а аппаратура процессора содержит только указатели на эти области.
Средства переключения процессов – предназначены для быстрого сохранения контекста приостанавливаемого процесса и восстановления контекста процесса, который становится активным .
Контекст – это состояние всех регистров процессора, регистра флагов операции, а так же указателей, связанным с отдельным процессом. Для хранения контекстов приостановленных процессов обычно используются области ОП, которые поддерживаются указателями процессора.
Система прерываний – позволяет ПК реагировать на внешние события, синхронизировать выполнение процессов и работу устройств ввода вывода, быстро переходить с одной программы на другую. При выполнении прерывания происходит автоматический переход на процедуру обработки прерывания.
Системный таймер – реализуется в виде быстродействующего регистра-счетчика для определения интервалов времени.
Средства защиты области памяти – обеспечивают на аппаратном уровне проверку возможности программного кода осуществлять с данными определенной области памяти такие операции, как чтение, запись или выполнение.
Машинно-зависимые компоненты ОС :
Невозможно использовать одну и туже ОС на разных архитектурах, не подстраивая ее.
Для решения проблемы с переносом ОС с одной платформы на другую ОС подразделяются на:
Машино - зависимые компоненты – в хорошо структурированном ядре машинно-зависимые модули локализованы и образуют программный слой, естественно примыкающий к слою аппаратуры.
Машино – независимые компоненты.
Переносимость ОС:
Если код ОС может быть перенесен (достаточно легко) с процессора одного типа на процессор другого типа, то такую ОС называют переносимой или мобильной.
Для обеспечения свойств мобильности ОС должны были выполняться следующие правила:
Большая часть кода должна быть написана на языках высокого уровня. На которых существуют трансляторы на тех машинах, куда переносится наша ОС.
Объем Машино - зависимого кода должен быть минимизирован т.е. следует избегать прямого обращения к аппаратным средствам нашей платформы. Это достигается за счет внедрения абстрактных типов данных (их использование) и функций, которые предоставляют машинно-зависимые модули.
Аппаратный код должен быть изолирован в нескольких модулях, а не по всей ОС.