Взаимодействие с внешними устройствами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Взаимодействие с внешними устройствами



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

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

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

Архитектурные особенности ОС

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

Монолитное ядро

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

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

монолитное ядро – старейший способ организации ОС (UNIX – система). Можно выделить некоторую структуру:

1. сервисные процедуры, соответствуют системным вызовам, выполняются в привилегированном режиме, пользовательские программы в непривилегированном режиме;

2. главная сервисная программа используется для перехода с одного уровня привилегий на другой;

3. программные утилиты помогают выполнять сервисные процедуры.

Многоуровневые системы

5. интерфейс пользователя
4. управление ввода-вывода
3. драйверы устройства, связи оператора и консоли
2. управление памятью
1. планирование задач и процессов
0. HARDWARE (техническое обеспечение)

 

Можно разбить всю вычислительную систему на ряд более мелких уровней, с хорошо определенными связями между ними, так чтобы объекты уровня n могли вызывать объекты уровня n-1.

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

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

Виртуальная машина

Программа пользователя Программа пользователя Программа пользователя
MS-DOS Linux Windows-NT
Виртуальное hardware Виртуальное hardware Виртуальное hardware

Реальная операционная система

Реальное hardware

 

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

Такой подход позволяет каждому пользователю загрузить свою ОС на виртуальную машину и делать с ней все что угодно. Первой реальной системой такого рода была система CP/CMS или VM/370.

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

Микроядерная архитектура

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

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

Смешанные системы

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

2. Другим примером смешанного подхода может служить возможность запуска ОС с монолитным ядром под управлением микроядра. Так устроены 4.4 BSD и MKLINUX, основанные на микроядре MACH. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами осуществляется монолитным ядром. Данный подход сформировался в результате попыток использования преимущества в микроядерной архитектуре, сохраняя по возможности хорошо отлаженный код монолитного ядра.

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

Процессы

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

Состояние процесса

Каждый процесс может находиться как минимум в двух состояниях: процесс исполняется, процесс не исполняется.

Процесс, находящийся в состоянии процесс исполняется, через некоторое время может быть переведен в состояние «процесс не исполняется» (приостановлен) или завершен ОС.

Приостановка происходит по двум причинам:

1. для его работы потребовалось какое-либо события;

2. истек временной интервал, отведенный ОС для работы данного процессора.

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

Разобьем состояние процесс не исполняется на два новых состояния: готовность и ожидание.

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

1. ОС прекращает его деятельность;

2. он не может продолжать свою работу пока не произойдет некоторое событие и ОС переводит его в состояние ожидания;

3. в результате возникновения прерывания в вычислительной системе, его возвращают в состояние готовность (прерывание от таймера по истечению предусмотренного времени).

Новая модель хорошо описывает поведение процессов во время их существования. Для полноты картины введены еще два состояния: рождение и закончил исполнение.

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

В Windows NT – 7 различных состояний, в Unics – 9 различных состояний.

Тем не менее, так или иначе, все ОС подчиняются изложенной выше модели.



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 78; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.200.143 (0.019 с.)