пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Психология:
» Тема1. Общее представление о психологии как науке
» Тема 2. Историческое введение в психологию
» Тема 3. Эволюционное введение в психологию
» Тема 4. Возникновение, историческое развитие и структура сознания.
» Тема 5. Психофизиологическая проблема
» Тема 6. Человек как субъект познания и деятельности
» Тема 7. Индивидуальные особенности человека как субъекта деятельности
» Тема 8. Эмоционально-волевая регуляция деятельности
» Тема 9. Психология потребностей и мотивации
I семестр:
» Микроэкономика
» Политическая экономика
» Экономика предприятия
» Финансы
» Макроэкономика
» Мировая экономика
» Мат-эк модели
» Вопросы

Организация управления устройствами в ОС.

Архитектура ЭВМ включает в себя аппаратуру ввода-вывода, состоящую из иерархической структуры каналов, устройств управления и периферийных устройств (ПУ). ПУ делятся на устройства ввода-вывода и запоминающие устройства. И те, и другие могут осуществлять ввод и/или вывод.

Ввод – это считывание данных с носителей информации в оперативную память. Вывод – перенос данных из ОП на носители информации.

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

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

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

1)      операции чтения и записи данных в отношении адресуемого ПУ;

2)      операции управления устройством;

3)      операции по проверке состояния устройства.

Большинство компонентов СУВВ «невидимы» для пользователя.

В зависимости от степени автономности от ЦП можно выделить два типа управления ПУ (рис. 2).

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

                

 а)                                                               б)

Рис 2. Методы управления периферийными устройствами: а)прямой; б)косвенный

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

Этот метод управления нельзя использовать в мультипрограммном режиме. Задача совмещения работы ЦП и ПУ ложится на программиста.

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

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

Более совершенным механизмом является использование прерываний. Канал через систему прерываний прерывает работу ЦП всякий раз при завершении операции ввода-вывода или при возникновении ошибки. Здесь сигнал прерывания является по смыслу синхронизирующим, т.к. используется для оповещения определенного программного процесса о событии, которое произошло при работе канала или ПУ (например, при завершении печати страницы на принтере, ошибке записи на диск и т.д.).

При возникновении прерывания ЦП временно «отвлекается» от основной работы. В соответствии с централизованной схемой управления ПУ после определения причины прерывания управление передается системной программе управления вводом-выводом – супервизору ввода-вывода. При оповещении через прерывание о событии в некотором внешнем процессе супервизор ввода-вывода планирует и осуществляет через канал дальнейшие действия по организации ввода-вывода (обновление данных, инициирование следующей операции и т.д.).

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

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

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

 Рис. 3. Использование буферов для организации информационного взаимодействия внешнего и программного процессов

 Для устранения задержек в ожидании наполнения буфера используется несколько буферов. Например, с точки зрения временных затрат для операции чтения рационально использовать два буфера (рис. 4). Пока один из них наполняется, другой в это время освобождается.

  а) 

б) 

Рис. 4. Поочередное использование двух буферов

 Определение размера буфера требует компромисса между эффективным использованием оперативной памяти и внешних запоминающих устройств (ВЗУ) при обмене данными между ними. Каналу и ВЗУ более выгодны большие порции информации, которые можно пересылать за одну операцию ввода-вывода, реализуемую в канале, и хранить непрерывными участками на внешних носителях устройств. Чем длинней блок информации, тем дольше канал работает автономно от ЦП и тем реже его «тревожит». Длинные блоки выгоднее для ВЗУ, так как в этом случае уменьшается число межблочных промежутков и количество памяти для их фиксации. Что касается ОП, то здесь требования противоположны – чем меньше размер блока (равный размеру буфера), тем лучше, так как больше памяти достанется программным процессам.

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

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


06.08.2017; 18:47
хиты: 0
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь