Разделы презентаций


Подпрограммы и ввод

Содержание

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

Слайды и текст этой презентации

Слайд 1

Подпрограммы ВводВвод/Ввод/вывод Организация шин

Подпрограммы  ВводВвод/Ввод/вывод Организация шин

Слайд 2
Обычно ПП хранятся во внешней, медленной памяти и извлекаются оттуда

по мере надобности.
В каталоге каждой ПП поставлена в соответствие некоторая

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

Слайд 3Схема взаимодействия ПП с главной подпрограммой
Пусть надо
Z=f(x)sinx+g(x)
В некоторых sinx реализована

еае элементарная, выполняемая одной командой.
Если нет, то можно воспользоваться:

Схема взаимодействия ПП с главной подпрограммойПусть надоZ=f(x)sinx+g(x)В некоторых sinx реализована еае элементарная, выполняемая одной командой. Если нет,

Слайд 4
Далее надо привести к интервалу(0,2Pi)…>30 команд.
Целесообразно составить 2 программы.
В нужном

месте главной программы должна стоять команда безусловного перехода к подпрограмме,

а в конце-команда безусловного перехода к главной.
Далее надо привести к интервалу(0,2Pi)…>30 команд.Целесообразно составить 2 программы.В нужном месте главной программы должна стоять команда безусловного

Слайд 5Схема взаимодействия главной программы и подпрограммы

Схема взаимодействия главной программы и подпрограммы

Слайд 6
Точка входа чаще всего не последняя ячейка подпрограммы-как и у

всякой программы в её конце обычнонаходятся нужные ей константы из

тех, что нецелесообразно записывать в качестве непосредственных адресов.
В ячейке Е находится команда возврата.
Точка входа чаще всего не последняя ячейка подпрограммы-как и у всякой программы в её конце обычнонаходятся нужные

Слайд 7Z=f(x)sinax+g(x)sinbx
Используем одну подпрограмму для sinax, sinbx

Z=f(x)sinax+g(x)sinbxИспользуем одну подпрограмму для sinax, sinbx

Слайд 8Создайте схему взаимодействия вложенных программ

Создайте схему взаимодействия вложенных программ

Слайд 9В связи с использованием ПП возникает ряд проблем:
Вызов ПП и

возврат
Передача параметров
Сохранение регистров
Настройка по параметрам
Настройка по месту

В связи с использованием ПП возникает ряд проблем:Вызов ПП и возвратПередача параметровСохранение регистровНастройка по параметрамНастройка по месту

Слайд 10Вызов ПП и возврат
В ячейках A и D должны быть

команды перехода по адресу D, а команда возврата в ячейке

Е- переменная. Когда главная ПП будет выполняться после вызова из ячейки А, в ячейке Е должна стоять команда перехода по адресу А+1. Если этот участок стоит в цикле, то в Е должен постоянно меняться адрес возврата. Разработано несколько приёмов организации возврата.
Вызов ПП и возвратВ ячейках A и D должны быть команды перехода по адресу D, а команда

Слайд 11Схема с засылкой команды возврата
Засылка в ПП команды возврата

Схема с засылкой команды возвратаЗасылка в ПП команды возврата

Слайд 12Сохранение адреса возврата в регистре

Сохранение адреса возврата в регистре

Слайд 13 Использование стека: 1. Переход к подпрограмме – ПП D 2. Возврат –

БП sp

Использование стека:  1. Переход к подпрограмме – ПП D  2. Возврат – БП sp

Слайд 14Передача параметров
Стандартные ячейки или регистры

Передача параметровСтандартные ячейки или регистры

Слайд 15Передача параметров через косвенный адрес
Аргументов может быть больше, чем регистров.
Аргументы

должны располагаться в памяти в последовательных ячейках в определённом порядке.

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

Слайд 17Передача параметров через стек

Передача параметров через стек

Слайд 18Сохранение регистров
Сохранение регистров в теле подпрограммы
Сохранение в стеке

Сохранение регистровСохранение регистров в теле подпрограммыСохранение в стеке

Слайд 19Настройка по месту
Адреса команд и констант, принадлежащие телу подпрограммы, называются

внутренними

Настройка по месту - надо ко всем внутренним адресам подпрограммы

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

Слайд 21Выполните следующие 3 программы и составьте отчёт
(В отчёте должны быть

составлены схемы вызова программ и написаны комментарии к командам
Загрузка в

стек- push
Выгрузка-pop)
Выполните следующие 3 программы и составьте отчёт (В отчёте должны быть составлены схемы вызова программ и написаны

Слайд 22Обозначение текущего диска и вывод его на экран с поясняющей

надписью

Обозначение текущего диска и вывод его на экран с поясняющей надписью

Слайд 23Вызов подпрограммы без параметров

Вызов подпрограммы без параметров

Слайд 24delay proc                ;Процедура- подпрограмма
push CX                   ;Сохраним СХ основной программы
mov CX,SI               

;Счетчик внешнего цикла
del1: push CX          ;Сохраним его
mov CX,0                 ;Счетчик внутреннего

цикла
del2: loop del2        ;Внутренний цикл (64К шагов)
pop CX                    ;Восстановим внешний счетчик
loop del1                 ;Внешний цикл (2000 шагов)
pop CX                   ;Восстановим СХ программы
ret                            ;Возврат в программу

Подпрограмма задержки с одним параметром, передаваемом в регистре SI

delay proc                ;Процедура- подпрограммаpush CX                   ;Сохраним СХ основной программыmov CX,SI                ;Счетчик внешнего циклаdel1: push CX          ;Сохраним егоmov

Слайд 25Ввод/вывод

Ввод/вывод

Слайд 27Операции ввода/вывода
Программно управляемый ввод/вывод
Ввод/вывод по прерываниям
Прямой доступ к памяти

Операции ввода/выводаПрограммно управляемый ввод/выводВвод/вывод по прерываниямПрямой доступ к памяти

Слайд 28Программно управляемый ввод/вывод
Взаимодействие происходит так:
Команды программы выдают адрес устройства и

вид работ (out)
Следующая команда запрашивает готовность устройства(читает содержимое регистра состояния)
Команда

программы требует записать слово, сообщая из какой ячейки памяти требуется читать и в какое место внешнего устройства направить
Контроллер принимает слово из памяти в свой регистр данных, устанавливает в 0 признак готовности («занято»), а затем передаёт слово в указанное место внешнего устройства; по окончании работы контроллер заносит в свой регистр состояния единицу.
Во время работы контроллера программа выполняет цикл «ожидания», затем продолжает работу.


Программно управляемый ввод/выводВзаимодействие происходит так:Команды программы выдают адрес устройства и вид работ (out)Следующая команда запрашивает готовность устройства(читает

Слайд 29Взаимодействие центрального процессора с устройством вывода на печать

Взаимодействие центрального процессора с устройством вывода на печать

Слайд 30На отрезках t1÷t2 и t3 ÷t4 центральный процессор выполняет циклы

ожидания. На t2 ÷ t3 – передаёт символ контроллеру.
Аналогично при

вводе.
На отрезках t1÷t2 и t3 ÷t4 центральный процессор выполняет циклы ожидания. На t2 ÷ t3 – передаёт

Слайд 31Ввод/вывод по прерываниям
Основным недостатком программно управляемого В/ВЫВ являются простои

процессора в ожидании, пока модуль ввода/вывода выполнит очередную операцию. Альтернативой

может быть вариант, когда ЦП выдает команду В/ВЫВ, а затем продолжает делать другую полезную работу
Ввод/вывод по прерываниям Основным недостатком программно управляемого В/ВЫВ являются простои процессора в ожидании, пока модуль ввода/вывода выполнит

Слайд 32Прерывания
Определение. Прерывание программы – это свойство ВС при возникновении особых

событий временно прекратить выполнение текущей программы и передать управление программе,

специально предусмотренной для обработки данного события.

ПрерыванияОпределение. Прерывание программы – это свойство ВС при возникновении особых событий временно прекратить выполнение текущей программы и

Слайд 33В системе с прерыванием каждое программно-независимое событие (источник прерывания) должно,

если оно может повлиять на ход обработки, сопровождаться сигналом, говорящим

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

Слайд 35Так как функции по сохранению и восстановлению состояния прерванной программы

возлагаются на саму прерывающую программу, то последняя должна состоять из

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

Так как функции по сохранению и восстановлению состояния прерванной программы возлагаются на саму прерывающую программу, то последняя

Слайд 36
Процедура ввода блока данных по прерываниям реализуется следующим образом. ЦП

выдает команду чтения, а затем продолжает выполнение других заданий,  например

другой программы. Получив команду, МВВ приступает к вводу элемента данных с ВУ. Когда считанное слово оказывается в регистре данных модуля, MBB формирует на управляющей линии сигнал прерывания ЦП. Выставив запрос, МВВ помещает введенную информацию на шину данных, после чего он готов к следующей операции В/ВЫВ. ЦП в конце каждого цикла команды проверяет наличие запросов прерывания. Когда от МВВ приходит такой сигнал, ЦП сохраняет контекст текущей программы и обрабатывает прерывание. В рассматриваемом случае ЦП читает слово из модуля, записывает его в память и выдает модулю команду на считывание очередного слова. Далее ЦП восстанавливает контекст прерванной программы и возобновляет ее выполнение.

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

Слайд 37Этот метод эффективнее программно управляемого В/ВЫВ, поскольку устраняет ненужные ожидания,

однако обработка прерывания занимает достаточно много времени ЦП. Кроме того,

каждое слово, пересылаемое из памяти в модуль В/ВЫВ или в противоположном направлении, как и при программно управляемом В/ВЫВ, проходит через ЦП.

Этот метод эффективнее программно управляемого В/ВЫВ, поскольку устраняет ненужные ожидания, однако обработка прерывания занимает достаточно много времени

Слайд 38Реализация ввода/вывода по прерываниям
При реализации ввода/вывода по прерываниям необходимо дать

ответы на два вопроса. Во-первых, определить, каким образом ЦП может

выяснить, какой из МВВ и какое из подключенных к этому модулю внешних устройств выставили запрос. Во-вторых, при множественных прерываниях требуется решить, какое из них должно быть обслужено в первую очередь.
Сначала рассмотрим вопрос идентификации устройства. Здесь возможны три основных метода:
множественные линии прерывания;
программная идентификация;
векторное прерывание.
Наиболее простой подход к решению проблемы определения источника запроса — применение множественных линий прерывания между ЦП и модулями ввода/вывода, хотя выделение слишком большого количества управляющих линий для этих целей нерационально. Более того, даже если присутствует несколько линий прерывания, желательно, чтобы каждая линия использовалась всеми МВВ. при этом для каждой линии действует один из двух остальных методов идентификации устройства.
При программной идентификации, обнаружив запрос прерывания, ЦП переходит к общей программе обработки прерывания, задачей которой является опрос всех МВВ с целью определения источника запроса. Для этого может быть выделена специальная командная линия опроса. ЦП помещает на адресную шину адрес опрашиваемого МВВ и формирует на этой линии сигнал опроса. Реакция модуля зависит от того, выставлял он запрос или нет. Возможен и иной вариант, когда каждый МВВ включает в себя адресуемый регистр состояния. Тогда ЦП считывает содержимое PC каждого модуля, после чего выясняет источник прерывания. Когда источник прерывания установлен, ЦП переходит к программе обработки прерывания, соответствующей этому источнику. Недостаток метода программной идентификации заключается в больших временных потерях.
Наиболее эффективную процедуру идентификации источника прерывания обеспечивают аппаратурные методы, в основе которых лежит идея векторного прерывания. В этом случае, получив подтверждение прерывания от процессора, выставившее запрос устройство выдает на шину данных специальное слово, называемое вектором прерывания. Слово содержит либо адрес МВВ, либо какой-нибудь другой уникальный идентификатор, который ЦП интерпретирует как указатель на соответствующую программу обработки прерывания. Такой подход устраняет необходимость в предварительных действиях с целью определения источника за­проса прерывания. Реализуется он с помощью хранящейся в ОП таблицы векторов прерывания, где содержатся адреса программ обработки прерываний. Входом в таблицу служит вектор прерывания. Начальный адрес таблицы (база) обычно задается неявно, то есть под таблицу отводится вполне определенная область памяти.
Наиболее распространены два варианта векторной идентификации источника запроса прерывания: цепочечный опрос и арбитраж шины.
Реализация ввода/вывода по прерываниям При реализации ввода/вывода по прерываниям необходимо дать ответы на два вопроса. Во-первых, определить,

Слайд 39Идентификация запроса с помощью вектора прерывания

Идентификация запроса с помощью вектора прерывания

Слайд 40Обработчики прерываний можно считать разновидностью подпрограмм
Главная программа вызывает прерывание
Центральный процессор

сохраняет указатель команд и регистр признаков, устанавливает новое значение указателя

команд
Обработчик прерывания сохраняет все регистры, выполняет обработку прерывания, восстанавливает старые значения регистров, вызывает выход из прерывания
Центральный процессор восстанавливает старое значение указателя команд и регистра признаков
Главная программа продолжает работу

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

Слайд 41Обработчик прерывания и контроллер
Контроллер прерываний — устройство, которое получает запросы на

аппаратные прерывания от всех внешних устройств. Он определяет, какие запросы

следует обслужить, какие должны ждать своей очереди, а какие не будут обслуживаться вообще. Контроллеров прерываний два. Первый контроллер, обслуживающий запросы управляется через порты 20h и 21h, а второй— через порты A0h и A1h.

Обработчик прерывания и контроллерКонтроллер прерываний — устройство, которое получает запросы на аппаратные прерывания от всех внешних устройств. Он

Слайд 42Прямой доступ к памяти
Хотя ввод/вывод по прерываниям эффективнее программно управляемого,

оба этих метода страдают двумя недостатками:
темп передачи при вводе/выводе

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

Прямой доступ к памятиХотя ввод/вывод по прерываниям эффективнее программно управляемого, оба этих метода страдают двумя недостатками: темп

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика