Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
imit_Model_lektsii.doc
Скачиваний:
8
Добавлен:
22.09.2019
Размер:
427.01 Кб
Скачать

Захват устройства

Для описания устройства у нас есть два блока

SEIZE

9

ADVANCE

RELEASE

9

Существует возможность занять устройство до истечения времени, указанного в блоке ADVANCE. Для этого введем два новых блока

PREEMTIVE

9 - захватить устройство

ADVANCE

RELEASE

9 - освободить устройство

Транзакт, который попал на блок PREEMTIVE 9 вытесняет транзакт, который находился в устройстве 9.

Вытесненные транзакты поступают в цепь вытеснений.

Рассмотрим блок

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

5

ADVANCE

100,7

SPLIT

1,N

RELEASE

5

...........................

UNLINK

TRANSFER

,K

..........................

PREEMTIVE

5,PR,M,,RE

ADVANCE

0

RETURN

5

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]