Самый примитивный драйвер контроллера должен поддерживать как минимум две операции
Каждое устройство ввода-вывода вычислительной системы – диск, принтер, монитор и т. п. – снабжено специализированным блоком управления, называемым контроллером. Контроллер взаимодействует с драйвером– системным программным модулем, предназначенным для управления данным устройством (рис. 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. Кроме функций маршрутизаторов они выполняют еще и преобразование формата информационных пакетов и их перекодирование, что особенно важно при объединении неоднородных сетей.
Мосты, маршрутизаторы и шлюзы в локальной вычислительной сети — это, как правило, выделенные компьютеры со специальным программным обеспечением и дополнительной связной аппаратурой.
Читайте также: