Современные операционные системы

Современные операционные системы
Процессы и потоки / Процессы компьютера

Процессы компьютера




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

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

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



Полное описание: Процессы компьютера




С этим описанием рассматриваются следующие темы:


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

Производительность, оборотное время и степень задействования центрального п ...
Руководители крупных вычислительных центров, в которых запускается множество пакетных заданий, обычно при оценке производительности своей системы берут в расчет три показателя: производительность, оборотное время и степень задействования центрального процессора. Производительность — это количество заданий, выполненных за один час. С учетом всех обстоятельств, выполнение 50 заданий в час считается лучшим показателем, чем выполнение 40 заданий в час. Оборотное время — это среднестатистическое врем ... Читать

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

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

Поведение процесса
На рис. 2.19 показано, что практически у всех процессов чередуются пики вычислительной активности с запросами (дискового) ввода-вывода. Обычно центральный процессор некоторое время работает без остановок, затем происходит системный вызов для чтения данных из файла или для их записи в файл. Когда системный вызов завершается, центральный процессор возобновляет вычисления до тех пор, пока ему не понадобятся дополнительные данные или не потребуется записать дополнительные данные на диск и т. д. След ... Читать