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



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


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



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


ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

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

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

Пользователи отдельных ВМ полностью независимы (рис. 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, либо при завершении (аварийном или нормальном) задачи и всех ее подзадач. При завершении блок ТСВ выводится из очереди задач, а память, занятая задачей и блоком, освобождается.

Управление основной памятью

 

Основная память используется для размещения выполняемых программ и их данных. Различают два вида основной памяти (рис. 12):

1) реальная оперативная память; при этом основная память совпадает с оперативной;

2) виртуальная память; при этом основная память моделируется на НМД. Используется странично-сегментная организация. Используемые ЦП страницы загружаются из виртуальной памяти в реальную, вытесняя другие страницы. Виртуальная память может намного превышать реальную.

Рис. 3..12. Основная память в системе:

а—без виртуальной памяти; 6—с виртуальной памятью;

ЦП — центральный процессор; ОП — оперативная память; ВП — виртуальная память; ОС — ядро операционной системы.

Функции супервизора памяти.Управление основной памятью осуществляет супервизор памяти, являющийся компонентом управляющей программы.

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

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

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

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

1) учет свободных участков основной памяти (основа управления основной памятью);

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

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

4) борьба с фрагментацией памяти;

5) многоуровневое распределение основной памяти;

6) повышение уровня мультипрограммирования. }

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

Размер свободного участка Адрес следующего элемента

 

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

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

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

— при запросе, равном 11. При этом очередь свободных участков будет иметь вид, приведенный на рис. 3.13, б;

— при запросе, равном l4 < l1. При этом очередь свободных участков будет иметь вид, приведенный на рис. 3.13, в.

 

Рис. 13. Примеры очередей свободных участков:

l5=l1-l4,где l4 — размеры запроса

 

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



Последнее изменение этой страницы: 2016-06-26; просмотров: 592; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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