Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

3.1. ПРОЦЕССЫ

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

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

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

Предыдущий раздел Оглавление Следующий раздел