Главная » Компьютерные сети » Подсистема ввода-вывода ядра

Подсистема ввода-вывода ядра

звезда

Устройства ввода и вывода (I/O) позволяют нам взаимодействовать с компьютерной системой. Ввод-вывод — это передача данных между оперативной памятью и различными периферийными устройствами ввода-вывода. Используя устройства ввода, такие как клавиатуры, мыши, картридеры, сканеры, системы распознавания голоса и сенсорные экраны, мы можем вводить данные в компьютер. Использование устройств вывода, таких как мониторы, принтеры, плоттеры и динамики, позволяет нам получать информацию с компьютера.

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

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

Мы обсудим такие службы ядра, как планирование ввода-вывода, кэширование, буферизация, резервирование устройств, защита ввода-вывода и обработка ошибок.

1) Планирование

Это означает, что необходимо определить хороший порядок, в котором будут выполняться запросы ввода-вывода, называемые дисковым планированием.

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

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

2) Кэширование

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

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

3) Буферизация

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

Буферизация выполняется по трем причинам.

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

4) Spooling

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

5) Резервирование Устройства

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

6) Защита Ввода-Вывода

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

7) Обработка Ошибок

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