Реализация модели управления вводом/выводом в режиме обмена с опросом готовности

Автор работы: Пользователь скрыл имя, 22 Мая 2013 в 17:00, курсовая работа

Описание работы

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

Содержание работы

Введение 3
1. Управление вводом-выводом в операционных системах. 4
2. Основные концепции организации ввода-вывода в операционных системах 4
3. Режим обмена с опросом готовности устройства ввода-вывода. 8
4. Обмен данными между оперативной памятью и периферийными устройствами (ПУ). 105. Программная поддержка работы портов условного ввода-вывода. 11
6. Программа реализации модели управления вводом/выводом
в режиме обмена с опросом готовности. 12
Заключение 15
Список используемой литературы 16

Файлы: 1 файл

Курсовая работа (Реализация модели ввода-вывода с опросом готовности).doc

— 104.50 Кб (Скачать файл)

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

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

Секция запуска инициирует операцию ввода-вывода. Эта секция запускается  для включения устройства ввода-вывода или просто для инициализации  очередной операции ввода-вывода.

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

Секция завершения обычно выключает устройство ввода-вывода или просто завершает операцию.

Управление операциями ввода-вывода в режиме прерываний требует  значительных усилий со стороны системных  программистов — такие программы создавать сложнее. Примером тому может служить существующая ситуация с драйверами печати. Так, в операционных системах Windows (и Windows 9x, и Windows NT/ 2000) печать через параллельный порт осуществляется не в режиме с прерываниями, как это сделано в других ОС, а в режиме опроса готовности, что приводит к 100-процентной загрузке центрального процессора на все время печати. При этом, естественно, выполняются и другие задачи, запущенные на исполнение, но исключительно за счет того, что упомянутые операционные системы поддерживают вытесняющую мультизадачность, время от времени прерывая процесс управления печатью и передавая центральный процессор остальным задачам.

4. Обмен данными  между оперативной памятью и  периферийными устройствами (ПУ).

4.1. Программно управляемый обмен данными (рис.1). В этом случае передача данных от ПУ в память и  обратно производится через МП в соответствии с микропрограммой, записанной в ОЗУ, МП руководит обменом и операция обмена происходит так же, как и операция основной программы. Операция ввода - вывода активизируется текущей командой программы или запроса от ПУ. При программном управлении передачей данных процессор "отвлекается" от выполнения основной программы на все время операции ввода - вывода, следовательно снижается производительность ЭВМ. Для ввода блока данных  необходимо слишком много операций, таких как преобразование форматов, адресация в памяти, определение начала и конца блока данных. В результате скорость передачи данных снижается. Дешифратор определяет номер ПУ, с которым будет происходить обмен данными в соответствии с программой. Мультиплексор передает данные от одного из ПУ соответствующего номера через МП в ОЗУ. После того, как дешифратор определил номер ПУ и МП послал запрос об обмене данными, МП ждет сигнала готовности от ПУ. Демультиплексор передает данные из ОЗУ на одно из ПУ.


 

 

 

 

 

Рис.1. Программно управляемый  обмен данными.

4.2. Обмен данными с использованием прямого доступа к  памяти (ПДП) (рис.2). При этом МП освобождается от участия в обмене данными. ОЗУ связывается с МП и с аппаратурой, руководящей обменом данных разными шинами.   Обменом данными полностью управляют с помощью аппаратных средств. Инициатором обмена данными является ПУ, которое посылает запрос об обмене данными на флажок запроса ПДП. Флажок запроса активизирует блок ПДП. Блок ПДП посылает в память сигнал чтения или записи и определяет ячейку ОЗУ, с которой начнется обмен данными. Блок ПДП посылает эти сигналы, после того, как получит от МП сигнал подтверждения. Регистр данных передает данные из ОЗУ в ПУ и из ПУ в ОЗУ. При ПДП процессор освобождается от управления операциями ввода - вывода и может параллельно выполнять основную программу. ПДП обеспечивает более высокое быстродействие и более высокую производительность работы ЭВМ.


 

 

 

 

 

 

 

 

 

 

 

 

Рис.2 Обмен данными  с использованием прямого

доступа к  памяти (ПДП).

 

5. Программная поддержка работы портов условного ввода-вывода.

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


 

 

 

 

 

 

 

Рис.3.Блок-схема программной поддержки работы порта условного ввода-вывода.

6. Программа  реализации модели управления  вводом/выводом в режиме обмена с опросом готовности.


Рис.4.Блок-схема программы ввода-вывода в регистре.

 

 

 

 

Программа имеет содержание:

Program Vvod_vivod1;

uses crt;

var

RS,RU,RVD,RVihD:word;

begin

clrscr;

write('RS=');

read(RS);

repeat

if RS=1 then

begin

writeln('Ustanovlen bit zanatosti');

end;

if RS=0 then

begin

writeln('vvedem kod komandi v registr upravlenia');

writeln('kod komandi vivoda raven 1');

write('RU=');

read(RU);

writeln('vvedem dannie v registr dannih');

write('RVD=');

read(RVD);

writeln('peredadim dannie iz RVD v registr vihodnih dannih');

writeln('i ustanovim bit zanitosti');

RVihD:=RVD;

end;

write('RS=');

read(RS);

until RS=9;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

Список используемой литературы

 

1. Гордеев  А.В. «Операционные системы». Учебник для ВУЗов. 2-е издание., Питер, 2004 г., 416 стр.

 

2. Турбо Паскаль  7.0. Самоучитель. Питер, издание BHV, 2003

 

3. Журавлева Е.М. Лекции по предмету операционные системы.

 

4. Таненбаум Э. «Современные операционные системы» 2-е издание., Питер, 2002 г., 1037 стр.




Информация о работе Реализация модели управления вводом/выводом в режиме обмена с опросом готовности