Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Организация обслуживания прерывания

Изменение приоритета транзакта

Организация циклов

С помощью параметров транзактов в программе можно организовать циклы. Для этого используется блок: loop А [, В]; где

А – параметр транзакта, используемый для организации цикла (переменная цикла). Он может быть именем, положительным целым числом, СЧА, а также косвенным адресом.

В – метка (имя блока) начального блока цикла.

Когда транзакт входит в блок loop, параметр, указанный в операнде А, уменьшается на 1, а затем проверяется его значение на равенство 0. Если значение ≠ 0, то транзакт переходит в блок, указанный в операнде В. Если значение = 0, то транзакт переходит в следующий блок. Переменная блока loop может только уменьшаться.

Пример. assign 1,3 – параметру транзакта № 1 присваивается значение 3.

sis seize PC – заняли устройство под именем РС

…………..

release PC – освобождение устройства loop 1, sis

…………..

Цикл организован по первому параметру транзакта с начальным значением 3. После освобождения устройства проверяется значение первого параметра. Если оно ≠ 0, то транзакт возвращается к блоку с меткой sis, т.е. занимает устройство РС. Всего каждый транзакт будет занимать это устройство 3 раза.

Пример. Определение функции, значение которой зависит от текущего содержимого блока с именем РРР. Будем использовать СЧА Wj – текущее число транзактов, находящихся в блоке j. Вид зависимости задан таблично:

№ 1 – текущее содержимое блока с именем РРР

№ 1   1, 2 или 3 4 или 5   7 и более
Значение функции          
Тогда функция имеет вид: FFF function W$PPP, D5 0,1/3,4/5,2/6,4/7,5

 

Пример. Определение функции, значения которой были бы вдвое больше текущей длины очереди alpha для значений 0, 1, 2, 3, 4. Для остальных значений содержимого очереди значение функции должно быть равно 10. это можно сделать 2-мя способами.

1) с помощью дискретной функции, определяемой шестью значениями;

2) с помощью непрерывной функции, определяемой двумя значениями.

1) long function Q$ alpha, D6

0,0 / 1,2 / 2,4 / 3,6 / 4,8 / 5,10

2) short function Q$alpha, С2

0,0 /5,10

 

Для этого используется блок priority A [, B]; где

А – новое значение приоритета (целое число СЧА или косвенная адресация, РПУ – ошибка);

В – операнд, определяющий режим буферизации

Новое значение приоритета может быть меньше, равно или больше текущего значения приоритета. Приоритет влияет на порядок выбора транзакта.

 

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

Для организации обслуживания в устройстве с прерыванием используют пару блоков preempt (выгрузить) и return.

Блок preempt имеет формат: preempt А, [B], [C], [D], [Е]; где

А – имя устройства, на котором генерируется прерывание;

В – задает приоритетный режим или В = P·R, или режим прерывания, если этот операнд опущен. При работе в приоритетном режиме транзакт, обслуживаемый в данном устройстве, может быть прерван только транзактом с более высоким приоритетом.

С – задает номер или имя блока, который должен попытаться войти в прерванный транзакт;

D – задает номер параметра, связанного с прерванным транзактом. Если прерванный транзакт в момент прерывания направляется в список будущих событий, то остаток времени записывается в заданный параметр.

Е – задает либо не задает режим удаления (RE). В режиме удаления RE прерванный транзакт больше не претендует на использование устройства и пытается войти в блок, заданный операндом С.

СЧА, связанный с данным блоком – Fij, где j - номер устройства. Данный числовой атрибут представляет собой флоп прерывания. 1 – если устройство в состоянии прерывания, 0 – в противном случае.

Для освобождения ранее захваченного прерванного устройства используется блок return А, где А – имя устройства, с которого снимается прерывание.

 

<== предыдущая лекция | следующая лекция ==>
Изменение значений параметров | Проверка числовых выражений
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 437; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.