Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Организация программного обеспечения ввода-вывода



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

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

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

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

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

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

4.3. Мультипроцессорная обработка

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

Способы организации вычислительного процесса:

· Асимметричное мультипроцессирование (ведущий/ведомый).

· Симметричное мультипроцессирование.

· Свойство ОС – реентерабельность (или повторная входимость).

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

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

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

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

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

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

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

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

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

Контрольные вопросы

1. Какую роль играют прерывания в вычислительных системах? 2. Каковы функции независимогоот устройств слоя операционной системы? 3. Каковы функции пользовательского слоя программного обеспечения? 4. Какие типы устройств ввода-вывода известны? 5. Какие компоненты включает в себя любое устройство ввода-вывода? 6. Что является связующим звеном между устройством ввода-вывода и операционной системой?





Дата публикования: 2014-11-03; Прочитано: 338 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...