Материал: 6261

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

146

Уникальные свойства процесса init делают его особенным в системе:

•он не имеет родительского процесса, а создается ядром ОС;

•обладает свойствами родительского процесса, но не обладает свойствами дочернего процесса;

•выполняет сугубо системные функции, организуя работу других процессов;

•его удаление означает остановку работы ОС.

Особая важность процесса init делает его объектом постоянных исследований и усовершенствований. Более подробно этот аспект мы изучим в подразделе 6.6 - «Четыре подхода к управлению процессами». Здесь же, мы отметим разные подходы по его созданию ядром ОС.

Классический подход создания процесса init предполагает следующую последовательность действий ПО ядра ОС и вспомогательного ПО ЭВМ:

•загрузка ядра ОС с помощью вспомогательного ПО ЭВМ (загрузчика);

•передача управления (функционирования) от загрузчика ядру ОС;

•работа ядра в активном режиме, в котором оно инициализирует свои пара-

метры, создает нужные структуры, инициализирует основные устройства ЭВМ, находит и монтирует корневую файловую систему, создает среду для пользовательского режима, находит в корневой ФС исполняемый файл init (обычно /sbin/init) и, на основе его, создает структуры для первого процесса;

•переключение ядра в пассивный режим осуществляется передачей управления (функционирования) подсистеме управления процессами;

•работа ядра в пассивном режиме, в котором оно, взаимодейтсвуя с оборудо-

ванием ЭВМ и переключая процесс, ожидает от процессов запросы на системные вызовы и выполняет их.

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

•загрузка ядра ОС также осуществляется с помощью загрузчика;

•передача управления (функционирования) от загрузчика ядру ОС дополняется передачей ядру массива данных, содержащих временную ФС;

•работа ядра в активном режиме, в котором оно инициализирует свои пара-

метры, создает нужные структуры, инициализирует основные устройства ЭВМ, распаковывает временную файловую систему и выбирает вариант создания первого процесса: если в корне ФС имеется сценарий init, то создаются структуры для файла /bin/sh, иначе создаетя среда для файла /sbin/init;

•переключение ядра в пассивный режим осуществляется по классической схеме;

•работа ядра в пассивном режиме осуществляется по классической схеме.

Замечание

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

147

6.3 Состояния процессов в ядре ОС

Все процессы ОС выполняются в режиме пользователя. Управление работой процессов осуществляет ядро ОС. Для организации управления процессами ядро ОС:

•присваивает процессу уникальный идентификатор PID;

•выделяет процессам для работы некоторые кванты времени t;

•переводит процесс в одно из состояний, обеспечивая мультипрограммный режим работы ОС.

Для реализации мультипрограммного режима ОС в подсистеме управления процессами выделена отдельная подсистема - планировщик, показанная на рисунке 6.2.

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

Замечание

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

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

Рисунок 6.3 — Модель планирования с двумя состояниями

148

Классическая для UNIX-систем схема планирования, показанная на рисунке 6.4, учитывает три состояния: готовность, выполнение и ожидание. Она обеспечивает более адекватные алгоритмы планирования.

Рисунок 6.4 — Классическая модель планирования с тремя состояниями

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

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

Обе схемы, показанные на рисунках 6.3 и 6.4, предполагают, что процесс существует в системе и его выполнение может быть многократно прервано и продолжено. Чтобы обеспечить прерывание и продолжение процесса, реализуются структуры данных, которые соотносятся с понятиями контекста и дескриптора процесса, а также — с очередью процессов.

Контекст процесса — данные о состояние операционной среды, отображаемые состоянием регистров и программного счетчика процессора и режимом его работы, указателями на открытые файлы ОС, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и другими подобными сведениями.

149

Дескриптор процесса — более оперативная и конкретная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента процесса и другая информация.

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

Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.

Таким образом, обеспечить планирование процесса - это значит:

•создать информационные структуры, описывающие данный процесс: его дескриптор и контекст;

•включить дескриптор нового процесса в очередь готовых процессов;

•загрузить кодовый сегмент процесса в оперативную память или в область

свопинга.

Более развитая модель планирования, показанная на рисунке 6.5, содержит пять состояний процесса. Она содержит три состояния классической модели, но еще учитывает создание и завершение процесса, что соотвествует полному «жизненному циклу процесса».

Рисунок 6.5 — Модель планирования с пятью состояниями

Замечание

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

Целенаправленное обеспечение «жизненного цикла процессов» называется стратегией диспетчеризации (стратегии планирования).

Все стратегии планирования процессов предназначены для достижения различных целей и эффективны для разных классов задач.

Различные ОС ориентированы на различные классы задач и реализуют различные среды исполнения процессов.

В общем случае, можно выделить три среды, которые формируют ОС:

150

•Системы пакетной обработки данных;

•Интерактивные системы;

•Системы реального времени.

6.4 ОС реального времени

Специализация ОС на решение определенного класса прикладных задач отражается не только в их названии, а в первую очередь влияет на стратегии диспетчеризации.

Системы пакетной обработки данных — подход к диспетчеризации, который использовался в первых ОС и супервизорных системах, когда пользователь сам не запускал программу (задачу), а относил ее на ВЦ (вычислительный центр) и забирал результат через некоторый промежуток времени.

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

Часто, планирование осуществлялось ручным способом:

•маленькие по времени задачи решались в дневное время;

•большие по времени задачи решались ночью.

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

Системы реального времени - допускают интерактивное взаимодействие с пользователем, но ориентированы на автоматическое управление различными техническими системами. Поскольку требования к стратегии планирования определяется требованиями к прикладной задаче управления, то критерии ОС реального времени должны выражаться через терминологию задач.

Основные требования к задачам реального времени:

•окончание работы к сроку и исключение потери данных;

•предсказуемость, которая предполагает предотвращение деградации качества

в мультимедийных системах.

Общая стратегия планирования в таких системах - запуск на выполнение каждого процесса через интервал времени, не превышающий некоторого значения T.

Источник: https://studfile.net/preview/16438529/