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