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 - первого занятого элемента буфера.
| ||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | n-1 | |||||||
Буфер будет полностью заполнен, если выполняется условие
(in+1) mod n = out
Процесс - производитель должен выполнять процедуру записи в буфер типа
Repeat...
продуцируется очередной элемент в Next p
...
while (in+1) mod n = out do no_op;
buffer (in):=next p;
in:=(in+1) mod n;
until false
где Next p - локальная переменная процесса - производителя, в которой хранится очередной продуцируемый элемент
no_op - пустой оператор
Процесс - потребитель должен выполнять процедуру чтения из буфера типа
Repeat
while in = out do no_op;
next p := buffer (out);
out:=(out+1) mod n;
...
потребляется очередной элемент из Next
...
until false
... циркуляр руководства компании, #321/A, определяющий количество глюков для каждой версии Windows. Ю.Н.: - Но зачем?! С.Б.: - Потому что Microsoft не хочет резать курицу, несущую золотые яйца. Представьте себе, что мы выпустили бы на рынок идеальную операционную систему, каковой на самом деле является Windows. Рынок был бы насыщен очень быстро, после чего пользователи потеряли бы всякий стимул
... менеджмента в управлении операционной системой Операционный менеджер по своему положению находится у истоков формирования миссии и стратегии операционной системы и эффективного регулирования ее ресурсами. И, естественно, разработка эффективной операционной стратегии зависит от «хороших» стратегических и тактических решений операционного менеджера. В данном случае стратегические решения имеют ...
... доступа к данным препятствует как несанкционированному использованию информации, так и распространению вредоносных кодов в системе. Глава 2. Производители программного обеспечения Разумеется, многофункциональность ПК определяет не операционная система, а программное обеспечение, используемое на нем. Именно эти продукты позволяют использовать компьютер в различных производственных сферах. И, ...
... ориентированы на 32 разрядные шинные архитектуры компьютеров с процессорами 80386, 80486 или Pentium. Фирма Novell также подготовила варианты сетевой ОС NetWare, предназначенные для работы под управлением многозадачных, многопользовательских операционных систем OS/2 и UNIX. Версию 3.12 ОС NetWare можно приобрести для 20, 100 или 250 пользователей, а версия 4.0 имеет возможность поддержки до 1000 ...
0 комментариев