Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Концепция виртуальной машины.




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

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

— версия операционной системы;

— собственная системно-независимая программа;

— подсистема СВМ„ например подсистема диалоговой обработки (ПДО);

— подсистема операционной системы, основанная на концепции ВМ.

Пользователи отдельных ВМ полностью независимы (рис. 3.10).

Система виртуальных машин решает проблемы «традиционных» операционных систем, упомянутые ранее.

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

2. Пользователь имеет иллюзию обладания отдельной ЭВМ. В действительности же он обладает отдельной виртуальной машиной. Управляющая программа в большей степени «прозрачна».

3. Виртуальная основная память позволяет снизить остроту проблемы «фрагментации» памяти.

4. Уровень реального мультипрограммирования повышается. В результате возрастает интенсивность использования ресурсов, в первую очередь ЦП и оперативной т памяти.

5. Виртуализация расширяет объем ресурсов, в первую очередь основной памяти.

6. На одной реальной ЭВМ можно выполнить одновременно несколько операционных систем, их версий, подсистем, системно-независимых программ.

 

 

Рис. 10. Система виртуальных машин

 

Концентрация виртуального ресурса. Конфигурация виртуальной машины включает в себя виртуальный процессор; виртуальную память (основную память); виртуальные каналы ввода-вывода; виртуальные устройства ввода-вывода; виртуальный пульт оператора.

Виртуальный процессор (виртуальный центральный процессор) моделируется на реальном процессоре путем выделения каждой ВМ части времени реального процессора по принципу квантования.

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

Виртуальные каналы ввода-вывода моделируются либо путем разделения реальных каналов ввода-вывода, либо путем закрепления (распределения) реального канала за виртуальной машиной. Аналогично моделируются и устройства управления. Способ моделирования зависит от того, как моделируются виртуальные устройства ввода-вывода.

Виртуальные устройства ввода-вывода моделируются путем разделения, накопления или закрепления.

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

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

Закрепление (распределение) означает выделение реального устройства в полное распоряжение виртуальной машины. Может применяться для любого устройства, однако применяется в основном для накопителей на магнитных лентах (НМЛ), абонентских пунктов и других устройств, не обеспеченных в СВМ.

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

 

Обработка прерываний.

Управление задачами

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

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

Супервизор прерываний.Супервизор прерываний выполняет следующие функции:

1) первичную обработку прерываний: анализ причин прерываний; выбор программы, которая должна реагировать на прерывание;

2) диспетчирование задач, связанное с их переключением в активное состояние;

3) процедуру выхода после завершения выполнения определенных функций супервизора.

Аппарат прерываний позволяет супервизору автоматически реагировать на условия, возникающие в вычислительной системе (в выполняемых задачах, в центральном процессоре или во внешних устройствах ввода-вывода). Так, наличие прерываний при обращении к супервизору дает возможность программам пользователя в явном виде обращаться к программам супервизора. Прерывания ввода-вывода позволяют супервизору контролировать состояние системы ввода-вывода. В результате возникновения прерываний центральный процессор прекращает выполнение текущей задачи и переключается на выполнение программы супервизора, предназначенной для обработки прерываний данного типа.

Действие прерывания состоит в сохранении текущего слова состояния программы (PSW) в определенном для каждого типа прерываний месте основной памяти и выборке «нового» PSW в качестве текущего. Сохраняемое «старое» PSW содержит адрес команды, с которой следует продолжать выполнение прерванной программы. Кроме того, в старое PSW помещается код прерывания, отражающий причину его возникновения. В результате выборки нового PSW управление получает соответствующий типу прерывания обработчик прерываний супервизора, адрес которого помещен в новом PSW.

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

Общая схема обработки прерываний показана на рис. 11. Она представляет собой наиболее распространенную двухступенчатую схему обработки прерываний, применяемую в вычислительных системах общего назначения. В таких системах число типов прерываний измеряется единицами (в ЕС ЭВМ — пяти или шести типов в зависимости от типа модели). Небольшое число типов f прерываний обеспечивает достаточно простую и дешевую 1 аппаратную схему реализации прерываний. Уточнение I причины возникновения прерывания осуществляется с I помощью кода, помещаемого в старое PSW в момент I прерывания. Первая ступень обработки прерывания заключается в выборе и выполнении программы обработки прерывания (первичная обработка прерывания). Количество таких программ определяется количеством типов прерываний. Вторая ступень обработки прерывания заключается в выборе с помощью кода прерывания и выполнении программы обработки прерывания, которая является его целью.

 

Рис. 11. Общая схема обработки прерываний.

 

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

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

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

1) образование задачи как мультипрограммной единицы;

2) поддержание совокупности задач, одновременно выполняемых в вычислительной системе;

3) переключение управления между задачами;

4) завершение задачи.

Вся информация о задаче помещается в блок управления задачей (ТСВ). Каждой задаче соответствует блок управления. Число блоков ТСВ определяет число одновременно выполняемых задач (уровень мультипрограммирования). Для целей управления супервизор задач связывает блоки управления в различные списки и очереди. Блок ТСВ образуется и заполняется управляющей информацией в момент образования задачи. Он существует до ее завершения.

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

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

Наиболее распространенный принцип — приоритетный. Все блоки ТСВ располагаются в очереди задач в порядке убывания установленного приоритета. Системные задачи, как правило, имеют самый высокий приоритет. Блок ТСВ располагается в очереди в соответствии с приоритетом задачи.

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

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

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

Каждая задача в системе в текущий момент времени может находиться в одном из трех состояний:

1) активная задача — задача, имеющая управление центральным процессором; число таких задач ограничивается числом центральных процессоров; в однопроцессорной системе активной задачей может быть только одна задача;

2) задача в состоянии ожидания некоторого события, [ например завершения операции ввода-вывода или истечения временного интервала и т. д.;

! 3) задача в состоянии готовности использовать центральный процессор в случае, когда процессор (все процессоры) занят выполнением более приоритетных задач. В случае приоритетного принципа построения очереди задач функция диспетчера заключается в просмотре блоков ТСВ очереди начиная с наиболее приоритетного. При этом целью является поиск наиболее приоритетной задачи, которая находится в состоянии готовности использовать центральный процессор. Эта задача становится активной.

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

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

Так как многие процессы в мультипрограммной системе протекают асинхронно (например, выполнение задач, выполнение операций ввода-вывода, истечение заданных временных интервалов и т. д.), в системе должны быть средства для синхронизации таких процессов. Элементарным средством синхронизации является аппарат макрокоманд WAIT и POST, связываемых именем события, с которым они имеют дело. Макрокоманда WAIT определяет перевод задачи в состояние ожидания до завершения события, имя которого указано операндом. Макрокоманда POST определяет наступление события, имя которого указано операндом.

Предположим, что программа выдала запрос на ввод данных и не может дальше выполняться до получения запрошенных данных. В этой точке программы необходимо использовать макрокоманду WAIT, указав некоторое имя для события, которое определяет завершение операции ввода данных. Задача переводится в состояние ожидания. После завершения ввода супервизор ввода-вывода выдает макрокоманду POST с именем этого события. Задача переводится в состояние готовности и может выполняться дальше.

С помощью аппарата макрокоманд WAIT и POST можно реализовать более сложные алгоритмы синхронизации событий.

Завершение задачи осуществляется либо при выдаче макрокоманды DETACH, либо при завершении (аварийном или нормальном) задачи и всех ее подзадач. При завершении блок ТСВ выводится из очереди задач, а память, занятая задачей и блоком, освобождается.










Последнее изменение этой страницы: 2018-05-10; просмотров: 197.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...