Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ЭВМиПУ.docx
Скачиваний:
61
Добавлен:
03.05.2015
Размер:
9.95 Mб
Скачать

1. Какой принцип управления операционной системой драйверами позволяет реализовать многозадачный режим работы? Каким образом распределяется память между различными задачами?

Драйвера входят в состав ОС. Структура драйвера, схема вызова драйвера ОС и принцип обращения программ к драйверам зависит от типа ОС. Однако все ОС базируются на принципах MS – DOS.

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

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

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

Драйверы устройств решают две основные задачи.

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

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

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

  1. имя дополнительного логического устройства AUX: присвоено порту COM1:, являющемуся первым из нескольких подключённых к ЭВМ последовательных адаптеров.

  2. Имя логического принтера PRN: присвоено первому порту принтера LPT1:. Поэтому, если назначение имени PRN не изменено, оба имени, и PRN:, и LPT1:, можно использовать для обращения к одному и тому же устройству.

  3. Устройство NUL: является в DOS специальным устройством. Оно выполняет функцию “бездонной корзины” - при операциях вывода на него данные просто исчезают.

Обобщённый алгоритм обращения к устройствам любого типа следующий.

  1. Указание имени устройства при помощи функции 3Dh.

  2. Обращение к устройству при помощи вызова соответствующих функций DOS.

(стандартный набор функций: чтение, запись т.д. ).

  1. Перевод функции в некоторую команду (однотипные команды).

  2. Передача по команде управления определенным наборам системных программ (драйверами). Эти программы неодинаковы для разных типов устройств.

Схема вызова драйвера устройства

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

Далее рассмотрим, как ОС DOS взаимодействует с драйверами. При вызове драйвера устройства прикладной программой операционная система формирует в ОЗУ так называемый заголовок запроса, который представляет собой пакет данных фиксированного размера и формата (рис. 2.2). Адрес заголовка запроса DOS помещает в регистры ES и BX и вызывает драйвер. Драйвер, свою очередь, считывает адрес из этих регистров и затем считывает из памяти и сам пакет данных, из которого он

(код удачного завершения операции, код ошибки и т.д.). Если драйвер взаимодействует с устройством символьного типа, то в поле «адрес данных» записывается сам передаваемый символ. Если драйвер взаимодействует с устройством блочного типа, то в поле «адрес данных» записывается начальный адрес блока данных в ОЗУ.

4.

2. Каким образом в драйвере организована таблица команд и как осуществляется перемещение по этой таблице? При каком вызове драйвера ( первом или втором) осуществляется передача ему кода команды, а при каком – поиск требуемой команды в таблице?

Имена стандартных устройств в DOS

Имя устройства в DOS Стандартное устройство

CON: Клавиатура/экран (консоль)

COM1: Последовательный порт 1

AUX: Дополнительный порт (идентичен com1:)

COM2: Последовательный порт 2

LPT1: Порт принтера 1

LPT2: Порт принтера 2

LPT3: Порт принтера 3

PRN: Логический порт принтера (идентичен lpt1:)

NUL: Пустое устройство

CLOCK$ Программные часы

A: Первый дисковод

B: Второй дисковод

C: Жёсткий диск (как правило)

C: Жёсткий диск (как правило)

При обращении к устройству CON: (консоли) в программе при организации вывода происходит обращение к видеомонитору, подключённому к видеоконтроллеру.

Имя дополнительного логического устройства AUX: присвоено порту COM1:, являющемуся первым из нескольких подключённых к ЭВМ последовательных адаптеров.

Устройство NUL: является в DOS специальным устройством. Оно выполняет функцию “бездонной корзины” - при операциях вывода на него данные просто исчезают. Такое устройство может быть полезным, если пользователю не нужны данные, которые выводит какая-нибудь программа.

Устройство CLOCK$ является виртуальным для получения доступа к системной дате и времени через стандартный механизм ввода/вывода.

Отличия структуры драйвера

в операционных системах MS-DOS и Windows

Структура и принципы написания драйверов для ОС Windows в основном такие же, как и для ОС MS-DOS. Однако возникают проблемы при создании драйвера прерываемого устройства, то есть драйвера с процедурами обработки прерываний. В частности необходимо разделить компоненту обработки прерываний от компоненты приложения. Вместо единой программы, управляющей, как процедурой прерываний, так и интерфейсом пользователя, что характерно для ОС MS-DOS, необходимо разделить эти функции на отдельные программные модули, называемые динамической библиотекой (DLL) и интерфейсом программы.

Для написания приложений под Windows чаще всего используют только два типа сегментов: перемещаемый (movable) и выгружаемый (discardable).

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

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

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

Когда приложение системы Windows выполняет функцию MS-DOS ввода/вывода и процессор при этом работает в реальном режиме, устройство может прервать центральный процессор. По умолчанию если библиотека DLL обеспечила связь с прерыванием, то система Windows переключит процессор в защищенный режим для обработки прерывания и, как только процедура прерываний завершит работу, переключит центральный процессор обратно в реальный режим для продолжения функций системы MS-DOS. Если необходимо ускорить среднее время ответа, нужно предотвратить переключение процессора в защищенный режим, если он получает прерывание, работая в реальном режиме.

Структура взаимодействия драйвера для ОС MS-DOS и Windows представлена на рис. 3.1. Приложению MS-DOS для работы с устройством посредством драйвера необходимо использовать программный интерфейс драйвера – стандартную часть для драйверов различных устройств с документированными командами и их параметрами. Программный интерфейс драйвера инициирует работу процедуры прерываний для завершения необходимых приложению действий с устройством. Работа процедуры прерываний с устройством идет напрямую, через порты или стандартные интерфейсы Centronics и RS-232C.

Приложение

Прогр аммный инте рфейс дра йвера

Проц едура прер ываний

Периферийное устройство

Рис. 3.1. Структура взаимодействия приложения, драйвера и периферийного устройства в ОС MS-DOS (а) и Windows (б)

В операционной системе Windows распределение программных модулей немного отлично от распределения в ОС MS-DOS. Во-первых, программный интерфейс драйвера зачастую присутствует в самом приложении. Процедура обработки прерываний собственно является программой драйвера, выполненной в виде динамической библиотеки DLL. В некоторых особенных случаях для обеспечения работы драйвера с устройством необходим еще один связующий элемент – драйвер виртуального устройства. Например, ОС Windows NT никогда не позволит программам работать напрямую с портами или внешними устройствами. Для решения этой проблемы необходимо создать драйвер виртуального устройства, который получит права работы с внешними устройствами и только через него драйвер устройства сможет взаимодействовать с периферийными устройствами.

  1. При каком вызове драйвера периферийного устройства (первом вызове или втором) драйвер вернет операционной системе код следующей ошибки: а) устройство не готово к обмену; б) драйвер не обладает процедурой для реализации данной ему команды; в) в процессе обмена с ПУ произошел сбой ( например, в принтере закончилась бумага)?

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

А). Драйвер записывает код ошибки в словосостояние

Б). заголовок запроса

  1. Какие основные положения должны учитываться на стадии проектирования шины, какие из них учитываются на практике и с чем это связано?

Самая простая архитектура ЭВМ представляет структурную взаимосвязь с 1 шиной.

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

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

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

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

Для такого подхода характерны простота и низкая стоимость. Однако одношинная организация не в состоянии обеспечить высокие интенсивность и скорость транзакций, причем «узким местом» становится именно шина.

Хотя контроллеры устройств ввода/вывода (УВВ) могут быть подсоединены посредственно к системной шине, больший эффект достигается применением одной или нескольких шин ввода/вывода (рис. 2). УВВ подключаются к шинам ввода/вывода, которые берут на себя основной трафик, не связанный с выходом на процессор или память. Адаптеры шин обеспечивают буферизацию данных при пересылке между системной шиной и контроллерами УВВ. Это позволяет ВМ поддерживать работу множества устройств ввода/вывода и одновременно «развязать» обмен информацией по тракту процессор-память и обмен информацией с УВВ.

Для подключения быстродействующих ПУ в систему шин может быть добавлена высокоскоростная шина расширения (рис. 3).

Рис. 2. Структура взаимосвязей с двумя видами шин

Шины ввода/вывода подключаются к шине расширения, а уже с нее через адаптер к шине «процессор-память». Схема еще более снижает нагрузку на шину «процессорпамять». Такую организацию шин называют архитектурой с «пристройкой» (mezzanine

architecture).

6. Опишите основные меры борьбы с «земляным» шумом, учитываемые при проектировании системных шин ЭВМ. Как организована «земля» на материнской плате? Физическая реализация шин Основная шина, объединяющая устройства вычислительной машины, обычно размещается на так называемой объединительной или материнской плате. Шину образуют тонкие параллельные медные полоски, поперек которых через небольшие интервалы установлены разъемы для подсоединения устройств ВМ. Подключаемые к шине устройства обычно также выполняются в виде печатных плат, называемых дочерними платами или модулями. Дочерние платы вставляются в разъемы на материнской плате. В дополнение к тонким сигнальным линиям на материнской плате имеются также и более широкие проводящие линии, по которым к дочерним платам подводится питающее напряжение. Несколько контактов разъема обычно подключаются к общей точке - «земле». «Земля» на материнской плате реализуется либо в виде медного слоя ( одного из внутренних слоев многослойной печатной платы), либо как широкая медная дорожка на обратной стороне материнской платы.

«Механические» спецификации шины обычно включают такие детали, как размеры плат, размеры и размещение направляющих для установки платы, разрешенное место для установки кабельного разъема, максимальная высота элементе» на плате и т.д.

Электрические аспекты. Совместное использование одной линии шины несколькими устройствами возможно за счет подключения этой линии к выходу драйвера через резистор, соединенный с источником питания. Драйвером называют схему, меняющую напряжение на сигнальной шине. В зависимости от полупроводниковой технологии, примененной в выходных каскадах драйвера, подобную возможность обеспечивают схемы с открытым коллектором (ТТЛ), открытым стоком (МОП) или открытым эмиттером (ЭСЛ).

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

С «земляным» шумом легче бороться на стадии проектирования шины.

  1. Прежде всего необходимо улучшать характеристики «земляных» слоев на материнской и дочерних платах. Между системами заземления материнской и дочерних плат должно быть много хорошо распределенных надежных контактов. Для высокоскоростных шин на каждые четыре сигнальных шины следует иметь отдельный «земляной» контакт.

  2. Кроме того, дочерняя плата должна быть спроектирована так, чтобы «земляной» ток от данного драйвера протекал к тому «земляному» контакту, который расположен как можно ближе к сигнальным выводам.

  3. «Земля» материнской платы обычно реализуется в виде внутреннего медного слоя в многослойной печатной плате; отверстия с зазором вокруг сигнальных выводов предотвращают короткое замыкание сигнального вывода с этим слоем.

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

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