Управление процессами. Переход процесса из состояния в состояние. Операции над процессами

Страницы работы

Содержание работы

Лекция 2. Управление процессами.

Процессы.

Состояния процесса.

Переход процесса из состояния в состояние.

PCB (Process Control Bloc).

Операции над процессами.

Обработка прерываний. Типы прерываний. Переключение контекста.

Ядро операционной системы. Основные функции ядра.

Асинхронные параллельные процессы.

Взаимоисключения.

Критические участки.

Примитивы взаимоисключения.

Процессы.

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

Мы хотим понять, каким образом несколько задач (или пользователей) могут работать на одном компьютере, и при этом иметь иллюзию монопольного использования ресурсов машины. Как удается не помешать выполнению различных задач на общем процессоре и в общем-то общей памяти. Ответ опирается на старый принцип Макиавелли, известный еще с XV века: Разделяй и властвуй.

Макиавелли Николо де Бернардо 1469-1527

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

Впервые термин процесс использовали разработчики ОС MULTICS (MIT, Project MAC Group). За эти годы было много определений понятия процесс. Приведем здесь некоторые из них:

n программа в стадии выполнения

n асинхронная работа

n объект, которому выделяются процессоры

n нечто, что представляется в виде блока управления процессом

n  и т.п.

В UNIX под процессом понимают абстракцию операционной системы представляющую собой ВСЁ необходимое для запуска отдельной (единственной) программы.

В Windows 3.x почти всегда используют термин задача  и лишь изредка – процесс. В Windows NT и  UNIX всегда используют термин процесс. Начиная с Windows 95 понятие задача было официально исключено из терминологии Windows.

В нашем дальнейшем рассмотрении мы будем понимать под процессом последовательный поток выполнения в его собственном адресном пространстве.

Выделим несколько важных моментов в этом кратком определении:

n последовательный поток; следовательно, нет никакой конкуренции внутри процесса - все действия и операции выполняются последовательно.

n в его собственном адресном пространстве - память, выделенная для выполнения процесса, принадлежит только ему и не пересекается с памятью, выделенной для другого процесса (если таковой существует).

И обратите внимание на слово поток – мы еще вернемся к нему.

Состояния процесса. PCB (Process Control Block).

В каждый момент времени состояние процесса описывается некоторой структурой. С помощью этой структуры ОС управляет процессом. В большинстве ОС эта структура носит название Блока Управления Процессом. В Windows NT такая структура называется Process Kernel Object - Объект ядра “процесс”.

В PCB статическое состояние процесса описывается набором переменных, в которых указывается:

n управляющие регистры процесса;

n выделенная процессу память;

n назначенные ему для обмена файлы (потоки); и т.п.

В Windows NT при создании нового процесса в такую структуру следует передать следующую информацию:

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

n командную строку, передаваемую процессу в момент запуска (вспомните переменные функции main ();

n параметры секретности и привилегии запускаемого процесса;

n список переменных окружения для данного процесса;

n текущий каталог, предназначенный процессу;

n специальную структуру, описывающую параметры главного окна процесса (его расположение на экране, заголовок окна, цвета переднего плана и фона и т.п.)

n уникальный идентификатор процесса и счетчик процессов данного типа.

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

Состояние выполнения(running (active) state). Говорят, что процесс выполняется, если в данный момент ему выделен ЦП.

Состояние готовности (ready state). Говорят, что процесс готов, если бы он мог бы сразу использовать ЦП, предоставленный в его распоряжение.

Состояние блокировки (block state). Говорят, что процесс заблокирован, если он ожидает появления некоторого события (например, завершения операции ввода-вывода), чтобы получить возможность продолжать выполнение.

Существуют и другие состояния процесса, но для первоначального обсуждения можно ограничиться этими тремя.

Для простоты рассмотрим машину с одним ЦП, хотя все наши рассуждения нетрудно распространить и на многопроцесорную систему.

В однопроцессорной машине в каждый конкретный момент времени может исполняться только один процесс. Однако несколько процессов могут находиться в состоянии готовности, а несколько  - в состоянии блокировки. Поэтому мы можем создать список готовых (ready list) к выполнению процессов и список заблокированных (blocked list) процессов.

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

Похожие материалы

Информация о работе