JMP/LJMP label - безусловный переход

CALL/LCALL addr ret, label - вызов подпрограммы
JZ/LJZ src, bе1 - переход по нулю слова

JZB/LJZB src, label - переход по нулю байта

JNZ/LJNZ src, label - переход по не нулю слова

JNZB/LJNZB src, label - переход по не нулю байта

JMCE/LJMCE src, label - переход по равно при сравнении

JMCNE/LJMCNE src, label - переход по не равно при сравнении

JBT/LJBT src, bit, label - переход по равенству разряда «1»
JNBT/LJNBT src, bit,1аbе1 - переход по равенству разряда «0»

Команда JMP (LJMP) вызывает безусловный переход по указанному адресу.

Команда САLL (LCALL) служит для перехода на подпрограмму с одновременным сохранением текущего значения регистра TP по указанному в команде адресу сохранения. Для возврата из подпрограммы в ней может быть использована команда MOVP TP,addr, возвращающая в регистр TP сохраненное ранее значение. Следует отметить, что средства разработки программ в ПВВ менее гибкие, чем в центральном процессоре. Основное отличие состоит в том, что ПВВ не имеет встроенного стекового механизма. Программы ПВВ могут реализовать стек, используя базовый регистр в качестве указателя стека. С другой стороны, поскольку работа программы канала не подвержена прерываниям, для большинства программ канала стек не требуется.

Команды условных переходов вызывают передачу управления по указанному в них адресу, если для операнда источника выполняется указанное условие, в противном случае выполняется следующая команда. В качестве источника может использоваться как память, так и регистр. Если операндом-источником является регистр, то опрашиваются только 16 младших разрядов, а старшие 4 разряда игнорируются. Для опроса младшего байта регистра следует обнулить разряды с 8-ro по 15-й, а затем использовать команду, предназначенную для слов. Отметим, что команды JMCE/LJMCE и JMCNE/LJMCNE требуют предварительной загрузки регистра МС сравниваемым числом и маской (см. рис. 8.4).

НЕ нашли? Не то? Что вы ищете?

Команды управления процессором ввод-вывода. Позволяют программам каналов управлять ПВВ с помощью сигналов LOCK, SINTRl, SINTR2, задавать требуемую ширину шин и активизировать пересылки с ПДП.

Команда TSL addr, data, label - опрос и установка с монополизацией, используется для организации доступа к общей базе данных в многопроцессорных системах. Значение addr указывает адрес ячейки памяти, выполняющей функции семафора, значение data соответствует константе, запрещающей доступ к общей базе данных, а значение label указывает адрес перехода в случае, когда доступ запрещен. Операции, выполняемые по команде TSL, проиллюстрированы на рис. 8.13.

Если значение label совпадает с адресом команды TSL, то она выполняется циклически до тех пор, пока содержимое ячейки памяти с адресом addr не станет равным нулю. Таким образом, программа канала будет ожидать разрешения доступа к общей базе данных.

Команда WID - установка ширины логической шины, изменяет состояние нулевого и первого разрядов в слове-состоянии программы PSW. Она задает ширину логических шин для пересылки с ПДП. Формат команды следующий: WID - ширина шины источника, ширина шины приемника, где операнды могут указывать как 8, так и 16 разрядов. Единственное ограничение состоит в том, что логическая ширина шины не может превосходить ее физическую ширину. После подачи сигнала RESET ширина логических шин не определена, вследствие этого перед первой пересылкой должна быть выполнена команда WID. После этого логическая ширина шин остается неизменной вплоть до выполнения следующей команды WID или до очередной подачи сигнала RESET на ПВВ.

Рис. 8.13. Операции выполняемые по команде TSL

Команда XFER - вхождение в режим пересылки с ПДП после выполнения следующей (за XFER) команды. Эта команда не имеет операндов и служит для подготовки канала к операциям пересылки с ПДП. При синхронизованной пересылке команда, следующая за XFER, может подготовить синхронизующее устройство, например послать команду пуск или последний из серии параметров. За командой XFER может следовать любая команда, включая WID, кроме команды, изменяющей содержимое регистров GA, GB или GC.

Команда SINTR устанавливает разряд обработки прерываний в слове-состояния программы PSW и активизирует сигнал SINTR соответствующего канала, если разряд обработки прерываний в PSW был установлен. Если разряд управления прерываниями был сброшен (прерывания от этого канала были запрещены), то разряд обработки прерываний устанавливается в «1», а сигнал SINTR не активизируется. Программа канала может использовать эту команду для запроса прерываний у ЦП.

Команда HLT завершает программу канала. По этой команде канал сбрасывает флаг занятости и переходит в пассивное состояние.

Команда NOP соответствует пустой операции и выполняется в течение четырех тактов.

В заключение напомним, что все команды, работающие с операндами, не делают различий между адресами памяти и адресами ВУ. Поэтому они могут оперировать данными как из системного пространства, так и из пространства ввода-вывода.

Сочетание скорости контроллера ПДП, набора команд, ориентированного на ввод-вывод, а также гибкости организации шин делает ПВВ универсальной системой ввода-вывода.

8.4. Процессор операционной системы

По мере совершенствования технологии производства микросхем появилась возможность размещать на кристалле системные средства, необходимые для реализации высокопроизводительных специализированных ВМ. Примером такой микросхемы является Intel 80130, которая совместно с ЦП, работающим в максимальном режиме образует то, что фирма Intel называет процессором операционной системы. Архитектура этой микросхемы представлена на рис. 8.14.

Рис. 8.14. Архитектура микросхемы Intel 80130

В этой ОС имеются три заблокированных состояния: пассивное, приостановленнос и пассивно-приостановленное. Система характеризуется тем, что управляет событиями, а временная зависимость заключается в том, что процесс может быть переведен в пассивное состояние на определенное время. Изменения состояний вызываются программными приказами, которые называются системными вызовами и реализуются с помощью программных прерываний или автоматически после возникновения определенных событий.

Рис. 8.15. Состояния процессов

Возможные изменения показаны стрелками и дугами, причем номера стрелок на рис. 8.15 соответствуют номерам следующих действий:

1. Процесс входит в систему, когда он создается системным вызовом CREATE TASK.

2. Процесс переводится из состояния готовности в состояние выполнения, когда:

его приоритет выше приоритета выполняемого процесса;

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

3. Процесс переводится из состояния выполнения в состояние готовности, когда выполняемый процесс должен уступить ЦП процессу с большим приоритетом, находящимся в состоянии готовности.

4. Процесс переводится из состояния выполнения в пассивное состояние, если выполняемый процесс встречает системный вызов SLEEP или должен ожидать информации, которую он запросил, но которая пока недоступна. В первом случае временное ограничение указывается в вызове SLEEP а во втором процесс должен выразить готовность ожидать запрошенную информацию (через системный вызов).

5. Процесс переходит из пассивного состояния в состояние готовности или из пассивно-приостановленного состояния в приостановленное, когда истекает интервал ожидания, указанный в вызове SLEEP, или когда удовлетворяется запрос процесса.

б. Процесс переходит из состояния выполнения в приостановленное состояние, когда выполняемый процесс приостанавливает себя, выполняя системный вызов SUSPEND TASK. Кроме того, глубина приостановки для процесса устанавливается равной 1.

7. Процесс переводится из состояния готовности в приостановленное состояние или из пассивного состояния в пассивно-приостановленное, когда другой процесс определяет его в системном вызове SUSPEND TASK. Кроме того, его глубина приостановки устанавливается равной 1.

8. Состояние приостановленного или пассивно-приостановленного процесса не изменяется, но производится инкремент его глубины приостановки, когда выполняемый процесс реализует вызов SUSPEND TASK, определяющий процесс. Аналогично осуществляется декремент глубины приостановки приостановленного процесса, когда реализуется вызов RESUME TASK.

9. Приостановленный (пассивно-приостановленный) процесс переводится в состояние готовности (в пассивное состояние), если его глубина приостановки становится равной О.

10. Процесс выходит из системы, если он указан в системном вызове DELETE TASK.

Отметим, что в данной ОС приоритеты имеют не только процессы, находящиеся в состоянии готовности. Процессам, находящимся в приостановленном или пассивно-приостановленном состоянии, также назначаются приоритеты в соответствии с их глубинами приостановки.

На рис. 8.16 показано выполнение процессов 1, 2 и 3 под управлением операционной системы. Предполагается, что все три процесса находятся в системе, причем процесс 1 имеет наивысший приоритет, а процессы 2 и 3 имеют одинаковые, но меньшие приоритеты. Предполагается также, что первоначально процесс 2 находился в состоянии готовности дольше процесса 3. Сплошные линии показывают, какой процесс находится в состоянии выполнения.

Рис. 8.16. Действия под управлением ОС

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

Объекты: задачи (TASK), задания (JOB) , сообщения (MAILBOX), области памяти (REGION), сегменты памяти (SEGMENT). Операции: создать (CREATE), удалить (DELETE), послать (SEND), установить (SET), разрешить (ENABLE) и т. д.

Между процессами с помощью системных вызовов можно реализовать три способа взаимодействия:

обмен информацией (MAILBOX): CREATE MAILBOX, DELETE MAILBOX, SEND MESSAGE, RECEIVE MESSAGE;

взаимоисключения (SUSPEND): SUSPEND TASK, RESUME TASK, SET PRIORITY;

синхронизация (SEND CONTROL), SLEEP, SEND CONTROL, RECEIVE CONTROL, ACCEPT CONTROL, WAIT INTERRUPT, SIGNAL INTERRUPT.

Для выполнения операций динамического выделения памяти можно использовать: CREATE SEGMENT, DELETE SEGMENT, CREATE REGION, DELETE REGION, SEND CONTROL, RECEIVE CONTROL.

Для управления прерываниями: INTERRUPT ENABLE, INTERRUPT DISABLE, SET LEVEL, GET LEVEL, WAIT INTERRUPT, RESET INTERRUPT, EXIT INTERRUPT, SIGNAL INTERRUPT.

Как уже упоминалось, системные вызовы реализованы с помощью программных прерываний и параметры передаются в вызванную процедуру прерывания и из нее через стек. Фрагмент для удаления задачи имеет следующий вид:

push TASK_NO
push EXCPT_PTR
mov bp, sp

lea si, ss[bp+ 2]
mov ax,201h
int 184.

Здесь 201h и 184 представляют собой соответственно код входа и тип прерывания, соответствующие системному вызову DELETE TASK. Число 184 обозначает выполняемую процедуру прерывания, а код входа показывает этой процедуре, что необходимо произвести удаление. Предполагается, что TASK_N0 содержит номер удаляемого процесса, а ЕХСРТ_PTR — указатель процедуры, которая выполняется, если при удалении возник особый случай. Процедура прерывания для доступа к стеку использует регистры bp и si.

Контрольные вопросы

1. В чем заключается основное назначение процессора ввода-вывода?

2. Опишите назначение регистров сборки-разборки.

3. Какие поля образуют регистр управления каналом и как они используются для управления пересылкой ПДП?

4. Каким образом ЦП осуществляет взаимодействие с каналами ПВВ для передачи заданий на обработку ввода-вывода?

5. Какие регистры образуют программную модель ПВВ? Приведите пример использования каждого регистра.

6. Какой тип пересылок не могут осуществлять каналы ПВВ?

7. В чем основные отличия языка ASM-89 от ASM-86?

8. Какая команда осуществляет старт пересылки ПДП и в чем особенность ее исполнения?

9. Объясните особенности переходов между состояниями задачи в ОС реального времени.

10. Опишите структуру управления каналами ввода-вывода.

11. Назовите назначение внешних сигналов SINTR, EXT и DRQ.

12. Как осуществляется начальная инициализация канала?

13. Какая команда удобна для реализации семафора? Приведите пример ее использования.

14. Для чего используется маскированное сравнение?

15. Почему у регистра РР нет соответствующего ему разряда TAG?

16. Для чего служит TAG регистр?

17. Объясните назначение полей регистра управления каналом СС.

18. Как можно осуществлять пересылку ПДП с одновременным перекодированием?

19. Для чего служит слово-состояние программы PSW?

20. Как реализуются переходы по окончании ПДП для разных причин окончания?

21. Что понимается под процессором операционной системы?

22. Что такое внешнее событие?

23. Какой узел служит для обработки большого числа внешних событий?

24. Чем отличаются пассивное и приостановленное состояния процесса?

25. Назовите директивы используемые для координации процессов.

26. С какой целью используется директива DELETE?

27. При каком условии процесс может выйти из приостановленного состояния?


9.1. Особенности и назначение сетей различных типов

Организация и топология компьютерной сети непосредственно зависят от ее назначения. Наиболее очевидны различия в организации сетей разных масштабов. Принято различать сети:

· домашние (квартира, коттедж) – HAN (Home Area Net),

· локальные (комната, здание, комплекс зданий) – LAN (Local Area Net),

· муниципальные (город, область) – MAN (Metropolitan Area Net),

· глобальные (страна, материк) – GAN (Global Area Net).

Для сетей разных масштабов свойственны разные способы организации. Одна из главных причин - качество линий передачи данных - с увеличением масштаба сети диапазон используемых скоростей передачи смещается вниз. Кроме того, в случае локальных сетей, высокие скорости передачи данных позволяют использовать такие варианты организации и режимы работы сети, которые не применимы в глобальных сетях, по крайней мере, на сегодняшний день. Так, из двух основных режимов передачи данных – широковещательного и "точка-точка", первый широко используется в локальных сетях, а второй – в глобальных.

Особенности локальных сетей.

Важной особенностью локальных сетей является обязательное наличие администратора сети. Среди задач администратора следует выделить четыре основных:

надежное функционирование сети (Reliability);

защита от сбоев электропитания (использование UPS);

защита данных (использование Disk Arrays);

разграничение прав доступа (назначение Privileges).

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27