Основные принципы управления процессором и процессами
1. Тема 4.
“Основные принципы управления
процессором и процессами.”
1. Основные понятия
2. Управление процессором в однопрограммном режиме
3. Управление процессором в режиме мультипрограммирования
3.1. Понятие мультипрограммирования
3.2. Мультипрограммирование в системах пакетной обработки
3.3. Мультипрограммирование в системах разделения времени
3.4. Мультипрограммирование в системах реального времени
2. 1. Основные понятия
Начиная с 1960-х годов в вычислительных системах
используется мультипрограммирование, или
мультизадачность (multitasking) – способ
организации вычислительного процесса, при
котором на одном процессоре выполняются сразу
несколько программ.
3. Основными критериями для оценки эффективности
вычислительной системы являются:
пропускная способность – количество задач, выполняемых
вычислительной системой в единицу времени;
удобство работы пользователей, заключающееся, например, в
том, что они могут одновременно работать в интерактивном
режиме с несколькими приложениями на одном компьютере;
реактивность системы.
4. В настоящее время в большинстве операционных систем
определены два типа единиц работы.
Под процессом (задачей) при этом понимается более
крупная единица работы, требующая для своего
выполнения несколько единиц более мелких работ,
называемых “поток”, или “нить”.
5. Каждый процесс должен иметь возможность влиять только на
принадлежащие ему коды и данные, поэтому в задачи ОС при
управлении процессами входит изоляция одного процесса от
другого.
Реализация этих задач подразумевает выделение операционной
системой каждому процессу виртуального адресного пространства
– совокупность адресов, которыми может манипулировать
программный модуль процесса.
6. Потоки возникли в операционных системах как средство
распараллеливания вычислений.
Конечно, задача распараллеливания вычислений в рамках одного
приложения может быть решена и традиционными способами.
Во-первых, прикладной программист может взять на себя сложную
задачу организации параллелизма, выделив в приложении
некоторую подпрограмму-диспетчер, которая периодически
передает управление той или иной ветви вычислений.
Во-вторых, решением является создание для одного приложения
нескольких процессов для каждой из параллельных работ.
7. В операционной системе наряду с процессами нужен другой
механизм распараллеливания вычислений, который учитывал бы
тесные связи между отдельными ветвями вычислений одного и того
же приложения.
Для этих целей современные ОС предлагают механизм
мпогопоточной обработки (multithreading).
При этом вводится новая единица работы – поток выполнения, а
понятие “процесс” в значительной степени меняет смысл.
Понятию “поток” соответствует последовательный переход
процессора от одной команды программы к другой.
Создание потоков, а не процессов, требует от ОС меньших
накладных расходов.
8. Все потоки одного процесса используют общие файлы,
таймеры, устройства, одну и ту же область оперативной памяти,
одно и то же адресное пространство.
Это означает, что они разделяют одни и те же глобальные
переменные.
Чтобы организовать взаимодействие и обмен данными, потокам
вовсе не требуется обращаться к ОС, им достаточно использовать
общую память – один поток записывает данные, а другой читает
их.
.
9. Итак, мультипрограммирование более эффективно на уровне потоков.
Каждый поток имеет собственный счетчик команд и стек.
Задача, оформленная в виде нескольких потоков в рамках одного
процесса, может быть выполнена быстрее за счет псевдопараллельного
(или параллельного в мультипроцессорной системе) выполнения ее
отдельных частей.
Использование потоков связано с целью создания более читабельных,
логичных программ.
Введение нескольких потоков выполнения упрощает
программирование.
Наибольший эффект от введения многопоточной обработки
достигается в мультипроцессорных системах, в которых потоки, в том
числе и принадлежащие одному процессу, могут выполняться на разных
процессорах действительно параллельно (а не псевдопараллельно).
10. 2. Управление процессором в однопрограммном
режиме
В такой ОС существует два процесса:
системный процесс – процесс выполнения программ ОС и
пользовательский процесс – процесс выполнения программ
пользователя.
11. Переключение “пользовательский процесс – системный
процесс” в однопрограммной ОС связано со следующими
событиями в вычислительной системе:
завершение пользовательского процесса;
обращение пользовательского процесса к системному
процессу для выполнения каких-либо функций ОС.
Переключение “системный процесс – пользовательский
процесс” связано с:
созданием пользовательского процесса;
завершением выполнения функций ОС, используемых
пользовательским процессом.
12. 3.1. Понятие мультипрограммирования
Операционные системы, поддерживающие
мультипрограммирование, в зависимости от выбранного
критерия эффективности вычислительной системы можно
разделить на несколько основных типов:
системы пакетной обработки,
системы разделения времени,
системы реального времени.
13. 3.2. Мультипрограммирование в системах
пакетной обработки
При использовании мультипрограммирования для повышения
пропускной способности компьютера главная цель – минимизация
простоев всех устройств компьютера, и в первую очередь
центрального процессора.
14. Рациональный режим функционирования в системах
пакетной обработки достигается благодаря использованию
следующей схемы функционирования:
в начале работы формируется пакет заданий, каждое
задание содержит требование к системным ресурсам;
из этого пакета заданий формируется
мультипрограммная смесь, т.е. множество одновременно
выполняемых задач.
15. Следствием такой схемы организации
мультипрограммирования в вычислительных системах,
является отсутствие гарантии выполнения какого-либо
задания в течение определенного периода времени.
В задачах, в которых преобладают либо вычисления, либо
ввод-вывод, ускорение почти отсутствует.
Параллелизм в рамках одной задачи невозможен также,
когда для продолжения вычислений необходимо полное
завершение операции ввода-вывода, например, когда
дальнейшие вычисления зависят от вводимых данных.
16. Общее время выполнения смеси задач часто оказывается меньше,
чем их суммарное время последовательного выполнения:
Вычисления А А В В
Ввод-вывод А В
а
Вычисления А В А В
Ввод-вывод А В
Готовность А В
1 2 3 4 5 6 7 8 9 10 11 Т
б
Рис. 2. Время выполнения двух задач: а – в однопрограммной системе;
б – в мультипрограммной системе
17. 3.3. Мультипрограммирование в системах
разделения времени
В том случае, когда критерием эффективности работы
системы является удобство работы пользователя, то
применяется другой способ мультипрограммирования –
разделения времени.
18. В системах разделения времени исправлен основной
недостаток пакетной обработки – изолированность пользователя
от процесса выполнения его задач.
Одной из основных причин, по которой системы разделения
времени обладают меньшей пропускной способностью, чем
системы пакетной обработки, является то, что на выполнение
принимается каждая запущенная пользователем задача, а не та,
которая “выгодна” ОС.
Критерием эффективности систем разделения времени
является не максимальная пропускная способность, а удобство
и эффективность работы пользователя.
19. 3.4. Мультипрограммирование в системах
реального времени
Еще одна разновидность
мультипрограммирования
используется в системах реального
времени, предназначенных для
управления с помощью
компьютера различными
техническими объектами или
технологическими процессами.
Критерием эффективности здесь
является время реакции системы.
20. В системах реального времени:
мультипрограммная смесь отличается от рассмотренных
ранее и представляет собой фиксированный набор заранее
разработанных программ, а выбор программы на выполнение
осуществляется исходя из текущего состояния объекта или в
соответствии с расписанием плановых работ.
не стремятся максимально загружать все устройства,
наоборот, при проектировании программного управляющего
комплекса обычно закладывается некоторый “запас”
вычислительной мощности на случай пиковой нагрузки.