КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Планирование процессов
Существуют два основных типа процедур планирования процесса: вытесняющая и не вытесняющая. Не вытесняющая многозадачность – способ планирования процесса, при котором активный процесс выполняется до тех пор, пока он сам не отдаст управление ОС, который выбирает другой готовый к выполнению в очереди процесс. Вытесняющая многозадачность – здесь решение по переключению процесса, с выполнения одного процесса на выполнение другого, принимается самой программой ОС, а не активной задачей. Основным различием между этим процессом является, степень центрального механизма планировщика задач. Так при вытесняющей многозадачности, механизм планирования сосредотачивается на ОС, и поэтому программист не заботится о том, что будет выполнятся параллельно, при этом ОС выполняет следующие функции: 1) определяет момент снятия с выполнения активной задачи, 2) запоминает контекст, 3) выбирает из очереди задач следующую готовую, 4) запуск на выполнение, загружая контекст. При не вытесняющей многозадачности, механизм планирования распределяется между системой и прикладными программами. ОС формирует очереди задач и выбирает в соответствие с некоторым алгоритмом, другие задачи. Существуют следующие способы реализации взаимно исключения, с целью вмешательства в критическую область одного процесса при нахождении другой: 1) Запрещение прерываний 2) Переменные блокировки При этом может возникнуть проблема, аналогичная со спойлером печати. Т.е. после того как процесс1 считает 0, происходит прерывание по таймеру и второй процесс занимает процессор. Заблокированный процесс будет находиться в режиме заблокирован, проверяет не изменяется ли переменная блокировки. 3) Строковое чередование. Здесь процесс по очереди, используя переменные блокировки.
К недостаткам метода относят: 1.)Заблокированный процесс всегда находится в цикле, проверяя, не изменяется ли переменная. Существуют алгоритмы с активным ожиданием, у которых один общий недостаток: расходуется бесцельно время процессора на циклы проверки переменных. Примитивы взаимодействия процесса. Существуют два примитива описывающих взаимодействие процесса: Sleep – представляет собой системный запрос, в результате вызывающий процесс блокирует, пока его не запустит другой процесс. Wake up – системный запрос, в результате блокирования процесс будет запущен.
Проблемы переполненного буфера (проблема производителя и потребителя). Рассмотрим два процесса, которые совместно используют буфер ограничения размера. При этом первый процесс пишет в буфер, другой считывает данные. Чтобы первый процесс не писал, когда буфер полный, а другой не считывал, когда он пуст, вводится count, для подсчета количества элементов в буфере.
В этой ситуации оба процесса могут попасть в состояние ожидания, если пропадает сигнал активации. Следует алгоритму: 1- Процесс считал count=0, но заблокировать еще не успел. 2- Планировщик передает управление процессом А, которое выполнит все до wake up, пытаясь разблокировать процесс В. 3- Планировщик передает управление процессу В, которое блокирует и больше сигнала на разблокировку не получит. Семафоры. (1965г. Дейкстра) Предложил использовать целую переменную для подсчета сигнала запуска. Предложен новый тип переменных называемых семафоры, значения которых могут быть 0 – в случае отсутствия сохранения сигнала активации или некоторым положительным числом соответствующим количеству отложенных активизирующих сигналов. Предложено две операции down и up. Так заблокированный процесс down проверяет семафор, и если он =0, то он блокирует процесс, если не =0 то процесс становится активным и значение семафора уменьшается на 1. Up увеличивает значение семафора на 1 или разблокирует процесс находящийся в ожидании. Up и down выполняются как элемент действия, т.е. процесс не может быть блокирован, во время выполнения этих операций.
Дата добавления: 2014-01-20; Просмотров: 318; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |