Программное обеспечение ввода / вывода часто организовано на следующих уровнях:
- Библиотеки уровня пользователя – это обеспечивает простой интерфейс для пользовательской программы для выполнения ввода и вывода. Например, stdio – это библиотека, предоставляемая языками программирования C и C ++.
- Модули уровня ядра – это обеспечивает драйвер устройства для взаимодействия с контроллером устройства и независимыми от устройства модулями ввода / вывода, используемыми драйверами устройства.
- Аппаратное обеспечение – этот уровень включает в себя фактический аппаратный и аппаратный контроллер, который взаимодействует с драйверами устройства и обеспечивает работу оборудования.
Библиотеки уровня пользователя – это обеспечивает простой интерфейс для пользовательской программы для выполнения ввода и вывода. Например, stdio – это библиотека, предоставляемая языками программирования C и C ++.
Модули уровня ядра – это обеспечивает драйвер устройства для взаимодействия с контроллером устройства и независимыми от устройства модулями ввода / вывода, используемыми драйверами устройства.
07. Основы устройства компьютера. Ввод-вывод. [Универсальный программист]
Аппаратное обеспечение – этот уровень включает в себя фактический аппаратный и аппаратный контроллер, который взаимодействует с драйверами устройства и обеспечивает работу оборудования.
Ключевой концепцией в разработке программного обеспечения ввода / вывода является то, что оно должно быть независимым от устройства, где должна быть возможность писать программы, которые могут получить доступ к любому устройству ввода / вывода без необходимости предварительно указывать устройство. Например, программа, которая считывает файл как ввод, должна иметь возможность считывать файл с дискеты, жесткого диска или компакт-диска без необходимости изменять программу для каждого отдельного устройства.
Драйверы устройств
Драйверы устройств – это программные модули, которые можно подключить к ОС для работы с конкретным устройством. Операционная система получает помощь от драйверов устройств для обработки всех устройств ввода-вывода. Драйверы устройств инкапсулируют код, зависящий от устройства, и реализуют стандартный интерфейс таким образом, чтобы код содержал специфичные для устройства регистры чтения / записи. Драйвер устройства, как правило, записывается производителем устройства и поставляется вместе с устройством на компакт-диске.
Драйвер устройства выполняет следующие задания:
- Чтобы принять запрос от устройства независимого программного обеспечения выше к нему.
- Взаимодействовать с контроллером устройства для получения и ввода-вывода и выполнения необходимой обработки ошибок
- Убедиться, что запрос выполнен успешно
Драйвер устройства обрабатывает запрос следующим образом. Предположим, что запрос приходит на чтение блока N. Если драйвер не используется в момент поступления запроса, он начинает выполнять запрос немедленно. В противном случае, если драйвер уже занят каким-либо другим запросом, он помещает новый запрос в очередь ожидающих запросов.
Ошибка ввода вывода на устройстве — как исправить для HDD, флешки, SSD
Обработчики прерываний
Обработчик прерываний, также известный как подпрограмма обслуживания прерываний или ISR, является частью программного обеспечения или, более конкретно, функцией обратного вызова в операционной системе или, более конкретно, в драйвере устройства, выполнение которого инициируется приемом прерывания.
Когда происходит прерывание, процедура прерывания делает все возможное, чтобы обработать прерывание, обновляет структуры данных и запускает процесс, который ожидал прерывания.
Механизм прерываний принимает адрес ─ число, которое выбирает конкретную процедуру / функцию обработки прерываний из небольшого набора. В большинстве архитектур этот адрес является смещением, хранящимся в таблице, называемой таблицей векторов прерываний. Этот вектор содержит адреса памяти специализированных обработчиков прерываний.
Независимое от устройства программное обеспечение ввода / вывода
Основная функция независимого от устройства программного обеспечения состоит в том, чтобы выполнять функции ввода-вывода, которые являются общими для всех устройств, и обеспечивать единый интерфейс с программным обеспечением уровня пользователя. Хотя написать полностью независимое от устройства программное обеспечение сложно, мы можем написать некоторые модули, которые являются общими для всех устройств. Ниже приведен список функций независимого от устройства программного обеспечения ввода-вывода.
- Единый интерфейс для драйверов устройств
- Именование устройства – Мнемонические имена сопоставляются с номерами устройств Major и Minor.
- Защита устройства
- Предоставление независимого от устройства размера блока
- Буферизация, поскольку данные, поступающие с устройства, не могут быть сохранены в конечном месте назначения.
- Распределение памяти на блочных устройствах
- Распределение и выпуск выделенных устройств
- Отчет об ошибках
User-Space I / O Software
Это библиотеки, которые предоставляют более богатый и упрощенный интерфейс для доступа к функциональности ядра или в конечном итоге взаимодействуют с драйверами устройств. Большая часть программного обеспечения ввода-вывода пользовательского уровня состоит из библиотечных процедур, за некоторыми исключениями, таких как спулинговая система, которая является способом работы с выделенными устройствами ввода-вывода в многопрограммной системе.
Библиотеки ввода / вывода (например, stdio) находятся в пользовательском пространстве, чтобы предоставить интерфейс к независимому от устройства резидентному программному обеспечению ввода / вывода. Например, putchar (), getchar (), printf () и scanf () являются примером stdio библиотеки ввода-вывода пользовательского уровня, доступной в C-программировании.
Подсистема ввода / вывода ядра
Подсистема ввода / вывода ядра отвечает за предоставление многих услуг, связанных с вводом / выводом. Ниже приведены некоторые из предоставляемых услуг.
Планирование – ядро планирует набор запросов ввода-вывода для определения правильного порядка их выполнения. Когда приложение выполняет системный вызов блокирующего ввода-вывода, запрос помещается в очередь для этого устройства. Планировщик ввода-вывода ядра изменяет порядок очереди, чтобы повысить общую эффективность системы и среднее время отклика, испытываемое приложениями.
Буферизация – Подсистема ввода-вывода ядра поддерживает область памяти, известную как буфер, в котором хранятся данные, когда они передаются между двумя устройствами или между устройствами с операцией приложения. Буферизация выполняется для устранения несоответствия скорости между производителем и потребителем потока данных или для адаптации между устройствами, которые имеют разные размеры передачи данных.
Кеширование – Ядро поддерживает кеш-память, которая является областью быстрой памяти, в которой хранятся копии данных. Доступ к кэшированной копии более эффективен, чем доступ к оригиналу.
Буферизация и резервирование устройства. Буфер – это буфер, который содержит выходные данные для устройства, такого как принтер, который не может принимать чередующиеся потоки данных. Система буферизации копирует файлы очереди из очереди по очереди на принтер. В некоторых операционных системах спулинг управляется процессом системного демона. В других операционных системах это обрабатывается потоком ядра.
Обработка ошибок – операционная система, которая использует защищенную память, может защитить от многих видов аппаратных и прикладных ошибок.
Источник: coderlessons.com
Системная программа которая обеспечивает связь ввода вывода данных между программами и устройством называется
Ответы на вопрос Системная программа которая обеспечивает связь ввода вывода данных между программами и устройством называется
- Драйвер — Программа расширяющая возможности операционной системы по управлению устройствами ввода вывода оперативной памяти 7 букв
- Разгадывать кроссворды
- Драйвер — Системная программа, посредством которой осуществляется управление операциями обмена информацией с соответствующим периферийным устройством 7 букв
- Интерфейс — Каким термином называют способ обмена данными между двумя объектами, в том числе между пользователем и компьютерной программой 9 букв
- Враппер — Программный модуль, перехватывающий поток ввода/вывода и изменяющий его в соответствии с заложенной программой 7 букв
- Шина — В архитектуре компьютера подсистема, которая передаёт данные между функциональными блоками компьютера. Обычно шина управляется драйвером. В отличие от связи точка-точка, к шине можно подключить несколько устройств по одному набору проводников. Каждая шина определяет свой набор коннекторов для физического подключения устройств, карт и кабелей 4 буквы
- Ассемблер — Системная программа, осуществляющая перевод программы с символического языка на язык компьютера 9 букв
- Чипсет — Набор микросхем, спроектированных для совместной работы с целью выполнения набора каких-либо функций. Так, в компьютерах чипсет, размещаемый на материнской плате выполняет роль связующего компонента, обеспечивающего совместное функционирование подсистем памяти, центрального процессора, ввода-вывода и других. Чипсеты встречаются и в других устройствах, например, в радиоблоках сотовых телефонов 6 букв
- Сервер — Основная программа, которая обеспечивает работу веб-сайта 6 букв
- Целостность — Особенность образовательной программы, которая обеспечивает согласованность, полноту и последовательность действий, для достижения цели 11 букв
- Терминал — Устройство ввода-вывода информации 8 букв
- Терминал — Устройство ввода-вывода в ЭВМ 8 букв
- Консоль — Терминальное устройство ввода-вывода в ЭВМ 7 букв
- Дружба — Бескорыстные личные взаимоотношения между людьми, основанные на доверии, искренности, взаимных симпатиях, общих интересах и увлечениях. Обязательными признаками дружбы являются доверие и терпение. Людей, связанных между собой дружбой, называют друзьями. Обязательным условием существования дружеских связей является отсутствие межличностной конкуренции в кругу друзей, относительно равного 6 букв
- Правопорядок — Состояние общественных отношений, при котором обеспечивается соблюдение закона и иных правовых норм, одна из составных частей общественного порядка. Это состояние фактической урегулированности социальных связей, качественное выражение законности 12 букв
- Благоустройство — Это совокупность таких мер как: проведение водоснабжения и электроснабжения в сооружения, устройство дорог, обеспечение санитарной безопасности, снижение шума, улучшение микроклимата и т. п. Которые обеспечивают благосостояние населения или конкретной территории 15 букв
- Заготовительный — Процесс строительного производства который обеспечивает строящийся объект полуфабрикатами деталями и изделиями называется 15 букв
- Цистография — Как называется метод исследования, при котором контрастный препарат, вводят в мочевые пути через катетер 11 букв
- Маршрутизатор — Устройство осуществляющее пересылку пакетов данных между отдельными сегментами компьютерной сети 13 букв
- Терминал — Рабочее место для ввода-вывода информации, дистанционно подключенное к компьютеру (дисплей с клавиатурой, телетайп, персональный компьютер) 8 букв
- Шериф — Первая по величине компания в Приднестровье. Владеет сетью автозаправок, супермаркетов, телевизионным каналом, мобильной и стационарной связью, издательским домом, рекламным агентством, вино-коньячным заводом, двумя хлебокомбинатами, футбольным клубом Шериф, спорткомплексом «Шериф» и т. д. Общее число людей, работающих в холдинге, в который входит фирма «Шериф», по данным на июль 2006 5 букв
- Эллипс — Геометрическое место точек M Евклидовой плоскости, для которых сумма расстояний до двух данных точек F1 и F2 постоянна и больше расстояния между фокусами, то есть 6 букв
- Кольцевая — Локальная сеть, в которой компьютеры связаны между собой по кругу 9 букв
- Предложение — Это слово или целый ряд слов, которые всегда связаны между собой по смыслу 11 букв
- Вертолёт — Винтокрылый летательный аппарат, у которого необходимые для полёта подъёмная сила и тяга создаются одним или несколькими несущими винтами с приводом от двигателя или нескольких двигателей. Почти всегда несущий винт вертолёта оснащён автоматом перекоса, который обеспечивает смещение центра давления винта для управления полётом 8 букв
- Стилистика — (лингвистика) это раздел языкознания, который изучает выразительность стиля языка, а так же функциональные стили, которые обеспечиваются для каждого функционального стиля 10 букв
- Магистраль — Устройство для взаимосвязи и обмена информацией между всеми устройствами компьютера 10 букв
- Демократия — Принцип организации коллективной деятельности, при котором обеспечивается активное и равноправное участие в ней всех членов коллектива 10 букв
- Регулировать — Приводить (механизмы и их части) в такое состояние, которое обеспечивает нормальную и правильную работу 12 букв
- Электрод — Проводник в виде пластинки, стержня и т. п., через который электрический ток вводится в жидкость или газ 8 букв
- Шкворень — Стержень, штырь, являющийся вертикальной осью передка повозки или поворотной части локомотива, автомобиля и т. п., который обеспечивает поворот на ходу 8 букв
- Подача — В спортивных играх: удар, которым мяч, шайба вводятся в игру или передаются партнеру 6 букв
- Демократия — Принцип организации коллективной деятельности, при которой обеспечивается равноправное и активное участие в ней всех членов коллектива 10 букв
- Вето — Право каждого из членов Совета Безопасности ООН, которое обеспечивает единогласие при принятии важных решений 4 буквы
- Шуга — Рыхлые скопления твёрдой фазы агрегатного состояния вещества в его жидкой фазе состояния. В зависимости от количества льда, шуга сохраняет способность течь как жидкость или теряет эту способность из-за возникновения заторов. При любом количестве шуги в жидкости, снижается её текучесть. Для образования шуги необходимо, чтобы вещество находилось в условиях, которые обеспечивают резкую 4 буквы
- Растениеводство — Возделывание культурных растений с целью их использования как источника продуктов питания, получения продукции для кормовых целей, а также сырья для промышленности и иных, в том числе декоративных целей. Растениеводство как наука изучает многообразие сортов, гибридов, форм полевых культур, особенности биологии и наиболее совершенные приёмы возделывания, которые обеспечивают высокую 15 букв
- Сервер — Компьютер, который обеспечивает работу сайта 6 букв
- Аневризмография — Разновидность ангиографии, при которой контрастное вещество вводится в аневризматический мешок 15 букв
- Веноспондилография — Контрастная рентгенография позвоночных венозных сплетений, при которой контрастное вещество вводят в губчатую ткань остистого отростка позвонка 18 букв
- Стоимостной — Форма баланса, которая обеспечивает всестороннюю увязку производства, распределения и обращения продукции с использованием доходов государства, предприятий, хозяйств, населения 11 букв
- Ордерный — Уступаемый инструмент, который обеспечивает доставку указанной стороне посредством передаточной надписи на коносаменте 8 букв
- Системное — Программное обеспечение, которое обеспечивает согласованную работу всех узлов компьютера 9 букв
- Кабуз — Вагон который обеспечивает приют для экипажа в конце поезда 5 букв
- Светофильтр — Одна из частей микроскопа которая обеспечивает освещение предметного столика 11 букв
- Стойка — Рациональная поза которая обеспечивает готовность к игровым действиям 6 букв
- Факторы — Совокупность пространственных условий и ресурсов Их свойств Правильное использование которых обеспечивает наилучшие результаты при размещении производственных объектов 7 букв
- Автономность — Свойство природных систем которое обеспечивает их устойчивость 12 букв
- Образовательная — Весь комплекс условий, которые обеспечивают развитие детей в дошкольной образовательной организации это среда 15 букв
- Программа — Это записанный в определенном порядке набор команд выполнение которых обеспечивает решение конкретной задачи 9 букв
- Массовое — Производство с наиболее совершенным типом организации производства при котором обеспечивается автоматизация и механизация многих процессов 8 букв
- Плацента — Орган, осуществляющий связь и обмен веществ между организмом матери (самки) и плодом, детское место 8 букв
Источник: wordparts.ru
Операционная система — аппаратное обеспечение ввода-вывода
Одной из важных задач операционной системы является управление различными устройствами ввода/вывода, включая: мышь, клавиатуру, тачпад, дисковые накопители, адаптеры дисплея, USB-устройства, экран с поточечной адресацией, светодиоды, аналого-цифровой преобразователь, переключатель включения/выключения, сетевые подключения, аудио-входы/выходы, принтеры и т. д.
Система ввода/вывода должна принимать запрос приложения на ввод/вывод и посылать его физическому устройству, затем принимать ответ от устройства и посылать его приложению. Устройства ввода/вывода можно разделить на две категории:
- Блочные устройства. Блочное устройство — это устройство, с которым драйвер взаимодействует путем отправки целых блоков данных. Например, жесткие диски, USB-камеры, флешки и т.д.
- Символьные устройства. Символьное устройство — это устройство, с которым драйвер взаимодействует путем отправки и получения отдельных символов (байтов, октетов). Например, последовательные порты, параллельные порты, звуковые карты и т.д.
Контроллеры устройств
Драйверы устройств — это программные модули, которые можно подключить к операционной системе для работы с определенным устройством. Операционная система получает помощь от драйверов устройств для работы со всеми устройствами ввода-вывода.
Контроллер работает как интерфейс между устройством и драйвером. Устройства ввода/вывода (клавиатура, мышь, принтер и т.д.) обычно состоят из механического и электронного компонента, где электронный компонент называется контроллером устройства.
Для каждого устройства всегда есть контроллер и драйвер для взаимодействия с операционными системами. Контроллер может работать с несколькими устройствами. Его основная задача в качестве интерфейса — преобразовать последовательный поток битов в блок байтов и при необходимости выполнить коррекцию ошибок.
Любое устройство, подключаемое к компьютеру, соединяется с помощью вилки и розетки, а розетка подключается к контроллеру устройства. Ниже приведена модель соединения центрального процессора (CPU), памяти, контроллеров и устройств ввода-вывода, где процессор и контроллеры используют для связи общую шину.
Синхронный и асинхронный ввод/вывод
- Синхронный ввод/вывод — в этой схеме процессор ждет, пока выполняется ввод/вывод.
- Асинхронный ввод/вывод — ввод/вывод происходит параллельно с выполнением инструкций на процессоре.
Связь с устройствами ввода/вывода
Центральный процессор должен иметь возможность передавать информацию на устройство ввода-вывода и обратно. Существует три подхода для связи между CPU и устройством.
- Специальная команда ввода/вывода
- Ввод/вывод с привязкой к памяти
- Прямой доступ к памяти (direct memory access, DMA)
Специальная команда ввода/вывода
При этом используются инструкции CPU, специально разработанные для управления устройствами ввода-вывода. Эти инструкции обычно позволяют отправлять данные на устройство ввода/вывода или считывать их с устройства ввода/вывода.
Ввод/вывод с привязкой к памяти
При использовании ввода/вывода с привязкой к памяти одно и то же адресное пространство разделяется между памятью и устройствами ввода/вывода. Устройство подключается непосредственно к определенным местам основной памяти, чтобы устройство ввода/вывода могло передавать блок данных в/из памяти, не проходя через центральный процессор.
При использовании ввода-вывода с привязкой к памяти ОС выделяет буфер в памяти и сообщает устройству ввода-вывода, что оно должно использовать этот буфер для отправки данных в процессор. Устройство ввода/вывода работает асинхронно с процессором, прерывая его по завершении работы.
Преимущество этого метода состоит в том, что каждая инструкция, которая может получить доступ к памяти, может быть использована для работы с устройством ввода-вывода. Ввод/вывод с привязкой к памяти используется для большинства высокоскоростных устройств ввода-вывода, таких как диски и коммуникационные интерфейсы.
Прямой доступ к памяти (Direct Memory Access, DMA)
Медленные устройства, например, клавиатуры, будут генерировать прерывание для главного процессора после передачи каждого байта. Если бы быстрое устройство, такое как диск, генерировало прерывание для каждого байта, операционная система тратила бы большую часть своего времени на обработку этих прерываний. Поэтому типичный компьютер использует прямой доступ к памяти (DMA), чтобы уменьшить эти накладные расходы.
Прямой доступ к памяти (DMA) означает, что процессор предоставляет модулю ввода-вывода полномочия на чтение из памяти или запись в память без его участия. Модуль DMA сам управляет обменом данными между основной памятью и устройством ввода-вывода. Центральный процессор участвует только в начале и конце передачи данных и прерывается только после передачи всего блока.
Прямой доступ к памяти требует специального аппаратного обеспечения, называемого DMA-контроллером (DMAC), который управляет передачей данных и выдает доступ к системной шине. Контроллеры программируются с указателями источника и назначения (где читать / куда записывать данные), счетчиками для отслеживания количества переданных байт, а также настройками, включающими типы ввода/вывода и памяти, прерывания и состояния для циклов процессора.
Операционная система использует аппаратное обеспечение DMA следующим образом:
Шаг
Описание
Драйверу устройства дается команда передать данные с диска по адресу буфера X.
Затем драйвер устройства дает команду контроллеру диска передать данные в буфер.
Дисковый контроллер запускает передачу данных через DMA.
Дисковый контроллер посылает каждый байт контроллеру DMA.
Контроллер DMA передает байты в буфер, увеличивает адрес памяти, уменьшает счетчик C, пока C не станет нулем.
Когда C становится равным нулю, DMA прерывает процессор, чтобы сообщить о завершении передачи.
Ввод/вывод по опросу vs Ввод/вывод по прерыванию
Компьютер должен иметь способ обнаружения поступления любого типа входных данных. Для этого существует два способа, известные как опрос и прерывания. Оба эти метода позволяют процессору работать с событиями, которые могут произойти в любое время и которые не связаны с текущим процессом.
Ввод-вывод по опросу
Опрос — это самый простой способ связи устройства ввода-вывода с процессором. Он представляет собой процесс периодической проверки состояния устройства, чтобы узнать, пришло ли время для следующей операции ввода-вывода. Устройство ввода/вывода просто помещает информацию в регистр Status, а процессор должен прийти и получить эту информацию.
Большую часть времени устройства не требуют внимания, а когда требуют, им приходится ждать до следующего опроса программой опроса. Это неэффективный метод, и большая часть времени процессора тратится на ненужные опросы.
Сравните этот метод с тем, как если бы учитель постоянно спрашивал каждого ученика в классе, одного за другим, нужна ли ему помощь. Очевидно, что более эффективным методом было бы, если бы ученик сообщал учителю, когда ему нужна помощь.
Ввод-вывод с прерыванием
Альтернативной схемой работы с вводом/выводом является метод прерываний. Прерывание — это сигнал микропроцессору от устройства, которое требует внимания.
Контроллер устройства подает сигнал прерывания на системную шину, когда ему требуется внимание процессора. Когда процессор получает прерывание, он сохраняет свое текущее состояние и вызывает соответствующий обработчик прерывания, используя вектор прерывания (адреса подпрограмм ОС для обработки различных событий). Когда прерывающее устройство обработано, центральный процессор продолжает выполнение своей первоначальной задачи, как если бы он никогда не был прерван.
Тему ввода-вывода в компьютерных системах продолжим изучать на открытом уроке, который пройдет уже завтра вечером.
На данном уроке мы рассмотрим основы архитектуры ввода-вывода (I/O) в компьютерных системах. Изучим роль I/O систем в компьютерной архитектуре, рассмотрим различные типы устройств и их использование в компьютерных системах. Мы обсудим необходимые аппаратные компоненты, такие как память, а также научимся использовать программно устройства ввода-вывода. Цель урока — разобраться в роли, типах I/O систем в компьютерной архитектуре и способов взаимодействия с ними.
- Записаться на урок можно на странице онлайн-курса «Computer Science»
- операционные системы
- ввод-вывод
- I/O Hardware
- компьютерные системы
Источник: habr.com