Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 37

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 37 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 372020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 37)

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

Если устройство свободно, то поле указа­теля будет иметь нулевое значение. Если же устройство уже занято и рассматрива­емый указатель не нулевой, то новые запросы к устройству фиксируются посред­ством образования списка из дескрипторов задач, ожидающих данное устройство.торая таблица предназначена для реализации еще одного принципа виртуализа­ции устройств ввода-вывода — принципа независимости от устройства. Желатель°> Чтобы программисту не приходилось учитывать конкретные параметры (и/или0зМожности) того или иного устройства ввода-вывода, которое установлено (илиУстановлено) в компьютер. Для него должны быть важными только самые общие3Можности, характерные для данного класса устройств ввода-вывода. Например,140Глава 5.

Управление вводом-выводом в операционных системахпринтер должен уметь выводить (печатать) символы или графические изображе­ния. А накопитель на магнитных дисках — считывать или записывать порцию дан­ных по указанному адресу, то есть в координатах C-H-S (Cylinder-Head-Sector —номера цилиндра, головки и сектора) или по порядковому номеру блока данных.Хотя чаще всего программист и не использует прямую адресацию при работе смагнитными дисками, а работает на уровне файловой системы (см.

главу 6). Одна­ко в таком случае уже разработчики системы управления файлами не должнызависеть от того, каких типа и модели накопитель используется в данном компью­тере и кто является его производителем (например, HDD IBM IC35L120AVV207-0,WD1200JB или еще какой-нибудь). Важным должен быть только сам факт су­ществования накопителя, имеющего некоторое количество цилиндров, головокчтения-записи и секторов на дорожке магнитного диска. Упомянутые значенияколичества цилиндров, головок и секторов должны быть взяты из элемента таб­лицы оборудования. При этом для программиста также не должно иметь зна­чения, каким образом то или иное устройство подключено к вычислительнойсистеме. Поэтому в запросе на ввод-вывод программист указывает именно логи­ческое имя устройства.

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

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

Каждое устройство либо имеет свою линиюзапроса на прерывание, либо разделяет линию запроса на прерывание с другимиустройствами, но при этом имеется механизм второго уровня адресации устройствввода-вывода. Таким образом, таблица прерываний отображает связи между сиг­налами запроса на прерывания и самими устройствами ввода-вывода. Как и сис­темная таблица ввода-вывода, таблица прерываний в явном виде может и не при­сутствовать. Другими словами, можно сразу из основной таблицы прерывании141Основные системные таблицы ввода-выводакомпьютера передать управление на программу обработки (драйвер), связаннуюс элементом UCB. Важно наличие связи между сигналами прерываний и табли­цей оборудования.В ряде сложных операционных систем, а к ним следует отнести все современные32-разрядные системы для персональных компьютеров, имеется гораздо большесистемных таблиц или списков, используемых для организации управления опе­рациями ввода-вывода.

Например, одной из возможных и часто реализуемых ин­формационных структур, сопровождающих практически каждый запрос на вводвывод, является блок управления данными (Data Control Block, DCB). НазначениеDCB — подключение препроцессоров к процессу подготовки данных на ввод-вы­вод, то есть учет конкретных технических характеристик и используемых преоб­разований. Это необходимо для того, чтобы имеющееся устройство получало некакие-то непонятные ему коды или форматы данных, не соответствующие режи­му его работы, а коды и форматы, созданные специально под данное устройство.Теперь такие препроцессоры часто называют высокоуровневыми драйверами, илипросто драйверами, хотя изначально под термином «драйвер» подразумеваласьпрограмма управления операциями ввода-вывода.Взаимосвязи между описанными таблицами изображены на рис.

5.2.Таблицалогических именТаблицаоборудованияТаблицапрерываний1-й элемент1-йисв1-й элемент•..i-й элементj-й UCBh-й элемент•••j-й элементк-й UCBg-й элемент•••п-й UCBРис. 5.2. Взаимосвязи системных таблиц ввода-выводаНам осталось рассмотреть процесс управления вводом-выводом еще раз, теперь сУчетом изложенных принципов (рис. 5.3).•запрос на операцию ввода-вывода от выполняющейся программы поступает насупервизор задач (шаг 1). Этот запрос представляет собой обращение к операци­онной системе и указывает на конкретную функцию API. Вызов сопровождаетсянекоторыми параметрами, уточняющими требуемую операцию. Модуль операци­онной системы, принимающий от задач запросы на те или иные действия, часто142Глава 5. Управление вводом-выводом в операционных системяуназывают супервизором задач.

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

Еслиже устройство свободно, то супервизор ввода-вывода определяет из UCB тип уст­ройства и при необходимости запускает препроцессор, позволяющий получитьпоследовательность управляющих кодов и данных, которую сможет правильнопонять и отработать устройство (шаг 3). Когда «программа» управления операци­ей ввода-вывода будет готова, супервизор ввода-вывода передает управление со­ответствующему драйверу на секцию запуска (шаг 4). Драйвер инициализируетоперацию управления, обнуляет счетчик тайм-аута и возвращает управление су­первизору (диспетчеру задач) с тем, чтобы он поставил на процессор готовую кисполнению задачу (шаг 5).

Система работает своим чередом, но когда устройствоввода-вывода отработает посланную ему команду, оно выставляет сигнал запросана прерывание, по которому через таблицу прерываний управление передается насекцию продолжения (шаг 6). Получив новую команду, устройство вновь начина­ет ее обрабатывать, а управление процессором опять передается диспетчеру задач,и процессор продолжает выполнять полезную работу. Таким образом, получаетсяпараллельная обработка задач, на фоне которой процессор осуществляет управле­ние операциями ввода-вывода.12Супервизорввода-выводаСупервизорпрограмм1-1ПрикладнаяпрограммаДиспетчерзадач4к ,i.Драйверустройстваввода-вывода(секцияпродолжения)2'Таблица UCB>'DRTТаблицалогических(виртуальных)именустройствввода-вывода•5Элемент UCB•i13>ГУстройствоввода-вывода4iПрепроцессорввода-вывода'—^кДрайверустройстваввода-вывода(секциязапу ска;Рис.

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

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

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

В этом случае логически операция вывода для приложения счита­ется выполненной сразу же, и задача может не ожидать окончания действительногопроцесса передачи данных на устройство. Реальным выводом данных из систем­ного буфера занимается супервизор ввода-вывода. Естественно, что выделениебуфера из системной области памяти берет на себя специальный системный про­цесс по указанию супервизора ввода-вывода. Итак, для рассмотренного случаявывод будет асинхронным, если, во-первых, в запросе на ввод-вывод указано нанеобходимость буферизации данных, а во-вторых, устройство ввода-вывода до­пускает такие асинхронные операции, и это отмечено в UCB.Можно организовать и асинхронный ввод данных.

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее