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; просмотров: 1128;