Самый примитивный драйвер контроллера должен поддерживать как минимум две операции

Обновлено: 05.07.2024

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

Рис. 2.5. Взаимодействие устройства ввода-вывода с операционной системой

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

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

Драйвер взаимодействует, с одной стороны, с модулями ядра операционной системы (модулями подсистемы ввода-вывода, модулями системных вызовов, модулями подсистемы управления процессами и памятью и т.д.), а с другой стороны – с контроллером внешних устройств. Поэтому существует два типа интерфейсов: интерфейс «драйвер – ядро» и интерфейс «драйвер – устройство».

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

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

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

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

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

· входит в состав ядра операционной системы, работая в привилегированном режиме;

· непосредственно управляет внешним устройством, взаимодействуя с его контроллером с помощью команд ввода-вывода компьютера;

· обрабатывает прерывания от контроллера устройства;

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

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

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

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

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

Разделение на аппаратные и высокоуровневые драйверы можно продемонстрировать на примере подсистемы сетевых устройств. Аппаратными драйверами у них являются драйверы сетевых адаптеров, которые выполняют функции низкоуровневых канальных протоколов (Ethernet, Frame Relay, ATM и др.). Эти драйверы выполняют простые функции – организуют передачу кадров данных между компьютерами одной физической сети.

Над ними располагается слой модулей (драйверов), которые реализуют функции более интеллектуальных сетевых протоколов (IP, IPX), которые могут обеспечить межсетевое взаимодействие. Над слоем драйверов сетевых протоколов располагается слой драйверов транспортных протоколов (TCP, UDP, SPX и др.). Еще выше располагается слой драйверов прикладного уровня, которые предоставляют пользователям сети конечные услуги по доступу к ресурсам сети.

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

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

Для унификации представления различных файловых систем в подсистеме ввода-вывода может использоваться общий драйвер верхнего уровня, играющий роль диспетчера нескольких драйверов файловых систем. На рис. 2.6 в качестве примера показана структура драйверов дисковой подсистемы, реализованная в диспетчере VFS (Virtual File System), применяемом в операционных системах UNIX.

Рис. 2.6. Пример многослойной структуры драйверов дисковой подсистемы

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

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

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

Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

2. При модуляции дискретная информация представляется

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

3. Импульсивный способ кодирования, это такой способ кодирования, при котором

Ответ: для представления цифр используются импульсы различной полярности

Ответ: Предпочтительный для передачи данных при помощи модуляции.

Ответ: управляет контроллером периферийного устройства.

Ответ: не может получить непосредственный доступ к ресурсам другого компьютера на такой доступ

Ответ: Используют последовательную передачу бит данных.

8. Потенциальное и импульсное кодирование применяется

Ответ: Особенно остро стоит при связи двух компьютеров.

Ответ: лучшее соотношение производительность-стоимость, чем централизованные системы.

11.Потенциальный способ кодирования - это такой способ кодирования, при котором

Ответ: единице соответствует один уровень напряжения, а нулю — другой

Ответ: позволяет повысить надежность передачи данных между компьютерами

13.Переферийное устройство использует внешний интерфейс компьютера

Ответ: как для приёма, так и для передачи информации

Ответ: нужен для того, чтобы отличать чётные числа от нечётных

Ответ: отдельный программный модуль, способный отличить запрос у удалённому сервера или файлу

17. Модуляция на основе синусоидальных сигналов предпочтительнее

Ответ: том случае, когда канал вносит сильные искажения в передаваемые сигналы

18. Периферийные устройства могут принимать от компьютера

21. Для обмена данными между компьютером и периферийным устройством

22. Для представления дискретных данных наиболее удобно использовать

24. Самый примитивный драйвер контроллера должен поддерживать как минимум

Ответ: «Взять данные из контроллера в оперативную память» и «Передать данные из оперативной памяти в контроллер»

Ответ: обеспечивает более высокую скорость передачи по сравнению с . (не видно на фотке дальше)

Ответ: обладает большей надёжностью по сравнению с технологией шина

Ответ: всегда обеспечивает гарантированное время отклика

Ответ: каждый абонент является, как потребителем, так и владельцем

(В одноранговой сети все компьютеры равны. Нет иерархии среди компьютеров и нет выделенного (dedicated) сервера.)

2. Имеет более высокую стоимость по сравнению с индивидуальными линиями

6. В последнее время приобретают все большую популярность

9. Вопрос 11:При организации данных в топологии звезда

10. использование активного центра выгоднее тк снижает нагрузку

14. Соответствует сети в которой каждый компьютер сети связан со всеми

16. Характерны,Как электрические так и логические вопросы при объединении в сеть

18. Вопрос проверки правильности передачи данных решается с применением

26. Как правило используется для построения небольших сетей

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

30. Централизованным детермированным способом арбитража

33. Вопрос 23: метод множественного доступа с контролем несущей и обнаружением коллизий подразумевает

34. Подразумевает ,что при обнаружении коллизии абонент выжидает случай

41. Вопрос 27:с точки зрения пользователя большее удобство представляет

43. Вопрос 28: Детецентрализованный кодовый приоритетный арбитраж

47. Вопрос 30: распределенный способ разрешения имен

52. при которой все компьютеры параллельно подключаются к одной линии связи

57. обладает такой же произодительностью,как и пассивная

58. Вопрос 36: Децентрализованный временной при приоритеный арбитраж

61. Строится из нескольких концентраторов иерархически связанных

67. 3. Импульсивный способ кодирования, это такой способ кодирования, при котором

68. Ответ: для представления единицы используется положительный импульс, а для представления нуля - отрицательный.

70. Ответ: Предпочтительный для передачи данных при помощи модуляции.

72. Ответ: управляет контроллером периферийного устройства.

74. Ответ: не может получить непосредственный доступ к ресурсам другого компьютера на такой доступ

76. Ответ: Используют последовательную передачу бит данных.

77. 8. Потенциальное и импульсное кодирование применяется

80. Ответ: Особенно остро стоит при связи двух компьютеров.

82. Ответ: лучшее соотношение производительность-стоимость, чем централизованные системы.

83. 11.Потенциальный способ кодирования - это такой способ кодирования, при котором

84. Ответ: единице соответствует один уровень напряжения, а нулю — другой

86. Ответ: позволяет повысить надежность передачи данных между компьютерами

87. 13.Переферийное устройство использует внешний интерфейс компьютера

88. Ответ: как для приёма, так и для передачи информации

92. Ответ: отдельный программный модуль, способный отличить запрос у удалённому сервера или файлу

95. 17. Модуляция на основе синусоидальных сигналов предпочтительнее

96. Ответ: том случае, когда канал вносит сильные искажения в передаваемые сигналы

97. 18. Периферийные устройства могут принимать от компьютера

100. Ответ: модуляцию-демодуляцию дискретных сигналов

102. 21. Для обмена данными между компьютером и периферийным устройством

103. Ответ: в компьютере предусмотрен внешний интерфейс

104. 22. Для представления дискретных данных наиболее удобно использовать

106. 23. Функции для работы с сетью обычно реализованы

108. 24. Самый примитивный драйвер контроллера должен поддерживать как минимум

109. Ответ: «Взять данные из контроллера в оперативную память» и «Передать данные из оперативной памяти в контроллер»

113. Ответ: обеспечивает более высокую скорость передачи по сравнению с . (не видно на фотке дальше)

115. Ответ: обладает большей надёжностью по сравнению с технологией шина

117. Ответ: всегда обеспечивает гарантированное время отклика

119. Ответ: позволяет подключать не более 8 абонентов

123. Ответ: каждый абонент является, как потребителем, так и владельцем

124. (В одноранговой сети все компьютеры равны. Нет иерархии среди компьютеров и нет выделенного (dedicated) сервера.)

129. Каждый компьютер работает под управлением собственной ОС

134. Вопрос: В двухуровневой архитектуре “клиент-сервер”

138. Могут быть как пользовательскими, так и системными

140. Вопрос: Компьютеры, входящие в вычислительную сеть

141. Не имею ни общих блоков памяти, ни общих периферийных устройств

155. Вопрос: Возможности параллельной обработки в многомашинных системах

156. Ограничены, т.к. эффективность распараллеливания резко снижается

159. Производительность была пропорциональна квадрату его стоимости

161. Вопрос: В случае отказа одного из процессоров мультипроцессор

162. Сможет продолжить работу, перераспределив нагрузку на остальные процессоры

164. Вопрос: В двухуровневой архитектуре клиент-сервер

168. Разделение функц. части прежнего, "толстого" (интеллектуального) клиента на две части

170. Вопрос: Территориальная распределенность в многомашинных комплексах

174. Не были предназначены для интерактивной работы пользователя

176. Вопрос: В мультипроцессорных компьютерах взаимод. между отдельными проц. организуется

178. Вопрос: Многотерминальные системы, работающие в режиме разделения времени

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

181. Вопрос: Первые терминалы соединялись с компьютерами

185. Сразу несколько пользователей может взаимодействовать с ЭВМ

188. Это самый эффективный режим использования вычислительной мощности

190. Вопрос: В двухуровневой архитектуре клиент-сервер

191. Сокращаются коммуникационные расходы, т.к. по сети пересылаются

193. Вопрос: Для организации первых локальных сетей использовались

196. Вопрос: Причиной появления локальных сетей являлась

197. Необходимость объединения вычислительной мощности

202. Вопрос: Разрыв между локальными и глобальными сетями

211. Вопрос: Третьим слоем, образующим программную платформу сети

214. Вопрос: Стандартные технологии объединения компьютеров в сеть появились

218. Не поддерживает территориальную распределенность

220. Вопрос: Первые глобальные сети создавались с использованием


Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!

Документ из архива "ВСС 1-8 Бехетьев В.А. лекции", который расположен в категории "лекции и семинары". Всё это находится в предмете "вычислительные сети и системы" из шестого семестра, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "вычислительные сети и системы" в общих файлах.

Онлайн просмотр документа "ВСС 1-8 Бехетьев В.А. лекции"

Текст 4 страницы из документа "ВСС 1-8 Бехетьев В.А. лекции"

• улучшение доступа к информации;

• быстрое и качественное принятие решений;

• свобода в территориальном размещении компьютеров. 1.2. Основные проблемы построения сетей

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

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

ЛЕКЦИЯ 4

Для обмена данными между компьютером и периферийным устройством (ПУ) в компьютере предусмотрен внешний интерфейс (рис. 1.6), то есть набор проводов, соединяющих компьютер и периферийное устройство, а также набор правил обме­на информацией по этим проводам (иногда вместо термина интерфейс употребля­ется термин протокол подробней об этих важных терминах мы еще поговорим). Примерами интерфейсов, используемых в компьютерах, являются параллельный интерфейс Centronics, предназначенный, как правило, для подключения принте­ров, и последовательный интерфейс RS-232C, через который подключаются мышь, модем и много других устройств. Интерфейс реализуется со стороны компьютера совокупностью аппаратных и программных средств: контроллером ПУ и специ­альной программой, управляющей этим контроллером, которую часто называют драйвером соответствующего периферийного устройства.

Со стороны ПУ интерфейс чаще всего реализуется аппаратным устройством управ­ления, хотя встречаются и программно-управляемые периферийные устройства.

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

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

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

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


Рассмотрим схему передачи одного байта информации от прикладной програм­мы на периферийное устройство. Программа, которой потребовалось выполнить обмен данными с ПУ, обращается к драйверу этого устройства, сообщая ему в качестве параметра адрес байта памяти, который нужно передать. Драйвер загру­жает значение этого байта в буфер контроллера ПУ, который начинает последова­тельно передавать биты в линию связи, представляя каждый бит соответствующим электрическим сигналом. Чтобы устройству управления ПУ стало понятно, что начинается передача байта, перед передачей первого бита информации контроллер ПУ формирует стартовый сигнал специфической формы, а после передачи послед­него информационного бита — стоповый сигнал. Эти сигналы синхронизируют пе­редачу байта. Кроме информационных бит, контроллер может передавать бит контроля чет­ности для повышения достоверности обмена. Устройство управления, обнаружив на соответствующей линии стартовый бит, выполняет подготовительные действия и начинает принимать информационные биты, формируя из них байт в своем приемном буфере. Если передача сопровождается битом четности, то выполняется проверка правильности передачи: при правильно выполненной передаче в соответ­ствующем регистре устройства управления устанавливается признак завершения приема информации.

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

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

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

Рассмотрим случай, когда пользователю, работающему с текстовым редактором на персональном компьютере А, нужно прочитать часть некоторого файла, распо­ложенного на диске персонального компьютера В (рис. 1.7). Предположим, что мы связали эти компьютеры по кабелю связи через СОМ-порты, которые, как извест­но, реализуют интерфейс RS-232C (такое соединение часто называют нуль-модем-ным). Пусть для определенности компьютеры работают под управлением MS-DOS, хотя принципиального значения в данном случае это не имеет. Драйвер СОМ-порта вместе с контроллером СОМ-порта работают примерно так же, как и в описанном выше случае взаимодействия ПУ с компьютером. Одна­ко при этом роль устройства управления ПУ выполняет контроллер и драйвер СОМ-порта другого компьютера. Вместе они обеспечивают передачу по кабелю между компьютерами одного байта информации. (В «настоящих» локальных се­тях подобные функции передачи данных в линию связи выполняются сетевыми адаптерами и их драйверами.)

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


Таким образом, в распоряжении программ компьютеров А и В имеется сред­ство для передачи одного байта информации. Но рассматриваемая в нашем примере задача значительно сложнее, так как нужно передать не один байт, а определенную часть заданного файла. Все связанные с этим дополнительные проблемы должны решить программы более высокого уровня, чем драйверы СОМ-портов. Для оп­ределенности назовем такие программы компьютеров А и В приложением А и приложением В соответственно. Итак, приложение А должно сформировать сооб­щение-запрос для приложения В. В запросе необходимо указать имя файла, тип операции (в данном случае — чтение), смещение и размер области файла, содержа­щей нужные данные.

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

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


Очень удобной и полезной функцией клиентской программы является способ­ность отличить запрос к удаленному файлу от запроса к локальному файлу. Если клиентская программа умеет это делать, то приложения не должны заботиться о том, с каким файлом они работают (локальным или удаленным), клиентская про­грамма сама распознает и перенаправляет (redirect) запрос к удаленной машине. Отсюда и название, часто используемое для клиентской части сетевой ОС, — реди­ректор. Иногда функции распознавания выделяются в отдельный программный модуль, в этом случае редиректором называют не всю клиентскую часть, а только этот модуль.

«Установить начало листа», «Переместить магнитную головку», «Сообщить состояние устройства» и др.

Со стороны ПУ интерфейс чаще всего реализуется аппаратным устройством управления ПУ, хотя встречаются и программно-управляемые периферийные устройства.

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

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

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

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

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

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

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

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

Взаимодействие двух компьютеров

8.2. Устройства межсетевого интерфейса

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

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

Повторители (repeater) — устройства, усиливающие электрические сигналы и обес­печивающие сохранение формы и амплитуды сигнала при передаче его на боль­шие расстояния. Повторители описываются протоколами канального уровня мо­дели взаимодействия открытых систем, могут объединять сети, отличающиеся протоколами лишь на физическом уровне OSI (с одинаковыми протоколами уп­равления на канальном и выше уровнях), и выполняют лишь регенерацию паке­тов данных, обеспечивая тем самым электрическую независимость сопрягаемых сетей и защиту сигналов от воздействия помех. Использование усилителей позво­ляет расширить и протяженность одной сети, объединяя несколько сегментов сети в единое целое. При установке усилителя создается физический разрыв в линии связи, при этом сигнал воспринимается с одной стороны, регенерируется и направ­ляется к другой части линии связи.

Шлюзы (gateway) — устройства, позволяющие объединить вычислительные сети, использующие различные протоколы OSI на всех ее уровнях; они выполняют про­токольное преобразование для всех семи уровней управления модели OSI. Кроме функций маршрутизаторов они выполняют еще и преобразование формата инфор­мационных пакетов и их перекодирование, что особенно важно при объединении неоднородных сетей.

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

Читайте также: