ЯДРО В ПРИВИЛЕГИРОВАННОМ РЕЖИМЕ

ЯДРО. МОДУЛИ ОС

Некоторые ОС выполнены так, что ядро содержит лишь 1 модуль, в этом случае изменение свойств ядра весьма сложно (Linux). Другие ядра содержат несколько модулей, они называются микроядерными (напр.Word 2000).

Функции ядра

В состав ядра входят функции, выполняющие внутрисистемные задачи организации вычислительных процессов: переключение контекстов, загрузка-выгрузка страниц, обработка прерываний. Эти функции недопустимы для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них прикладную программную среду. Приложения могут обращаться к ядру с запросами, т.е. системными вызовами для выполнения тех или иных задач, напр. Чтение – открытие файлов; вывод графической информации на дисплей. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программинга. Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями ОС, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра (их большая часть) постоянно находятся в оперативной памяти, т.е. являются резидентными. Ядро является движущей силой всего вычислительного процесса, поэтому особенно важно обеспечить его надежность (защищенность). Часто ядро оформлено в виде модуля специального формата, отличающегося от формата пользовательских приложений. Ядро вычислительной системы– это аппаратные средства, в которые входят процессор и память. Современные ОС состоят не только из программ, а содержат аппаратные средства самого процессора.

Вспомогательные модули

1) Утилиты – это программы, решающие отдельные задачи управления и сопровождения компьютерной сист, такие как: программа сжатия дисков, архивации данных и т.д.

2) Системные обрабатывающие программы: текстовые и графические редакторы, компиляторы, компоновщики и т.д.

3) Программы, предоставляющие пользователю дополнительные услуги: специальные программы пользовательского интерфейса, игры и т.д.

4) Библиотеки процедур различного назначения, упрощающие разработку приложений.

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

ЯДРО В ПРИВИЛЕГИРОВАННОМ РЕЖИМЕ

Для надежного выполнения кода вычислительного процесса ОС должна иметь по отношению к приложениям привелегии, иначе некорректно работающее приложение может разрушить часть кода. Поэтому ОС должна обладать полномочиями, а так же для того, чтобы играть роль «арбитра в споре» приложений за ресурсы системы. Ни одно из приложений не должно иметь возможность без ведома ОС получить дополнительную область памяти, занимать процессор дольше разрешенного времени, управлять совместно используемыми внешними устройствами. Также привелегии можно обеспечить без специальных средств аппаратной поддержки. Аппаратура ПК должна поддерживать как минимум 2 режима работы: Пользовательский режим и Привилегированный режим (режим ядра). Приложение ставится в подготовительное положение за счет запрета воспроизведения в привилегированном режиме некоторых критических команд, связанных с переключением процессора с задачи на задачу, управлением устройства ввода-вывода, доступа к механизмам распределения и защиты памяти. Выполнение некоторых команд в пользовательском режиме запрещается (например команда перехода из польз. режима в привилегированный и обратно). Тогда как другие программы могут быть запрещены для выполнения в определенных условиях. Например, команды вв-выв могут быть запрещены при доступе к контроллеру жесткого диска, который хранит данные, общие для ОС и приложений. Если какому-то приложению требуется последовательный порт, то ОС может разрешить его. Условие выполнения критической команды находится под полным контролем ОС. Контроль обеспечивается за счет набора команд, защищенных в пользовательском режиме. Аналогичным способом обеспечиваются привелегии ОС при доступе к памяти. Например, выполнение команды доступа к памяти для приложения разрешается, если команда обращается к области, отведенной для данного приложения; и запрещается, если такое обращение происходит в области, где расписаны коды самой ОС. Полный контроль ОС над доступом к памяти достигается за счет того, что команды конфигурирования механизма защиты памяти (напр., команды, управляющие указателем таблицы дескриптеров памяти) разрешается выполнять только в привилегированном режиме. Важно, что ОС ограничивает обращение не только к своим областям, но и к областям, используемым другими приложениями. В этом случае говорят, что каждая программа выполняется в своем адресном пространстве. Это свойство позволяет локализовать некорректно работающее приложение и обеспечить т.о. общую стабильность работы ОС.

СТРУКТУРА ЯДРА

 
 

 

 


Состоит из следующих слоев:

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

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

3) Слой базовые механизмы – выполняет основные функции ядра (низкоуровневые: переключение контекстов процессора; загрузка-выгрузка страниц памяти; низкоуровневые операции вв-вывода), ведет осн. таблицы. В этом слое не принимаются никакие решения относительно действий ядра в какой-либо ситуации; а выполняет лишь те директивы, которые приняты на более высоких слоях.

4) Менеджеры ресурсов (диспетчеры ресурсов) – состоят из модулей, решающих задачи по управлению основными ресурсами ОС.

Основные ресурсы:

- процессор, а точнее время, которое выделяется на определенные задачи;

- память;

- файловая система;

- устройство вв-выв.

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

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





©2015-2017 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.

Обратная связь

ТОП 5 активных страниц!