Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОПЕРАЦИОННЫХ СИСТЕМ.doc
Скачиваний:
80
Добавлен:
09.11.2019
Размер:
4.83 Mб
Скачать

2.4.3. Программные прерывания

Программное прерывание реализует один из способов перехода на подпрограмму с помощью специальной инструкции процессора, например, INT в процессорах Intel Pentium. При выполнении команды программного прерывания процессор отрабатывает ту же последовательность действий, но только происходит это в предсказуемой точке программы – там, где программист поместил данную команду [2].

Практически все современные процессоры имеют в своей системе команд инструкции программных прерываний. Одной из причин их появления является то, что их использование часто приводит к более компактному коду программ по сравнению с использованием стандартных команд выполнения процедур. Это объясняется тем, что разработчики процессора обычно резервируют для обработки прерываний небольшое число возможных подпрограмм. Поэтому длина операнда в команде программного прерывания, который указывает на нужную подпрограмму, меньше, чем в команде CALL перехода на эту подпрограмму. Например, в процессоре x86 предусмотрена возможность применения 256 программ обработки прерываний, поэтому в инструкции INT операнд имеет длину в 1 байт. Значение операнда команды INT просто является индексом в таблице из 256 адресов подпрограмм обработки прерываний, один из которых и используется для перехода по команде INT. А при использовании команды CALL потребовался бы уже код длиной в 2 или 4 байта. Другой причиной применения программных прерываний вместо обычных инструкций вызова подпрограмм является возможность смены пользовательского режима на привилегированный одновременно с вызовом процедуры [2].

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

2.5. Концепция виртуализации

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

Виртуализация – переход на более высокий уровень абстракции в управлении конкретными конфигурациями ВС. Построение виртуальных ресурсов, их распределение и использование свойственны любой ОС [1-4, 10]. Концепция виртуализации

  • устраняет конфликты при управлении процессами и распределении ресурсов в условиях нехватки ресурсов;

  • облегчает работу пользователя с системой;

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

Для осуществления виртуализации нужна централизованная схема распределения ресурсов. При виртуализации ресурсов получаются две формы «обмана» пользователей [10]:

  • обман 1: ресурс реально не существует или существует, но с ухудшенными характеристиками;

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

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

Примеры виртуализации.

  1. Построение на одном реальном таймере нескольких виртуальных – обман 2: для параллельных процессов используется много таймеров.

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

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

  4. Нулевое устройство – обман 1: есть устройство для вывода. Это «заглушка» для псевдовывода в разных ОС (например, в UNIX).

  5. Спулинг принтера – обман 2: для параллельных процессов есть много принтеров. Термин «спулинг» образован от английского simultaneous peripheral operation on-line (SPOOL). Принтер представляет последовательно используемый ресурс, который обычно замедляет развитие параллельных процессов, так как часто оказывается не во время занят. Реализация спулинга имеет следующие особенности [2]:

  • каждый процесс получает свое виртуальное устройство вывода;

  • оно моделируется областью на жестком диске, то есть образуется буфер (рис.2.6). При этом запись в буфер производится гораздо быстрее, чем вывод на принтер;

  • фактическая выдача информации на (единственный) реальный принтер произойдет один раз, когда окончатся все процессы, связанные с данным буфером;

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

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

Рис.2.6. Образование буфера

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

Приведенные примеры 1–5 иллюстрируют возможности построения и использования виртуальных ресурсов на базе реальных:

  • каждый виртуальный ресурс моделируется некоторым процессом;

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

  • для построения виртуальных ресурсов используются (дополнительные) реальные ресурсы, распределяемые специальным образом;

  • при построении нескольких виртуальных ресурсов нужно в составе распределителя реализовать определенные дисциплины распределения виртуальных ресурсов среди процессов-потребителей.

Далее рассмотрим два самых значимых примера виртуализации.

  1. Виртуальная память – обман 1: объем ОП неограничен. ОП и внешняя память (или ее часть) объединяются в виртуальную память, общий объем которой ограничивается только возможностями адресации. Для адресации важно число разрядов адресной шины:

  • 24-разрядная шина позволяет адресовать до 16 Мбайт (224 байт = 2(4+10+10) байт = 24*210*210 байт = 16 Мбайт) памяти;

  • 32-разрядная – до 4 Гбайт (232 байт = 2(2+10+10+10) байт = 22*210*210 *210 байт = 4 Гбайт) памяти.

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

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

  • языковое представление. Главное внимание сосредоточено на языке программирования, а ВМ воспринимается как «черный ящик», выполняющий программы. Структура ВМ пользователя не интересует;

  • архитектурное представление. Главное здесь – характеристики ВМ. ВМ воспроизводит архитектуру реальной машины, но имеет новые, улучшенные или даже идеальные характеристики (бесконечная ОП, один или несколько процессоров, управляемых средствами языка программирования, произвольное число УВВ с удобным способом доступа, представления информации, без ограничений на объем передаваемой или хранимой информации).

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