Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект Лекций ПСРВ.doc
Скачиваний:
142
Добавлен:
12.02.2016
Размер:
2.73 Mб
Скачать

5.1. Типы процессов

Системные процессы.

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

Процессы демоны.

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

Прикладные процессы.

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

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

5.2. Механизмы микроядра

Микроядро-это, по сути, библиотека, содержащая несколько функций, доступ к которым прикладная программа получает с помощью специальных функций — kernel calls (давайте будем называть их по-русски, например "вызовы ядра").

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

  • какой-то процесс выполнил вызов ядра;

  • возникло прерывание;

  • произошла ошибка при выполнении инструкции процессора.

Вызовы ядра в QNX Neutrino вытесняемы, т. е. если вызов ядра выполняется в интересах одного потока и более приоритетный поток тоже вызвал ядро, то "старый" низкоприоритетный вызов уступит процессор "новому". Следовательно, в QNX Neutrino (по сравнению с операционными системами, не поддерживающими вытеснение вызовов ядра):

  • меньше время реакции на события, например на прерывания от аппаратуры;

  • затрачиваются дополнительные ресурсы процессора на сохранение/восстановление контекста вызова ядра.

Обратите внимание, что Администратор процессов ведет себя как вполне обычный процесс.

Убрал фрагмент *1