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

26. Модель процесса.

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

В каждый момент времени активен только один процесс

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

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

27 Создание процесса

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

Основные события приводящие к созданию процессов:

Инициализация системы

Выполнение изданного работающим процессом системного запроса на создание процесса.

Запрос пользования на создание процесса.

Инициирование пакетного задания.

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

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

В операционных системах UNIX и Windows, пользователь может одновременно открыть несколько окон, каждому из которых соответствует свой процесс. Пользователь может переключаться между окнами с помощью мыши и взаимодействовать с процессом, например, вводя данные по мере необходимости.

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

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

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