Процессы

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

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

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

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

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

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

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

Инструменты