Файл: Функции операционных систем персональных компьютеров (Управление вводом/выводом).pdf
Добавлен: 28.03.2023
Просмотров: 237
Скачиваний: 4
Вторая таблица предназначена для реализации ещё одного принципа виртуализации устройств ввода/вывода – независимости от устройства. Желательно, чтобы программист не был озабочен учётом конкретных параметров (и/или возможностей) того или иного устройства ввода/вывода, которое установлено (или не установлено) в компьютер. Для него должны быть важны только самые общие возможности, характерные для данного класса устройств ввода/вывода, которыми он желает воспользоваться. Например, принтер должен уметь выводить (печатать) символы или графическое изображение. А накопитель на магнитных дисках – считывать или записывать по указанному адресу (в координатах C-H-S1) порцию данных. Хотя чаще всего программист и не использует прямую адресацию при работе с магнитными дисками, а работает на уровне файловой системы. Однако в таком случае уже разработчики файловой системы не должны зависеть от того, накопитель какого конкретного типа и модели, а также какого производителя используется в данном конкретном компьютере. Важным должен быть только сам факт существования накопителя, имеющего некоторое количество цилиндров, головок чтения/записи и секторов на дорожке магнитного диска. Упомянутые значения количества цилиндров, головок и секторов должны быть взяты из элемента таблицы оборудования. При этом для программиста также не должно иметь значения, каким образом то или иное устройство подключено к вычислительной системе, а не только какая конкретная модель устройства используется. Поэтому в запросе на ввод/вывод программист указывает именно логическое имя устройства. Действительное устройство, которое сопоставляется виртуальному (логическому), выбирается супервизором с помощью таблицы, о которой идет речь. Итак, способ подключения устройства, его конкретная модель и соответствующий ей драйвер содержатся в уже рассмотренной таблице оборудования. Но для того, чтобы связать некоторое виртуальное устройство, использованное программистом при создании приложения с системной таблицей, отображающей информацию о том, какое конкретно устройство и каким образом подключено к компьютеру, используется вторая системная таблица – таблица описания виртуальных логических устройств (DRT, device reference table). Назначение второй таблицы – установление связи между виртуальными (логическими) устройствами и реальными устройствами, описанными посредством первой таблицы оборудования. Другими словами, вторая таблица позволяет супервизору перенаправить запрос на ввод/вывод из приложения на те программные модули и структуры данных, которые (или адреса которых) хранятся в соответствующем элементе первой таблицы. Во многих многопользовательских системах такая таблица не одна, а несколько: одна общая и по одной – на каждого пользователя, что позволяет строить необходимые связи между логическими (символьными) именами устройств и реальными физическими устройствами, которые имеются в системе.
Третья таблица необходима для организации обратной связи между центральной частью и устройствами ввода/вывода. Это таблица прерываний, которая указывает для каждого сигнала запроса на прерывание тот элемент UCB, который сопоставлен данному устройству, подключенному так, что оно использует настоящую линию (сигнал) прерывания. Как системная таблица ввода/вывода, таблица прерываний может в явном виде и не присутствовать. В принципе можно сразу из основной таблицы прерываний попадать на программу обработки (драйвер), имеющей связи с элементом UCB. Важно наличие связи между сигналами прерываний и таблицей оборудования.
В современных сложных ОС имеется гораздо больше системных таблиц или списков, используемых для организации процессов управления операциями ввода/вывода. Например, одной из возможных и часто реализуемых информационных структур, сопровождающих практически каждый запрос на ввод/вывод, является блок управления данными (data control block, DCB). Назначение этого DCB – подключение препроцессоров к процессу подготовки данных на ввод/вывод, то есть учет конкретных технических характеристик и используемых преобразований. Это необходимо для того, чтобы имеющееся устройство получало не какие-то непонятные ему коды либо форматы данных, которые не соответствуют режиму его работы, а коды, созданные специально под данное устройство и используемый в настоящий момент формат представления данных.
Запрос на операцию ввода/вывода от выполняющейся программы поступает на супервизор. Тот проверяет системный вызов на соответствие принятым спецификациям и в случае ошибки возвращает задаче соответствующее сообщение. Если же запрос корректен, то он перенаправляется в супервизор ввода/вывода .
Последний по логическому (виртуальному) имени с помощью таблицы DRT находит соответствующий элемент UCB в таблице оборудования. Если устройство уже занято, то описатель задачи, запрос которой сейчас обрабатывается супервизором ввода/вывода, помещается в список задач, ожидающих настоящее устройство. Если же устройство свободно, то супервизор ввода/вывода определяет из UCB тип устройства и при необходимости запускает препроцессор, позволяющий получить последовательность управляющих кодов и данных, которую сможет правильно понять и отработать устройство (действие 3). Когда «программа» управления операцией ввода/вывода будет готова, супервизор ввода/вывода передаст управление соответствующему драйверу на секцию запуска (действие 4). Драйвер инициализирует операцию управления, обнуляет счётчик тайм-аута и возвращает управление супервизору (диспетчеру задач) с тем, чтобы он поставил на процессор готовую к исполнению задачу (действие 5). Система работает своим чередом, но когда устройство ввода/вывода отработает посланную ему команду, оно выставляет сигнал запроса на прерывания, по которому через таблицу прерываний управление передаётся на секцию продолжения (действие 6). Получив новую команду, устройство вновь начинает её обрабатывать, а управление процессором опять передаётся диспетчеру задач, и процессор продолжает полезную работу. Таким образом, получается параллельная обработка задач, на фоне которой процессор осуществляет управление операциями ввода/вывода.
Если имеются специальные аппаратные средства для управления вводом/выводом, снимающие эту работу с центрального процессора (речь идет о каналах прямого доступа к памяти), то в функции центрального процессора будут по-прежнему входить все только что рассмотренные шаги, за исключением последнего – непосредственного управления операциями ввода/вывода. В случае использования каналов прямого доступа к памяти последние исполняют соответствующие канальные программы и разгружают центральный процессор, избавляя его от непосредственного управления обменом данными между памятью и внешними устройствами.
Распределение ресурсов:
ОС поддерживает мультипрограммирование и старается эффективно использовать ресурсы путем организации к ним очередей запросов, составляемых тем или иным способом. Это требование достигается поддерживанием в памяти более одного процесса, ожидающего процессор, и более одного процесса готового использовать ресурсы, как только последние станут доступными.
При необходимости использовать какой–нибудь ресурс (оперативную память, устройства ввода/вывода, массив данных и др.) задача обращается к супервизору ОС (ее центральному управляющему модулю), посредством специальных вызовов (команд, директив) и сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем (например, количество адресуемых ячеек ОП, количество дорожек или секторов на системном диске, устройство печати и объем выводимых данных).
Директива обращения к ОС передает ей управление, переводя процесс в привилегированный режим работы, если такой существует. Ресурс может быть выделен, задачей, обратившейся к супервизору с соответствующим запросом, если:
- он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу.
- текущий запрос и ранее выданные запросы допускают совместное использование ресурса.
- ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).
Получив запрос, ОС либо удовлетворяет его и возвращает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачу в очередь к ресурсу, переводя ее в состояние ожидания. Очередь к ресурсу может быть организована несколькими способами, но чаще всего это осуществляется с помощью списковой структуры.
После окончания работы с ресурсом задача опять с помощью специального вызова супервизора (посредством соответствующей директивы) сообщает ОС об отказе от ресурса, или ОС забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функции. Супервизор ОС, получив управление по этому обращению, освобождает ресурс и проверяет, имеется ли очередь к освободившемуся ресурсу. Если очередь есть – в зависимости от принятой дисциплины обслуживания (правила обслуживания) и приоритетов заявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее в состояние готовности к выполнению. После этого управление либо передается данной задаче, либо возвращается той, которая только что освободила ресурс.
При выдаче запроса на ресурс задача может указать, хочет ли она владеть ресурсом монопольно или допускает совместное использование с другими задачами.
Если в системе имеется некоторая совокупность ресурсов, то управлять их использованием можно на основе монопольной стратегии. Стратегия подразумевает четкую формулировку целей, следуя которым можно добиться эффективного распределения ресурсов.
В однопрограммной ОС присутствует только один пользовательский процесс. В мультипрограммной системе на ресурсы могут претендовать много независимых процессов.
Запуск программ на выполнение:
Запустить ту или иную программу можно при помощи кнопки Пуск. Чтобы запустить программу надо: Нажать кнопку Пуск, в меню Программы выбрать папку, в которой расположена нужная Вам программа. Давайте выберем папку стандартные, выберите в этой папке, к примеру ”Блокнот” и нажмите на мышке левую кнопку, программа запущена.
Также можно запустить программу при помощи команды выполнить. Для этого нажмите кнопку пуск и выберите команду выполнить. Далее введите имя программы, документа или папки, так же можно нажать кнопку обзор и найти папку, в которой находится программа. Часто для запуска программы через Выполнить достаточно ввести только имя файла или программы.
Всевозможные вспомогательные операции обслуживания
Дефрагментация диска предназначена для перехода в режим дефрагментации локальных дисков компьютера. Эта операция позволяет оптимизировать работу Windows и повысить ее быстродействие. Сущность дефрагментации заключается в следующем.
При добавлении и удалении объектов (файлов и папок) на жестком диске происходит их фрагментация, то есть расчленение на фрагменты, которые хранятся в разных местах жесткого диска. Это вызывает замедление доступа к требуемому объекту, что в результате негативно отражается на быстродействии системы. Но после выполнения дефрагментации жесткого диска такие объекты объединяются таким образом, что фрагменты размещаются в соседних секторах жесткого диска. Другими словами, с помощью дефрагментации осуществляется систематизация размещения хранящихся на жестком диске объектов, благодаря чему доступ к ним заметно ускоряется.
При активизации команды Дефрагментация диска отображается окно, которое представлено на рисунке ниже
Рисунок. Окно программы дефрагментации
Вверху этого окна отображается список всех локальных дисков данного компьютера. В соответствующих столбцах для каждого диска показано его имя, текущее состояние (при открытии окна данная колонка пуста, а, например, после проведения анализа в ней отобразится значение Проанализировано ), файловая система (FAT или NTFS), емкость диска, количество свободного места, а также процент свободного места по отношению к общему объему. Перед тем как запустить дефрагментацию, желательно проанализировать состояние текущего диска на предмет того, нужно ли проводить эту операцию. Для этого выделите диск в списке курсором и нажмите кнопку Анализ либо выберите в меню Действие команду Анализ . Результат анализа отображается в виде информационного сообщения (См. Ниже).
Рис. Результат анализа диска С
В данном случае анализ показал, что необходимо выполнить дефрагментацию диска С . Можно сформировать подробный отчет об анализе диска (см. Рисунок) – для этого нужно нажать кнопку Вывести отчет .
Подробный отчет об анализе диска
Вверху окна отчета содержатся данные о проанализированном локальном диске: его размер, количество свободного места, процент фрагментации, количество фрагментированных файлов и папок, средний размер файла, а также иные интересные сведения.
Внизу окна отчета содержится список самых фрагментированных объектов. В соответствующих столбцах для каждой позиции показано количество фрагментов, а также размер и путь к объекту.
После проведения анализа главное окно программы примет вид :
Окно дефрагментации после анализа диска
В данном случае для диска С в столбце Состояние сеанса появилось значение Проанализировано , а также сформировалась цветовая диаграмма состояния диска до дефрагментации. На этой диаграмме красным цветом обозначены фрагментированные файлы, синим – не фрагментированные файлы, зеленым – неперемещаемые файлы, а белым – свободное место на диске.