Процессы
Смешанные системы
1. Ядро ОС Linux представляет собой монолитную систему с элементами микроядерной архитектуры. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра, так называемых модулей. Внутри модуля могут использоваться любые экспортируемые ядром функции. В момент загрузки модуля его код загружается на уровни системы с остальной частью ядра.
2. Другим примером смешанного подхода может служить возможность запуска ОС с монолитным ядром под управлением микроядра. Так устроены 4.4 BSD и MKLINUX, основанные на микроядре MACH. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами осуществляется монолитным ядром. Данный подход сформировался в результате попыток использования преимущества в микроядерной архитектуре, сохраняя по возможности хорошо отлаженный код монолитного ядра.
|
|
3. Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре WINDOWS NT, хотя WINDOWS NT часто называют микроядерной ОС это не совсем так. Микроядро WINDOWS NT слишком велико, более одного МБ. Компонент ядра WINDOWS NT располагается в вытесняемой памяти и взаимодействует друг с другом путем передачи сообщений, как и положено в микроядерной архитектуре. В тоже время все компоненты ядра в одном адресном пространстве, и активно используют структуру данных, как в монолитном ядра. По мнению специалистов MICROSOFT чисто микроядерный дизайн коммерчески не выгоден, поскольку неэффективен. WINDOWS NT- гибридная машина.
Под процессом характеризуют некоторую совокупность набора исполняющих команд, ассоциированных с ним ресурсов и текущего момента их выполнения, находящуюся под управлением ОС. Не существует взаимнооднозначного соответствия между процессами и программами, обрабатываемыми вычислительными системами. В некоторых ОС для работы определенных программ может организовываться более одного процесса или один и тот же процесс может исполнять последовательно несколько различных программ.
Каждый процесс может находиться как минимум в двух состояниях: процесс исполняется, процесс не исполняется.
Процесс, находящийся в состоянии процесс исполняется, через некоторое время может быть переведен в состояние «процесс не исполняется» (приостановлен) или завершен ОС.
Приостановка происходит по двум причинам:
1. для его работы потребовалось какое-либо события;
2. истек временной интервал, отведенный ОС для работы данного процессора.
|
|
После этого ОС по определенному алгоритму выбирает для исполнения один из процессов, находящихся в состоянии процесс не исполняется и переводит его в состояние процесс исполняется. Новый процесс, который появляется в системе, первоначально появляется в состоянии процесс не исполняется.
Разобьем состояние процесс не исполняется на два новых состояния: готовность и ожидание.
Всякий новый процесс, появляющийся в системе, попадает в состояние готовность. ОС, пользуясь каким-либо алгоритмом планирования, выбирает один из процессов и переводит его в состояние исполнения. Состояние исполнения происходит непосредственно выполнение программного кода процессом. Выйти из этого состояния процесс может по трем причинам:
1. ОС прекращает его деятельность;
2. он не может продолжать свою работу пока не произойдет некоторое событие и ОС переводит его в состояние ожидания;
3. в результате возникновения прерывания в вычислительной системе, его возвращают в состояние готовность (прерывание от таймера по истечению предусмотренного времени).
Новая модель хорошо описывает поведение процессов во время их существования. Для полноты картины введены еще два состояния: рождение и закончил исполнение.
Теперь для появления в вычислительной системе процесс должен пройти через состояние рождения. При рождении процесс получает в свое распоряжение адресное пространство, в которое загружается код процесса. Ему выделяются стег и системные ресурсы, устанавливается начальное значение программного счетчика этого процесса. Родившийся процесс переводиться в состояние готовность. При завершении своей работы процесс из состояния исполнения попадает в состояние закончил исполнение.
В Windows NT – 7 различных состояний, в Unics – 9 различных состояний.
Тем не менее, так или иначе, все ОС подчиняются изложенной выше модели.