Часть операционной системы постоянно находящаяся в оперативной памяти и управляющая всей ос это
1. Часть операционной системы, постоянно находящаяся в оперативной памяти и управляющая всей ОС - это .
A)Ядро
B)вся ОС постоянно находится в оперативной памяти
C)программа контроля, тестирования и диагностики компьютера
D)все запущенные на компьютере программы постоянно находятся в оперативной памяти
2. Сервер — это:
A)персональный компьютер, подключенный к сети, через который пользователь получает доступ к ее ресурсам
B)компьютер, подключенный к сети и обеспечивающий ее пользователей определенными услугами
C)два или более абонентов вычислительной сети, соединенных каналом связи
D)персональный компьютер
3. Сеть, объединяющая компьютеры на небольшой территории внутри одного или нескольких зданий в радиусе 1-2км, называется .
A)городской (областной) сетью
B)локальной сетью
C)глобальной сетью
D)всемирной паутиной
4. Что из перечисленного не является функцией операционной системы?
A)обеспечение обмена данными с внешними устройствами
B)обеспечение запуска и выполнения программ
C)обеспечение информационной безопасности и сохранности информации на информационных носителях
D)распределение ресурсов
5. Под термином "поколение ЭВМ" понимают.
A)все счетные машины
B)все типы и модели ЭВМ, построенные на одних и тех же научных и технических принципах
C)совокупность машин, предназначенных для обработки, хранения и передачи информации
D)все типы и модели ЭВМ, созданные в одной и той же стране
6. Машины первого поколения были созданы на основе.
A)транзисторов
B)электронно-вакуумных ламп
C)зубчатых колес
D)реле
7. Дано: а = 2010, b = 228. Какое из чисел с, записанных в двоичной системе, отвечает условию b < c < a ?
8. В некотором городе автоматический турникет в автобусе при проходе пассажира в салон записывает в память мини-компьютера следующую информацию: с использованием минимально возможного количества бит (n бит) регистрируется номер остановки, на которой сел пассажир, следующие m бит регистрируют номер проездного билета пассажира (также с использованием минимально возможного количества бит). Чему равно значение n + m, если в городе на пути автобуса 23 остановки, а проездными билетами пользуются 2010 пассажиров?
9. Известно, что в кодовой таблице ASCII десятичный код символа «1» равен 49. Каков десятичный код символа «9»?
10. Как называется вирус, который внедряется в программы и активируется при их запуске?
11. Какой файл считается зараженным?
A)Если в файле обнаружена картинка
B)Если в файле обнаружена лишний символ
C)Если в файле обнаружен шифр
D)Если в файле обнаружен лишний компьютерный код
12. Что нужно сделать, если данные не помещаются в видимой части ячейки?
A)Сделать столбец А шириной во весь экран, а затем строку 1 высотой во весь экран
B)Увеличить ширину ячейки или установить флажок Переносить по словам для данной ячейки
C)Сократить информацию так, чтобы она умещалась по ширине ячейки
D)Найти ячейку пошире и записать информацию туда.
13. Какая программа не является антивирусной?
A)AVP
B)Defrag
C)Norton Antivirus
D)Dr Web
14. Протокол FTP служит для:
15. Аутентификация на основе пароля, переданного по сети в открытом виде, плоха потому что не обеспечивает защиты от:
A)Переадресации
B)Перехвата
C)Перевода
D)атак на доступность
Ядро операционной системы (Kernel) - часть операционной системы: постоянно находящаяся в оперативной памяти, управляющая всей операционной системой, содержащая: драйверы устройств, подпрограммы управления памятью, планировщик заданий, реализующая системные вызовы и т.п.
Все операции, связанные с процессами, выполняются под управлением той части операционной системы, которая называется ядром. Ядро представляет собой лишь небольшую часть кода операционной системы в целом, однако оно относится к числу наиболее интенсивно используемых компонент системы. По этой причине ядро обычно резидентно размещается в основной памяти, в то время как другие части операционной системы перемещаются во внешнюю память и обратно по мере необходимости. Одной из самых важных функций, реализованных в ядре, является обработка прерываний. В больших многоабонентских системах в процессор поступает постоянный поток прерываний. Быстрая реакция на эти прерывания играет весьма важную роль с точки зрения полноты использования ресурсов системы и обеспечения приемлемых значений времени ответа для пользователей, работающих в диалоговом режиме.
Когда ядро обрабатывает текущее прерывание, оно запрещает другие прерывания и разрешает их снова только после завершения обработки текущего прерывания. При постоянном потоке прерываний может сложиться такая ситуация, что ядро будет блокировать прерывания в течение значительной части времени, т. е. не будет иметь возможности эффективно реагировать на прерывания. Поэтому ядро обычно разрабатывается таким образом, чтобы оно осуществляло лишь минимально возможную предварительную обработку каждого прерывания, а затем передавало это прерывание на дальнейшую обработку соответствующему системному процессу, после начала работы которого ядро могло бы разрешить последующие прерывания.
Основные функции ядра
Основные функция ядра:Ядро операционной системы, как правило, содержит программы для реализации следующих функций:
- обработка прерываний;
- создание и уничтожение процессов;
- переключение процессов из состояния в состояние;
- диспетчирование ;
- приостановка и активизация процессов ;
- синхронизация процессов ;
- организация взаимодействия между процессами;
- манипулирование блоками управления процессами;
- поддержка операций ввода-вывода;
- поддержка распределения и перераспределения памяти;
- поддержка работы файловой системы ;
- поддержка механизма вызова-возврата при обращении к проце¬дурам;
- поддержка определенных функций по ведению учета работы
- машины.
Типы адресов
Для идентификации переменных и команд используются символьные имена (метки), виртуальные адреса и физические адреса.
Типы архитектур ядер операционных систем
Экзоядро
Экзоядро — ядро операционной системы, предоставляющее лишь функции для взаимодействия между процессами и безопасного выделения и освобождения ресурсов. Предполагается, что API для прикладных программ будут предоставляться внешними по отношению к ядру библиотеками (откуда и название архитектуры). Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной ОС, например, реализация СУБД будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии.
Комбинация разных подходов
Все подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например, сейчас ядро «Linux» представляет собой монолитную систему с отдельными элементами модульного ядра. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра — так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.
Существуют варианты ОС GNU, в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него крутятся в пользовательском пространстве те же самые процессы, которые при использовании Linux были бы частью ядра. Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляются монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.
Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйверы устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер. Примеры: Windows NT, DragonFlyBSD.
С понятием управления паметью в ОС связаны следующие технологии:
- Функции управления памятью в ОС
- Типы адресов
- Методы распределения памяти в ОС
- Принцип кэширования данных в ОС
Наноядро
Наноядро — архитектура ядра операционной системы, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний. Примером является KeyKOS — самая первая ОС на наноядре. Первая версия вышла ещё в 1983-м году.
Микроядро
Микроядро – предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Бо́льшая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений.
Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая её работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
Недостатки: Передача данных между процессами требует накладных расходов. Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.
Сервисные процессы (в принятой в семействе 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.
Функции управления памятью в ОС
Операционная система решает следующие задачи:
- Отслеживание свободной и занятой памяти.
- Выделение и освобождение памяти по запросам процессов.
- Обеспечение настройки адресов.
- Поддержка механизма виртуальной памяти
Гибридное ядро
Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. Имеют «гибридные» достоинства и недостатки.
Наноядро
Наноядро — архитектура ядра операционной системы, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний. Примером является KeyKOS — самая первая ОС на наноядре. Первая версия вышла ещё в 1983-м году.
Монолитное ядро
Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Монолитное ядро — старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство UNIX-систем.
Достоинства: Скорость работы, упрощённая разработка модулей. Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. Примеры: Традиционные ядра UNIX (такие как BSD), Linux; ядро MS-DOS, ядро KolibriOS.
Монолитные ядра имеют долгую историю развития и усовершенствования и, на данный момент, являются наиболее архитектурно зрелыми и пригодными к эксплуатации. Вместе с тем, монолитность ядер усложняет их отладку, понимание кода ядра, добавление новых функций и возможностей, удаление «мёртвого», ненужного, унаследованного от предыдущих версий кода. «Разбухание» кода монолитных ядер также повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. Это делает монолитные ядерные архитектуры малопригодными к эксплуатации в системах, сильно ограниченных по объёму ОЗУ, например, встраиваемых системах, производственных микроконтроллерах и т. д.
Содержание
Физические адреса
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды. Переход от виртуальных адресов к физическим может осуществляться двумя способами.
В первом случае замену виртуальных адресов на физические делает специальная системная программа - перемещающий загрузчик. Перемещающий загрузчик на основании имеющихся у него исходных данных о начальном адресе физической памяти, в которую предстоит загружать программу, и информации, предоставленной компилятором об адресно-зависимых константах программы, выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими.
Второй способ заключается в том, что программа загружается в память в неизмененном виде в виртуальных адресах, при этом операционная система фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический.
Второй способ является более гибким, он допускает перемещение программы во время ее выполнения, в то время как перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти. Вместе с тем использование перемещающего загрузчика уменьшает накладные расходы, так как преобразование каждого виртуального адреса происходит только один раз во время загрузки, а во втором случае - каждый раз при обращении по данному адресу.
Иногда (обычно в специализированных системах) заранее точно известно, в какой области оперативной памяти будет выполняться программа, и компилятор выдает исполняемый код сразу в физических адресах.
1. Часть операционной системы, постоянно находящаяся в оперативной памяти и управляющая всей ОС - это .
A)Ядро
B)вся ОС постоянно находится в оперативной памяти
C)программа контроля, тестирования и диагностики компьютера
D)все запущенные на компьютере программы постоянно находятся в оперативной памяти
2. Сервер — это:
A)персональный компьютер, подключенный к сети, через который пользователь получает доступ к ее ресурсам
B)компьютер, подключенный к сети и обеспечивающий ее пользователей определенными услугами
C)два или более абонентов вычислительной сети, соединенных каналом связи
D)персональный компьютер
3. Сеть, объединяющая компьютеры на небольшой территории внутри одного или нескольких зданий в радиусе 1-2км, называется .
A)городской (областной) сетью
B)локальной сетью
C)глобальной сетью
D)всемирной паутиной
4. Что из перечисленного не является функцией операционной системы?
A)обеспечение обмена данными с внешними устройствами
B)обеспечение запуска и выполнения программ
C)обеспечение информационной безопасности и сохранности информации на информационных носителях
D)распределение ресурсов
5. Под термином "поколение ЭВМ" понимают.
A)все счетные машины
B)все типы и модели ЭВМ, построенные на одних и тех же научных и технических принципах
C)совокупность машин, предназначенных для обработки, хранения и передачи информации
D)все типы и модели ЭВМ, созданные в одной и той же стране
6. Машины первого поколения были созданы на основе.
A)транзисторов
B)электронно-вакуумных ламп
C)зубчатых колес
D)реле
7. Дано: а = 2010, b = 228. Какое из чисел с, записанных в двоичной системе, отвечает условию b < c < a ?
8. В некотором городе автоматический турникет в автобусе при проходе пассажира в салон записывает в память мини-компьютера следующую информацию: с использованием минимально возможного количества бит (n бит) регистрируется номер остановки, на которой сел пассажир, следующие m бит регистрируют номер проездного билета пассажира (также с использованием минимально возможного количества бит). Чему равно значение n + m, если в городе на пути автобуса 23 остановки, а проездными билетами пользуются 2010 пассажиров?
9. Известно, что в кодовой таблице ASCII десятичный код символа «1» равен 49. Каков десятичный код символа «9»?
10. Как называется вирус, который внедряется в программы и активируется при их запуске?
11. Какой файл считается зараженным?
A)Если в файле обнаружена картинка
B)Если в файле обнаружена лишний символ
C)Если в файле обнаружен шифр
D)Если в файле обнаружен лишний компьютерный код
12. Что нужно сделать, если данные не помещаются в видимой части ячейки?
A)Сделать столбец А шириной во весь экран, а затем строку 1 высотой во весь экран
B)Увеличить ширину ячейки или установить флажок Переносить по словам для данной ячейки
C)Сократить информацию так, чтобы она умещалась по ширине ячейки
D)Найти ячейку пошире и записать информацию туда.
13. Какая программа не является антивирусной?
A)AVP
B)Defrag
C)Norton Antivirus
D)Dr Web
14. Протокол FTP служит для:
15. Аутентификация на основе пароля, переданного по сети в открытом виде, плоха потому что не обеспечивает защиты от:
A)Переадресации
B)Перехвата
C)Перевода
D)атак на доступность
Модульное ядро
Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем. В отличие от «классических» монолитных ядер, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей).
Все модули ядра работают в адресном пространстве ядра и могут пользоваться всеми функциями, предоставляемыми ядром. Поэтому модульные ядра продолжают оставаться монолитными. Модульность ядра осуществляется на уровне бинарного образа, а не на архитектурном уровне ядра, так как динамически подгружаемые модули загружаются в адресное пространство ядра и в дальнейшем работают как интегральная часть ядра. Модульные монолитные ядра не следует путать с архитектурным уровнем модульности, присущий микроядрам и гибридным ядрам. Практически, динамичная загрузка модулей, это просто более гибкий способ изменения образа ядра во время выполнения — в отличие от перезагрузки с другим ядром. Модули позволяют легко расширить возможности ядра по мере необходимости.
Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как от разработчика не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются. Примером может служить VFS — «виртуальная файловая система», совместно используемая многими модулями файловых систем в ядре Linux.
Содержание
Типы архитектур ядер операционных систем
Модульное ядро
Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем. В отличие от «классических» монолитных ядер, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей).
Все модули ядра работают в адресном пространстве ядра и могут пользоваться всеми функциями, предоставляемыми ядром. Поэтому модульные ядра продолжают оставаться монолитными. Модульность ядра осуществляется на уровне бинарного образа, а не на архитектурном уровне ядра, так как динамически подгружаемые модули загружаются в адресное пространство ядра и в дальнейшем работают как интегральная часть ядра. Модульные монолитные ядра не следует путать с архитектурным уровнем модульности, присущий микроядрам и гибридным ядрам. Практически, динамичная загрузка модулей, это просто более гибкий способ изменения образа ядра во время выполнения — в отличие от перезагрузки с другим ядром. Модули позволяют легко расширить возможности ядра по мере необходимости.
Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как от разработчика не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются. Примером может служить VFS — «виртуальная файловая система», совместно используемая многими модулями файловых систем в ядре Linux.
Монолитное ядро
Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Монолитное ядро — старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство UNIX-систем.
Достоинства: Скорость работы, упрощённая разработка модулей. Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. Примеры: Традиционные ядра UNIX (такие как BSD), Linux; ядро MS-DOS, ядро KolibriOS.
Монолитные ядра имеют долгую историю развития и усовершенствования и, на данный момент, являются наиболее архитектурно зрелыми и пригодными к эксплуатации. Вместе с тем, монолитность ядер усложняет их отладку, понимание кода ядра, добавление новых функций и возможностей, удаление «мёртвого», ненужного, унаследованного от предыдущих версий кода. «Разбухание» кода монолитных ядер также повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. Это делает монолитные ядерные архитектуры малопригодными к эксплуатации в системах, сильно ограниченных по объёму ОЗУ, например, встраиваемых системах, производственных микроконтроллерах и т. д.
Комбинация разных подходов
Все подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например, сейчас ядро «Linux» представляет собой монолитную систему с отдельными элементами модульного ядра. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра — так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.
Существуют варианты ОС GNU, в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него крутятся в пользовательском пространстве те же самые процессы, которые при использовании Linux были бы частью ядра. Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляются монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.
Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйверы устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер. Примеры: Windows NT, DragonFlyBSD.
Ядро операционной системы (Kernel) - часть операционной системы: постоянно находящаяся в оперативной памяти, управляющая всей операционной системой, содержащая: драйверы устройств, подпрограммы управления памятью, планировщик заданий, реализующая системные вызовы и т.п.
Все операции, связанные с процессами, выполняются под управлением той части операционной системы, которая называется ядром. Ядро представляет собой лишь небольшую часть кода операционной системы в целом, однако оно относится к числу наиболее интенсивно используемых компонент системы. По этой причине ядро обычно резидентно размещается в основной памяти, в то время как другие части операционной системы перемещаются во внешнюю память и обратно по мере необходимости. Одной из самых важных функций, реализованных в ядре, является обработка прерываний. В больших многоабонентских системах в процессор поступает постоянный поток прерываний. Быстрая реакция на эти прерывания играет весьма важную роль с точки зрения полноты использования ресурсов системы и обеспечения приемлемых значений времени ответа для пользователей, работающих в диалоговом режиме.
Когда ядро обрабатывает текущее прерывание, оно запрещает другие прерывания и разрешает их снова только после завершения обработки текущего прерывания. При постоянном потоке прерываний может сложиться такая ситуация, что ядро будет блокировать прерывания в течение значительной части времени, т. е. не будет иметь возможности эффективно реагировать на прерывания. Поэтому ядро обычно разрабатывается таким образом, чтобы оно осуществляло лишь минимально возможную предварительную обработку каждого прерывания, а затем передавало это прерывание на дальнейшую обработку соответствующему системному процессу, после начала работы которого ядро могло бы разрешить последующие прерывания.
Микроядро
Микроядро – предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Бо́льшая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений.
Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая её работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
Недостатки: Передача данных между процессами требует накладных расходов. Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.
Сервисные процессы (в принятой в семействе 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 для прикладных программ будут предоставляться внешними по отношению к ядру библиотеками (откуда и название архитектуры). Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной ОС, например, реализация СУБД будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии.
Основные функции ядра
Основные функция ядра:Ядро операционной системы, как правило, содержит программы для реализации следующих функций:
- обработка прерываний;
- создание и уничтожение процессов;
- переключение процессов из состояния в состояние;
- диспетчирование ;
- приостановка и активизация процессов ;
- синхронизация процессов ;
- организация взаимодействия между процессами;
- манипулирование блоками управления процессами;
- поддержка операций ввода-вывода;
- поддержка распределения и перераспределения памяти;
- поддержка работы файловой системы ;
- поддержка механизма вызова-возврата при обращении к проце¬дурам;
- поддержка определенных функций по ведению учета работы
- машины.
Виртуальные адреса
Виртуальные адреса вырабатывает компилятор. Так как не известно, в какое место оперативной памяти будет загружена программа, то компилятор присваивает переменным и командам виртуальные (условные) адреса, обычно считая по умолчанию, что программа будет размещена, начиная с нулевого адреса. Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Каждый процесс имеет собственное виртуальное адресное пространство.
Читайте также: