Организация вычислительных процессов. Конспект лекций по дисциплине "Системы реального времени". Степанов Б.М. - 14 стр.

UptoLike

Составители: 

Рис.1
Чтобы примитивыготов, ждать и выбор- можно было использовать для управления
процессами с тремя состояниями в них нужно добавить операторы, изменяющие значение
полясигналв дескрипторе.
Эти изменения сводятся к добавлению оператора в процедуры «Готов» и «Выбор» и
несколько сложнее в процедуре «ждать».
Условимся, что если текущий процесс хочет приостановиться с сохранением состоя-
ния готовности, то он должен вначале вызвать процедуру «Готов», а затем процедуру
«Ждать».
Так как переменные, определяющие состояние процесса имеют разные значения, в за-
висимости от того предшествовала ли выполнению процедуры «Готов» процедура «Ждать»,
то процедура «Ждать» по этим значениям может определить, нужно ли переводить процесс в
состояние ожидания.
Реализация выявления состояния процесса в процедуре «Ждать»
1-й случай:
Диспетчер работает с маскированием прерывания.
Рис.2
состояние = false
сигнал = true
ждать
состояние = true
сигнал = true
готов
ждать
Тек
ущ
ий п
р
о
ц
есс^. состо
я
-
Тек
ущ
ий п
р
о
ц
есс^. сигнал
true
false
состояние = true
сигнал = true
состояние = false
сигнал = true
состояние = false
сигнал = false
ждать
готов выбор
активность ожидание
готовность
                                                ждать

                    состояние = false                                 состояние = false
                      сигнал = false                                    сигнал = true

                  ожидание                                                  активность




                                    готов                        выбор



                                            состояние = true
                                              сигнал = true

                                            готовность


                                         Рис.1
       Чтобы примитивы – готов, ждать и выбор- можно было использовать для управления
процессами с тремя состояниями в них нужно добавить операторы, изменяющие значение
поля “сигнал” в дескрипторе.
       Эти изменения сводятся к добавлению оператора в процедуры «Готов» и «Выбор» и
несколько сложнее в процедуре «ждать».
       Условимся, что если текущий процесс хочет приостановиться с сохранением состоя-
ния готовности, то он должен вначале вызвать процедуру «Готов», а затем процедуру
«Ждать».
       Так как переменные, определяющие состояние процесса имеют разные значения, в за-
висимости от того предшествовала ли выполнению процедуры «Готов» процедура «Ждать»,
то процедура «Ждать» по этим значениям может определить, нужно ли переводить процесс в
состояние ожидания.

                                                  состояние = false
                                    ждать           сигнал = true



                                    готов          состояние = true
                                    ждать            сигнал = true



             Реализация выявления состояния процесса в процедуре «Ждать»
1-й случай:
Диспетчер работает с маскированием прерывания.




                               Текущий процесс^. состоя-
                                 true                    false
                                             Текущий процесс^. сигнал




                                               Рис.2