какие существуют способы реализации ядра системы

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Что такое ядро операционной системы

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

какие существуют способы реализации ядра системы. Смотреть фото какие существуют способы реализации ядра системы. Смотреть картинку какие существуют способы реализации ядра системы. Картинка про какие существуют способы реализации ядра системы. Фото какие существуют способы реализации ядра системы

какие существуют способы реализации ядра системы. Смотреть фото какие существуют способы реализации ядра системы. Смотреть картинку какие существуют способы реализации ядра системы. Картинка про какие существуют способы реализации ядра системы. Фото какие существуют способы реализации ядра системы

Основные функции, которые выполняет ядро:

Теперь давайте разберемся подробнее в этих функциях ядра.

Функции ядра в операционной системе

Управление процессами

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

Управление памятью

Всякий раз, когда процесс создается и выполняется, он занимает память, и когда он завершается, память должна быть освобождена и может быть использована снова. Но память должна быть обработана кем-то, чтобы освобожденная память могла быть снова назначена новым процессам. Эта задача также выполняется ядром. Ядро отслеживает, какая часть памяти в данный момент выделена и какая часть доступна для выделения другим процессам.

Управление устройствами

Ядро также управляет всеми различными устройствами, подключенными к системе, такими как устройства ввода и вывода и т. д.

Обработка прерываний

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

Операции ввода/вывода

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

Типы ядер в операционной системе

Ядро подразделяется на два основных типа:

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

Монолитное Ядро

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

какие существуют способы реализации ядра системы. Смотреть фото какие существуют способы реализации ядра системы. Смотреть картинку какие существуют способы реализации ядра системы. Картинка про какие существуют способы реализации ядра системы. Фото какие существуют способы реализации ядра системы

Микроядра

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

какие существуют способы реализации ядра системы. Смотреть фото какие существуют способы реализации ядра системы. Смотреть картинку какие существуют способы реализации ядра системы. Картинка про какие существуют способы реализации ядра системы. Фото какие существуют способы реализации ядра системы

Гибридное Ядро

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

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Тест с ответами по дисциплине Операционные системы

Какие ОС называются мультипрограммны ми

1. обеспечивающие одновременную работу нескольких пользователей

2. поддерживающие сетевую работу компьютеров

+3. обеспечивающие запуск одновременно нескольких программ

4. состоящие более чем из одной программы

Какие существуют способы реализации ядра системы?

+1. многоуровневая (многослойная) организация

+2. микроядерная организация

3. реализация распределеннная

4. монолитная организация

Что обычно входит в состав ядра ОС

+1. высокоуровневые диспетчеры ресурсов

+2. аппаратная поддержка функций ОС процессором

+ 3. базовые исполнительные модули

+ 4. набор системных API-функций

Какие особенности характерны для современных универсальных операционных систем?

+ 1. поддержка многозадачности

+ 2. поддержка сетевых функций

+ 3. обеспечение безопасности и защиты данных

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

Какие утверждения относительно понятия «API-функция» являются правильными?

+ 1. API-функции определяют прикладной программный интерфейс

+ 2. API-функции используются при разработке приложений для доступа к ресурсам компьютера

3. API-функции реализуют самый нижний уровень ядра системы

4. API-функции — это набор аппаратно реализованных функций системы

Какие особенности характерны для ОС Unix

+ 1. открытость и доступность исходного кода

2. ориентация на использование оконного графического интерфейса

+ 3. использование языка высокого уровня С

+ 4. возможность достаточно легкого перехода на другие аппаратные платформы

Какие типы операционных систем используются наиболее часто в настоящее время?

+ 1. системы семейства Windows

+ 2. системы семейства Unix/Linux

3. системы семейства MS DOS

4. системы семейства IBM OS 360/370

Какие задачи необходимо решать при создании мультипрограммны х ОС

+ 1. защита кода и данных разных приложений, размещенных вместе в основной памяти

+ 2. централизованное управление ресурсами со стороны ОС

+ 3. переключение процессора с одного приложения на другое

4. необходимость размещения в основной памяти кода и данных сразу многих приложений

Какое соотношение между используемыми на СЕРВЕРАХ операционными системами сложилось в настоящее время?

+ 1. примерно поровну используются системы семейств Windows и Unix/Linux

2. около 10 % — системы семейства Windows, около 90 % — системы смейства Unix/Linux

3. около 90 % — системы семейства Windows, около 10 % — системы семейства Unix/Linux

4. около 30 % — системы семейства Windows, около 30 % — системы семейства Unix/Linux, около 40 % — другие системы

Какие утверждения относительно понятия «Ядро операционной системы» являются правильными?

+ 1. ядро реализует наиболее важные функции ОС

+ 2. подпрограммы ядра выполняются в привилегированно м режиме работы процессора

3. ядро в сложных ОС может строиться по многоуровневому принципу

4. ядро всегда реализуется на аппаратном уровне

Какие сообщения возникают при нажатии на клавиатуре алфавитно-цифров ой клавиши?

Какие шаги в алгоритме взаимодействия приложения с системой выполняются операционной системой

1. формирование сообщения и помещение его в системную очередь

+ 2. распределение сообщений по очередям приложений

+ 3. вызов оконной функции для обработки сообщения

4. извлечение сообщения из очереди приложения

Что представляет собой понятие “сообщение” (message)?

1. небольшую структуру данных, содержащую информацию о некотором событии

2. специальную API-функцию, вызываемую системой при возникновении события

3. однобайтовое поле с кодом происшедшего события

+ 4. небольшое окно, выводящее пользователю информацию о возникшем событии

Какие утверждения относительно иерархии окон являются справедливыми

+ 1. главное окно может содержать любое число подчиненных окон

+ 2. любое подчиненное окно может содержать свои подчиненные окна

3. подчиненные окна могут быть двух типов – дочерние и всплывающие

+ 4. приложение может иметь несколько главных окон

Как можно узнать координаты текущего положения мыши при нажатии левой кнопки

+ 1. с помощью события WM_LbuttonDown и его поля LPARAM

2. с помощью события WM_LbuttonDown и его поля WPARAM

3. с помощью события WM_LbuttonDown и его полей WPARAM и LPARAM

4. с помощью события WM_LbuttonCoordi nates

Какие функции можно использовать для получения контекста устройства?

Какая инструкция (оператор) является основной при написании оконной функции?

+ 1. инструкция множественного выбора типа Case — Of

2. условная инструкция if – then

3. инструкция цикла с известным числом повторений

4. инструкция цикла с неизвестным числом повторений

Какой вызов позволяет добавить строку в элемент-список?

+ 1. SendMessage (MyEdit, lb_AddString, 0, строка)

2. SendMessage (“Edit”, lb_AddString, 0, строка)

3. SendMessage (MyEdit, AddString, 0, строка)

4. SendMessage (MyEdit, строка, lb_AddString, 0)

Какие утверждения относительно оконной функции являются правильными

+ 1. оконная функция принимает 4 входных параметра

+ 2. тело оконной функции – это инструкция выбора с обработчиками событий

+ 3. оконная функция обязательно должна обрабатывать сообщение wm_Destroy

+ 4. оконная функция явно вызывается из основной функции приложения

Какие сообщения возникают при нажатии на клавиатуре функциональной клавиши?

Что может быть причиной появления внутреннего прерывания

+ 1. попытка деления на ноль

2. попытка выполнения запрещенной команды

+ 3. попытка обращения по несуществующему адресу

4. щелчок кнопкой мыши

Какие операции определяют взаимодействие драйвера с контроллером

+ 1. проверка состояния устройства

+ 2. запись данных в регистры контроллера

+ 3. чтение данных из регистров контроллера

4. обработка прерываний от устройства

Какие операции включает в себя вызов обработчика нового прерывания

+ 1. обращение к таблице векторов прерываний для определения адреса первой команды вызываемого обработчика

2. сохранение контекста для прерываемого программного кода

+ 3. занесение в счетчик команд начального адреса вызываемого обработчика

+ 4. внесение необходимых изменений в таблицу векторов прерываний

Что входит в программный уровень подсистемы ввода/вывода

2. диспетчер ввода/вывода

+ 3. системные вызовы

Что определяет понятие “порт ввода/вывода”

+ 1. порядковый номер или адрес регистра контроллера

2. машинную команду ввода/вывода

3. устройство ввода/вывода

4. контроллер устройства ввода/вывода

Какие существуют типы прерываний

+ 1. внешние или аппаратные прерывания

+ 2. внутренние прерывания или исключения

+ 3. программные псевдопрерывания

4. системные прерывания

Какие утверждения относительно понятия прерывания являются правильными

+ 1. прерывания — это механизм реагирования вычислительной системы на происходящие в ней события

2. прерывания используются для синхронизации работы основных устройств вычислительной системы

+ 3. прерывания возникают в непредсказуемые моменты времени

4. прерывания — это основной механизм планирования потоков

Какую информацию могут содержать регистры контроллеров устройства

+ 1. текущее состояние устройства

+ 2. текущую выполняемую устройством команду

3. данные, передаваемые от устройства системе

4. данные, передаваемые системой устройству

Как выстраиваются аппаратные прерывания в зависимости от их приоритета

1. сбой аппаратуры > таймер > дисковые устройства > сетевые устройства > клавиатура и мышь

2. сбой аппаратуры > таймер > дисковые устройства > клавиатура и мышь > сетевые устройства

+ 3. таймер > сбой аппаратуры > дисковые устройства > сетевые устройства > клавиатура и мышь

4. сбой аппаратуры > дисковые устройства > таймер > сетевые устройства > клавиатура и мышь

Что может быть причиной появления внешнего прерывания

+ 1. нажатие клавиши на клавиатуре

+ 2. завершение дисковой операции

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

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Ядро (Операционные Системы)

какие существуют способы реализации ядра системы. Смотреть фото какие существуют способы реализации ядра системы. Смотреть картинку какие существуют способы реализации ядра системы. Картинка про какие существуют способы реализации ядра системы. Фото какие существуют способы реализации ядра системы

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

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

Содержание

Основные функции ядра

Основные функция ядра:Ядро операционной системы, как правило, содержит программы для реализации следующих функций:

Типы архитектур ядер операционных систем

Монолитное ядро

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

Достоинства: Скорость работы, упрощённая разработка модулей. Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. Примеры: Традиционные ядра UNIX (такие как BSD), Linux; ядро MS-DOS, ядро KolibriOS.

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

Модульное ядро

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

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

Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как от разработчика не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются. Примером может служить VFS — «виртуальная файловая система», совместно используемая многими модулями файловых систем в ядре Linux.

Микроядро

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

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

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

Сервисные процессы (в принятой в семействе UNIX терминологии — «демоны») активно используются в самых различных ОС для задач типа запуска программ по расписанию (UNIX и Windows NT), ведения журналов событий (UNIX и Windows NT), централизованной проверки паролей и хранения пароля текущего интерактивного пользователя в специально ограниченной области памяти (Windows NT). Тем не менее, не следует считать ОС микроядерными только из-за использований такой архитектуры. Примеры: Symbian OS; Windows CE; OpenVMS; Mach, используемый в GNU/Hurd и Mac OS X; QNX; AIX; Minix; ChorusOS; AmigaOS; MorphOS.

Экзоядро

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

Наноядро

Наноядро — архитектура ядра операционной системы, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний. Примером является KeyKOS — самая первая ОС на наноядре. Первая версия вышла ещё в 1983-м году.

Гибридное ядро

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

Комбинация разных подходов

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

Существуют варианты ОС GNU, в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него крутятся в пользовательском пространстве те же самые процессы, которые при использовании Linux были бы частью ядра. Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляются монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.

Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйверы устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер. Примеры: Windows NT, DragonFlyBSD.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *