PREEMTIVE А,B,C,D,E
A-имя устройства
B-PR - приоритет
C-метка блока, куда поступит вытесненный из устройства транзакт
D-номер параметра вытесняемого транзакта, в который записывается значение оставшегося времени пребывания на устройстве этого транзакта
E- RE если операнд существует, то вытесненный транзакт не имеет право занимать это устройство
Операнды, кроме А, могут отсутствовать.
Если операнд В отсутствует, то остальные игнорируются.
Пр.: (фрагментарный)
| .......................... | ||
| SEIZE | PROC | |
| ADVANCE | ||
| RELEASE | PROC | |
| ........................... | ||
| PREEMTIVE | PROC – транзакт захватывает устройство PROC | |
| ADVANCE | ||
| RETURN | PROC | |
| .......................... | ||
| PREEMTIVE | PROC,PR – если транзакт-захватчик имеет олееысокий приоритет, чем транзакт-захватчик уже находящийся в устройстве, то происходит вытеснение. если транзакт-захватчик имеет более высокий приоритет, чем транзакт-захватчик уже находяшийся в устройстве, то происходит вытеснение. |
* более высокий приоритет, чем транзакт-захватчик уже находящийся в * устройстве, то происходит вытеснение.
| ADVANCE | ||
| RETURN | PROC | |
| .......................... |
Лекция №13
Продолжим решение задач. Если ОП моделировать с помощью GENERATE, то прервать генерацию невозможно, следовательно надо заменить GENERATE 100,7 на
| GENERATE | ,,,,,1 | |
| N | SEIZE | |
| ADVANCE | 100,7 | |
| SPLIT | 1,N | |
| RELEASE | ||
| ........................... | ||
| UNLINK | ||
| TRANSFER | ,K | |
| .......................... | ||
| PREEMTIVE | 5,PR,M,,RE | |
| ADVANCE | ||
| RETURN | ||
| M | TERMINATE | |
| K | ........................... |
Пример 13.1
поток студентов Пр.
телефон
|
К преподавателю существует очередь студентов, но телефонный звонок прерывает ответ очередного студента, а после окончания разговора по телефону происходит возврат к дообслуживанию, но для того чтобы продолжить необходимо некоторое время.
При составлении программы будем учитывать, что звонок, появившийся во время разговора по телефону, должен быть аннулирован.
Версия 1:
* Студенты
| GENERATE | ,,,D | |
| QUEUE | BUFF | |
| SEIZE | PROF | |
| DEPART | BUFF | |
| ASSIGN | 5,1000,3 | |
| ADVANCE | P5 | |
| RELEASE | PROF | |
| TERMINATE |
* Телефонные звонки
| GENERATE | A,B,,,1 | |
| GATE NI | PROF,N | |
| PREEMTIVE | PROF,PR,,ADD,5 | |
| ADVANCE | C,D | |
| RETURN | PROF | |
| N | TERMINATE | |
| ADD | ASSIGN | 5+,300 |
| TRANSFER | ,S |
Рассмотрим блок GATE NI PROF,N, в котором NI - это стандартный числовой атрибут. Он равен 1, если устройство не захвачено транзактом-захватчиком, но оно может быть занято (I - это СЧА обратный к NI). Транзакт пройдет дальше, если устройство не занято транзактом-захватчиком в противном случае - поступит на метку N.
Версия 2:
* Студенты
| GENERATE | ,,,D | |
| QUEUE | BUFF | |
| SEIZE | PROF | |
| DEPART | BUFF | |
| ADVANCE | 1000,3 | |
| S | RELEASE | PROF |
| TERMINATE |
* Телефонные звонки
| GENERATE | A,B,,,1 | |
| GATE NI | PROF,N | |
| PREEMTIVE | PROF,PR,,ADD,5 | |
| ADVANCE | C,D | |
| RETURN | PROF | |
| N | TERMINATE | |
| ADD | ASSIGN | 5+,300 |
| ADVANCE | P5 | |
| TRANSFER | ,S |
Дата добавления: 2016-11-04; просмотров: 1265;

поток студентов Пр.










