Реферат: Разработка операционных систем

сохраняется состояние П1 в PCB1 , активизируется PCB2

готовый

Выполняемый

готовый

прерывание.

сохраняется состояние П3 в PCB3 , активизируется PCB1

прерывание.

сохраняется состояние П2 в PCB2 , активизируется PCB3

ожидаемый, готовый

Выполняемый

ожидаемый

time

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

На рисунке схематически показано, каким образом операционная система использует process control block для переключения процессора с одного процесса на другой.

Заголовок

Процессы

первый

PCB7

PCB8

в состоянии

“готовый”

последний

Очередь к

первый

магнитной

ленте

последний

Очередь

первый

PCB3

PCB14

PCB6

к

диску №1

последний

Очередь к

первый

PCB5

терминалу

№ 1

последний

1.2. Планирование процессов. Понятие очереди.

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

Распределение процессов между имеющимися ресурсами носит название планирование процессов . Одним из методом планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов. Новые процессы находятся во входной очереди, часто называемой очередью работ - заданий (job queue).

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

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

Процесс в состоянии ожидания завершения операции ввода - вывода находится в одной из очередей к оборудованию ввода - вывода, которая носит название devices queue.

При прохождении через компьютер процесс мигрирует между различными очередями под управлением программы, которая называется планировщик. (scheduler) Операционная система, обеспечивающая режим мультипрограммирования, обычно включает два планировщика — долгосрочный (long term scheduler) и краткосрочный (short term scheduler/CPU scheduler).

Основное отличие между долгосрочным и краткосрочным планировщиками заключается в частоте запуска, например: краткосрочный планировщик может запускаться каждые 100 мс, долгосрочный — один раз за несколько минут.

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

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

Краткосрочный планировщик решает, какой из процессов, находящихся в очереди готовых процессов, должен быть передан на выполнение в CPU. В некоторых операционных системах долгосрочный планировщик может отсутствовать. Например, в системах разделения времени (time sharing system), каждый новый процесс сразу же помещается в основную память.

1.3. Взаимодействие процессов. Пользовательский уровень.

Совместно выполняемые процессы могут быть либо независимыми (independed processes), либо взаимодействующими (cooperating processes). Взаимодействие процессов часто понимается в смысле взаимного обмена данными через общий буфер данных.

Взаимодействие процессов удобно рассматривать в схеме производитель - потребитель (produces - consumer). Например, программа вывода на печать производит последовательность символов, которые потребляются драйвером принтера или компилятор производит ассемблерный текст, который затем потребляется ассемблером.

Для того чтобы процесс - производитель и процесс - потребитель могли заполнять совместно необходимый буфер, заполняемый процессом - производителем и потребляемым процессом - потребителем.

Буфер имеет фиксированные размеры, и, следовательно процессы могут находиться в состоянии ожидания, когда:

· буфер заполнен; ожидает процесс - производитель

· буфер пуст; ожидает процесс - потребитель

Буфер может предоставляться и поддерживаться самой ОС, например с помощью средств коммуникации процессов (IPC — Inter Process Communication), либо организовать прикладным программистом. При этом оба процесса используют общий участок памяти, например процесс - производитель и процесс - потребитель могут использовать следующие переменные:

Var n;

type item=...;

Var buffer:array[0..n-1] of item;

in, out:0..n-1 ; где n - количество адресуемых элементов буфера, Item - имя типа элементов буфера, in, out - указатели, характеризующие заполнение буфера.

Буфер представлен в виде циклически связанного массива адресуемых элементов с двумя указателями - in, out. Указатель in содержит номер первого свободного элемента буфера, а out - первого занятого элемента буфера.

К-во Просмотров: 408
Бесплатно скачать Реферат: Разработка операционных систем