Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Основные модели обмена данными с периферийными устройствами.



В ЭВМ используются два основных способа организации передачи данных между памятью и периферийными устройствами: программно-управляемая передача и прямой доступ к памяти (ПДП).

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

1) сформировать начальный адрес области обмена ОП;

2) занести длину передаваемого массива данных в один из внутренних регистров, который будет играть роль счетчика;

3) выдать команду чтения информации из УВВ; при этом на шину адреса из МП выдается адрес УВВ, на шину управления - сигнал чтения данных из УВВ, а считанные данные заносятся во внутренний регистр МП;

4) выдать команду записи информации в ОП; при этом на шину адреса из МП выдается адрес ячейки оперативной памяти, на шину управления - сигнал записи данных в ОП, а на шину данных выставляются данные из регистра МП, в который они были помещены при чтении из УВВ;

5) модифицировать регистр, содержащий адрес оперативной памяти;

6) уменьшить счетчик длины массива на длину переданных данных.

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

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

Такой обмен происходит под управлением отдельного устройства - контроллера прямого доступа к памяти (КПДП).

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

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

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

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

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

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

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

 

Диковые накопители

Основной механизм дисковых накопителей выглядит так:

Слой носителя информации – магнитный, оптический или, возможно, другой нанесен на рабочие поверхности дисков. Диски вращаются с помощью шпинделя, приводимого в движение двигателем, который обеспечивает требуемую частоту вращения в рабочем режиме. На диске имеется индексный маркер, который, проходя мимо специального датчика, отмечает начало каждого оборота диска. Информация на диске располагается на концентрических треках (дорожках), нумерация которых начинается с внешнего трека (Track 00).  Каждый трек разделен на секторы фиксированного размера. Сектор и является минимальным блоком информации, который может быть записан на диск или считан с диска. Нумерация секторов начинается с 1 и привязывается к индексному маркеру. Каждый сектор имеет служебную область, содержащую адресную информацию, контрольные коды и некоторую другую информацию, и область данных, размер которой традиционно составляет 512 байт. Если накопитель имеет несколько рабочих поверхностей (на шпинделе м. б. размещен пакет дисков, а у каждого диска м. б. использованы две поверхности), то совокупность всех треков с одинаковыми номерами составляет цилиндр. Для каждой рабочей поверхности в накопителе имеется своя головка (Head), обеспечивающая запись и чтение. Головки нумеруются начиная с 0. Для того, чтобы произвести элементарную операцию обмена – запись или чтение сектора – шпиндель должен вращаться с заданной скоростью, блок головок должен быть подведен к требуемому цилиндру, и только тогда требуемый сектор подойдет к выбранной головке, начнется физическая операция обмена данными между головкой и блоком электроники накопителя.  Контроллер накопителя выполняет сборку и разборку блоков информации (секторов или целых треков), включая формирование и проверку контрольных кодов, осуществляет модуляцию и демодуляцию сигналов головок и управляет всеми механизмами накопителя. Скорость вращения у дисков различна – 4200 об./мин и выше. Высокие скорости вращения порождают проблемы с балансировкой, гироскопическим эффектом и аэродинамикой головок. Для магнитных головок весьма критичным является расстояние от головки до поверхности магнитного слоя носителя.

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

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

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

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

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

Информация на дисках записывается и считывается посекторно. В начале каждого сектора имеется заголовок, за которым следует поле данных и поле контрольного кода.

В заголовке имеется поле идентификатора, включая номер цилиндра, головки и собственно сектора. В этом же идентификаторе может содержаться и пометка о дефектности сектора, служащая указанием на невозможность его использования для хранения данных. Достоверность поля идентификатора проверяется с помощью контрольного кода заголовка. Заголовки секторов записываются только во время операции низкоуровневого форматирования, причем для всего трека сразу. Поле данных сектора отделено от заголовка небольшой зоной, а завершает сектор контрольный код поля данных. Итак, структура трека – последовательность секторов – задается при его форматировании, а начало трека определяется контроллером по сигналу от индексного датчика. Нумерация секторов может быть произвольной. При обращении к сектору он определяется по идентификатору, а если за оборот диска (или за несколько оборотов) сектор с указанным номером не будет найден, контроллер зафиксирует ошибку – Sector not found – сектор не найден. Забота о поиске сектора по его заголовку, помещение в его поле данных записываемой информации, снабженной контрольным кодом, а также считывание информации и ее проверка лежит на контроллере накопителя. Контроллер управляет, поиском затребованного цилиндра и коммутацией головок, выбирая нужный трек.

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

Особенности современных контроллеров дисковых накопителей

Это сложные электронные устройства, разрабатываемые на основе микропроцессоров.

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

Независимо от причин, ошибки должны быть выявлены и по возможности исправлены. Для этого применяются специальные коды с исправлением ошибок.

Если сектор считывается с ошибкой, контроллер автоматически выполнит повторное считывание, и при случайности ошибки велик шанс правильно считывания сектора.

Если данные так и не удалось считать верно, контроллер обязан сигнализировать об этом установкой бита ошибки контрольного кода в байте состояния, на что программа может отреагировать сообщением вида «Data Error».

Общепринятой технологией кэширования диска является упреждающее считывание:

Если контроллер получает запрос на чтение сектора, то он автоматически считает в буфер и секторы, следующие за запрошенным.

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

Более «умные» контроллеры идут дальше: они считывают в буфер весь трек, как только выполняется команда позиционирования.

 

Файловые системы.

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

 В широком смысле понятие "файловая система" включает:

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

Имена файлов

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

Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.

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

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

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

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

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

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

Логическая организация файла

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

Физическая организация и адрес файла

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

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


Поделиться:



Последнее изменение этой страницы: 2019-04-10; Просмотров: 266; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.022 с.)
Главная | Случайная страница | Обратная связь