Состояние процесса

Процессы

Смешанные системы

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 различных состояний.

Тем не менее, так или иначе, все ОС подчиняются изложенной выше модели.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: