Student.gomel.by
На главную ... Контакты ... Университеты ... Частые вопросы ...
Заказать курсовую ...
Репетитор по информатике ...
Условия ...
Так сколько же стоит?


Синхронизация процессов


Активность - последовательное выполнение ряда операций, направленных на достижение определенной цели.

Набор активностей детерминирован, если всякий раз при псевдопараллельном исполнении для одного и того же набора входных данных он дает одинаковые выходные данные.

Набор входных переменных программы R(P) - read.

Набор выходных переменных программы W(P) - write.

Достаточные условия Бернстайна проверяет набор на детерминированность. Если для двух данных активностей P и Q: 1. пересечение W(P) и W(Q) пусто; 2. пересечение W(P) с R(Q) пусто; 3. пересечение R(P) и W(Q) пусто, тогда выполнение P и Q детерминировано.

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

Выполнить алгоритм синхронизации двух процессов (Р0, Р1) «переменная – замок», использующих общие ресурсы. Алгоритм планирования процессов Round Robin (RR), величина кванта времени 3.

КС – выполнение критической секции, ГК – готовность критической секции к выполнению, И – выполнение не критической секции, Г – готовность некритической секции к выполнению.

Выделим серым фоном кванты времени, согласно механизма планирования Round Robin (RR), Они будут равными промежутками, так как процессы вступают в работу с 0-го момента времени и непрерывны. Процессы постоянно выполняются. Если бы у них не было общих ресурсов и не было бы разделение времени, то у процессов было бы состояние «И» постоянно. Так как есть разделение времени, то процессы не могут быть одновременно в состоянии «И». Они чередуют состояния «Г» и «И». Так как есть общие ресурсы (использование их приводит к входу в критическую секцию), то состояние чередуется между «ГС» и «КС». Получается: когда процессу выделяется квант времени (по механизму планирования Round Robin (RR)), то он выполняется без общих ресурсов «И» с общими ресурсами «КС», или ожидает «Г» или «ГС» соответственно.

2.2 Алгоритм взаимодействия двух процессов «Строгое – чередование» Процессы строго чередуются по входу в критическую секцию.

Алгоритм взаимодействия трех процессов

Алгоритмы синхронизации процессов (Р0, Р1) «переменная – замок», использующих общие ресурсы, при наличии третьего процесса (Р2), не использующего ресурсы процессов Р0, Р1

1. Процесс Р2 появляется каждый 6 квант времени, длительность процесса равна 3 квантам. 2. Алгоритм планирования процессов Round Robin (RR), величина кванта времени 3. 3. Если процесс Р2 выполниться не успел, новый его экземпляр в очередь не ставится. 4. Процесс Р2 не может прервать выполнение критической секции.

Алгоритм синхронизации процессов (Р0, Р1) «строгое чередование», использующих общие ресурсы, при наличии третьего процесса (Р2), не использующего ресурсы процессов Р0, Р1. Процессы чередуются при занимании критической секции.



Алгоритм взаимодействия нескольких процессов

Выполнить алгоритм синхронизации четырех процессов (Р0, Р1, Р2, Р3) «алгоритм булочной», использующих общие ресурсы. При каждой постановке в очередь критической секции, вычисляется номер присваиваемый процессу. Алгоритм планирования процессов Round Robin (RR), величина кванта времени 3. В таблице указывать номер.

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



Жирным выделен процесс, которому присвоен номер. Красный – который по очереди талона попал в КС.