Предоставление одной программной доступа другой программе к средству отслеживания предупреждений
Иллюстрации
Показать всеИзобретение относится к области обработки данных в вычислительной среде, а именно к облегчению обработки данных при совместном использовании ресурсов. Технический результат заключается в обеспечении возможности выполнения программы диспетчеризуемой единицы в гостевом центральном процессоре гостевой мультипроцессорной конфигурации за счет предоставления льготного периода и средства отслеживания предупреждений. Технический результат достигается за счет предоставления, в случае получения указания, что вторая программа зарегистрирована, средства отслеживания предупреждений для второй программы, а также за счет уведомления второй программы первой программой о начале льготного периода, и выполнения первой программой второй функции после льготного периода. 3 н. и 12 з.п. ф-лы, 21 ил.
Реферат
Предпосылки создания изобретения
Настоящее изобретение согласно одной из его особенностей относится, в целом, к обработке данных в вычислительной среде, более точно к облегчению обработки данных при совместном использовании ресурсов.
Средой одного из типов, в которой совместно используются ресурсы, является виртуальная среда, в которую входит центральный хост-процессор (ЦП) и один или несколько гостевых центральных процессоров. Гостевой ЦП (также известный как виртуальный ЦП) обеспечивается посредством хост-программы (например, операционной хост-системы), выполняемой в хост-ЦП. Хост-программа предпринимает действия с целью распределения ресурсов из базовой хост-конфигурации и выделения этих ресурсов гостевому ЦП.
В одном из частных вариантов осуществления условием существования гостевого ЦП является переход хост-ЦП в режим интерпретационного выполнения. В этот момент в виртуальном ЦП начинается выполнение гостевой операционной системы (также именуемой в описании гостевой программой), а выполнение хост-программы в хост-ЦП приостанавливается. Выполнение хост-программы в ЦП возобновляется по окончании режима интерпретационного выполнения. Существуют методы согласования работы хост-ЦП и гостевого ЦП, позволяющие сохранять и восстанавливать состояние хост-ЦП и гостевого ЦП. Обычно, когда хост-программа начинает выполнение гостевой программы, выполнение хост-программы приостанавливается до завершения выполнения гостевой программы. Как гостевой ЦП, так и хост-ЦП являются различными режимами одного хост-ЦП.
В хост-конфигурацию обычно входят все ресурсы компьютерной системы. Эти ресурсы включают без ограничения центральные процессоры (ЦП), основную память и устройства ввода-вывода. В такой системе одним хост-ЦП может поддерживаться множество гостевых ЦП. Это осуществляется путем выделения каждому гостевому ЦП промежутка времени для использования хост-ЦП, называемого квантом времени, после чего хост-ЦП переходит к поддержке другого гостевого ЦП на протяжении кванта времени, и т.д. Число гостевых ЦП, поддерживаемых хост-ЦП, изменяется в зависимости от возможностей хост-ЦП и возможностей, которые желательно предоставлять каждому гостевому ЦП.
Гостевая конфигурация обычно сформирована из двух или более гостевых ЦП и именуется гостевой мультипроцессорной (МР) конфигурацией. Каждый гостевой ЦП может обеспечиваться совместно используемым ресурсом отдельного хост-ЦП или даже может совместно использовать ресурсы одного хост-ЦП. Одним из атрибутов такого совместного использования является то, что гостевой ЦП может действовать в течение определенного промежутка времени, именуемого квантом времени, а затем бездействует в течение какого-либо произвольного промежутка времени. Период бездействия изменяется в зависимости от политик приоритетов, установленной системой, общего числа гостевых ЦП, которые должны совместно использовать хост-ЦП, конкретного применяемого метода совместного использования.
В такой гостевой мультипроцессорной системе программа, иногда называемая диспетчеризуемой единицей (dispatchable unit) (DU), может диспетчеризироваться гостевой операционной системой в гостевом ЦП, а затем во время выполнения этой диспетчеризуемой единицы истекает ее квант времени для использования хост-ЦП. В результате, диспетчеризуемая единица может оказаться в ситуации, когда ее выполнение не может быть продолжено ни в одном другом гостевом ЦП гостевой мультипроцессорной конфигурации независимо от доступности каких-либо других гостевых ЦП. Вместо этого она должна ожидать, пока одному единственному гостевому ЦП не будет предоставлен следующий квант времени, чтобы продолжить ее выполнение. В зависимости от метода совместного использования и относительного приоритета гостевой конфигурации предоставление следующего кванта времени может откладываться на существенный промежуток времени. Даже если в гостевую конфигурацию входят другие гостевые ЦП, способные выполнять диспетчеризуемую единицу, продолжение ее выполнения невозможно из-за состояния гостевого ЦП диспетчеризуемой единицы, которое было сохранено при истечении предыдущего кванта времени. Пока это конкретное состояние не может использоваться для продолжения работы гостевого ЦП, диспетчеризуемая единица бездействует.
Краткое изложение сущности изобретения
Преодоление недостатков известного уровня техники и достижение преимуществ обеспечивается за счет способа облегчения обработки данных в вычислительной среде, включающего: предоставление первой программой второй программе указания об установке в вычислительной среде средства отслеживания предупреждений, предназначенном для предоставления второй программе льготного периода для выполнения первой функции, причем указание об установке получает вторая программа; получение первой программой, в случае вышеупомянутого предоставления, незапрашиваемого указания о том, что вторая программа зарегистрировалась для средства отслеживания предупреждений, причем регистрация включает указание первой программе, что вторая программа понимает протокол средства отслеживания предупреждений и намерена участвовать в работе средства отслеживания предупреждений; предоставление, в случае получения указания, что вторая программа зарегистрирована, средства отслеживания предупреждений для второй программы; уведомление второй программы первой программой о начале льготного периода; и выполнение первой программой второй функции после льготного периода.
В изобретении также предложены соответствующая компьютерная система и машиночитаемый носитель данных, реализующие охарактеризованный выше способ.
Дополнительные признаки и преимущества изобретения реализованы посредством приемов, раскрытых в описанных вариантах осуществления. В описании подробно рассмотрены другие варианты осуществления и особенности, считающиеся частью заявленного изобретения.
Краткое описание чертежей
Одна или несколько особенностей настоящего изобретения конкретно охарактеризованы и отдельно заявлены в формуле изобретения, следующей за описанием. Перечисленные выше и другие задачи, признаки и преимущества изобретения станут ясны из следующего далее подробного описания в сочетании с сопровождающими его чего чертежами, на которых:
на фиг. 1 проиллюстрирован один из вариантов осуществления вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг. 2 - другой вариант осуществления вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг. 3 - еще один вариант осуществления вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг. 4 - один из вариантов осуществления логики выполнения гостем протокола средства прерывания с целью отслеживания предупреждений согласно одной из особенностей настоящего изобретения,
на фиг. 5 - один из вариантов осуществления логики выполнения хостом протокола средства прерывания с целью отслеживания предупреждений согласно одной из особенностей настоящего изобретения,
на фиг. 6 - один из вариантов осуществления логики обработки хостом завершения работы гостем согласно одной из особенностей настоящего изобретения,
на фиг.7 - один из вариантов осуществления общего представления логики средства прерывания с целью отслеживания предупреждений согласно одной из особенностей настоящего изобретения,
на фиг.8А-8В - варианты осуществления логики обработки средства прерывания с целью отслеживания предупреждений согласно одной из особенностей настоящего изобретения,
на фиг.9 - один из вариантов осуществления логики приема прерывания с целью отслеживания предупреждений согласно одной из особенностей настоящего изобретения,
на фиг.10 - один из вариантов осуществления формата команды диагностирования, используемой согласно одной из особенностей настоящего изобретения,
на фиг.11 - один из вариантов осуществления компьютерного программного продукта, в котором содержится одна или несколько особенностей настоящего изобретения,
на фиг.12 - один из вариантов осуществления компьютерной хост-системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг.13 - один из дополнительных примеров компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг.14 -другой пример компьютерной системы, представляющей собой компьютерную сеть, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг.15 - один из вариантов осуществления различных элементов компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг.16А - один из вариантов осуществления блока выполнения, проиллюстрированной на фиг.15 компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг.16Б - один из вариантов осуществления блока выполнения команд перехода в проиллюстрированной на фиг.15 компьютерной системе, в которой содержится и используется одна или несколько особенностей настоящего изобретения,
на фиг.16В - один из вариантов осуществления блока выполнения команд загрузки/сохранения в проиллюстрированной на фиг.15 компьютерной системе, в которой содержится и используется одна или несколько особенностей настоящего изобретения, и
на фиг.17 - один из вариантов осуществления компьютерной хост-системы эмуляции, в которой содержится и используется одна или несколько особенностей настоящего изобретения.
Подробное описание
Согласно одной из особенностей настоящего изобретения предложено средство предупреждения программы (например, операционной системы) о том, что она имеет льготный период для выполнения функции. Например, программе предоставляется льготный период для осуществления очистки (например, завершения выполнения, прекращение выполнения и/или перемещения диспетчеризуемой единицы).
Согласно одной из дополнительных особенностей настоящего изобретения программа и/или процессор предупреждается о скорой потере им доступа к ресурсам (например, совместно используемым ресурсам). Например, процессору, использующему ресурсы совместно с другими процессорами, передается предупреждение о скорой потере им доступа к ресурсам. В качестве дополнительного примера, программа, такая как операционная система, выполняемая в совместно используемом процессоре (т.е. программа, которая использует процессор совместно с другими программам) предупреждается о скорой потере ей ресурсов процессора.
В одном из частных вариантов осуществления предложено средство, в котором гостевой программе, выполняемой в гостевом ЦП, обеспеченном хост-ЦП, передается предупреждение об истечении кванта времени, предоставляемого гостевому ЦП хост-ЦП, или о прерывании хост-ЦП обслуживания предоставленного гостевому ЦП кванта времени. В предупреждении указан льготный период, который гостевой ЦП может использовать для выполнения конкретной функции, такой как завершение выполнения диспетчеризуемой единицы, прекращение выполнения диспетчеризуемой единицы в момент, когда диспетчеризуемая единица становится повторно диспетчеризуемой, и/или перемещение диспетчеризуемой единицей в другой гостевой ЦП.
В контексте настоящего изобретения льготный период означает, например, определенное количество времени, число команд, число циклов и т.д. Он имеет заданный срок действия, в течение которого может выполняться одна или несколько функций.
Рассмотрим один из вариантов осуществления вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения, который описан со ссылкой на фиг.1. В этом конкретном варианте осуществления вычислительная среда 100 содержит множество процессоров 102, совместно использующих ресурсы 104. Каждому процессору (и/или программе, такой как операционная система, выполняемая в процессоре) предоставляется определенное количество времени, именуемое квантом времени, для совместного использования ресурсов. Ресурсы включают, например, ресурсы центрального процессора, память, устройства или интерфейсы ввода-вывода и/или другие ресурсы. Процессор (или выполняемая в нем программа), имеющий доступ к ресурсам, предупреждается о скором прекращении доступа, в связи с чем процессор (или программа) должен совершить конкретное действие, такое как очистка, завершение выполнения единицы работы, прекращение выполнения единицы работы, перемещение единицы работы и т.д.
Рассмотрим другой вариант осуществления вычислительной среды 200, в которой содержится и используется одна или несколько особенностей настоящего изобретения, описанный со ссылкой на фиг.2. Вычислительная среда 200 основана, например, на системе z/Architecture®, предлагаемой International Business Machines Corporation (IBM®), (Армонк, штат Нью-Йорк, США). Система z/Architecture® описана в публикации №SA22-7832-08 "IBM® z/Architecture Principles of Operation" (9-е издание, август 2010 г.), которая в порядке ссылки во всей полноте включена в настоящую заявку. В одном из примеров вычислительная среда на основе системы z/Architecture® содержит сервер System z® предлагаемый International Business Machines Corporation (Армонк, штат Нью-Йорк, США). IBM®, z/Architecture® и zSeries®, а также z/VM® и z/OS®, упоминаемые далее, являются зарегистрированными товарными знаками International Business Machines Corporation (Армонк, штат Нью-Йорк, США). Другие используемые в описании названия могут являться зарегистрированными товарными знаками, товарными знаками или названиями продуктов International Business Machines Corporation или других компаний.
В качестве одного из примеров, вычислительная среда 200 содержит комплекс 202 центральных процессоров (СРС), обеспечивающий поддержку виртуальных машин. СРС 202 содержит, например, одну или несколько виртуальных машин 204 (или логических разделов в другом варианте осуществления) один или несколько центральных процессоров 206, по меньшей мере один хост 208 (например, управляющую программу, такую как гипервизор) и подсистема 210 ввода-вывода, которые описаны далее. В этом примере виртуальные машины и хост входят в память.
За счет обеспечиваемой СРС поддержки может действовать большое число виртуальных машин, каждая из которых способна выполнять роли ведущего узла для гостевой операционной системы 212, такой как z/VM®, z/OS® или Linux в качестве примеров. Каждая виртуальная машина 204 способна действовать как отдельная система. Иными словами, каждая виртуальная машина может независимо перезагружаться, выполнять роли ведущего узла для гостевой операционной системы и работать с различными программами. Операционная система или прикладная программа, действующая в виртуальной машине, создает видимость наличия у нее доступа полностью ко всей системе, но в действительности доступной является лишь ее часть.
Физические ресурсы СРС (например, ЦП, память, устройства ввода-вывода и т.д.) принадлежат хосту 208, а совместно используемые физические ресурсы по мере необходимости распределяются хостом среди гостевых операционных систем для удовлетворения их потребностей в ресурсах обработки. Взаимодействиями между гостевыми операционными системам и совместно используемыми физическими машинными ресурсами управляет хост, поскольку обычно из-за большого числа гостей хост не способен просто осуществлять разделение аппаратных ресурсов и их предоставление сконфигурированным гостям.
Центральные процессоры 206 являются физическими ресурсами, которые могут предоставляться виртуальной машине. Например, виртуальная машина 204 содержит один или несколько логических процессоров, каждый из которых отображает все или часть физических ресурсов 206, которые могут динамически присваиваться виртуальной машине. Виртуальными машинами 204 управляет хост 208. В качестве примеров, хост может быть реализован посредством микрокода, действующего в процессорах 206, или могут входить в состав операционной хост-системы, выполняемой в машине. В одном из примеров хостом 208 является администратор ресурсов процессора/системы (PR/SM), предлагаемый International Business Machines Corporation (Армонк, штат Нью-Йорк, США).
Подсистема 210 ввода-вывода направляет поток информации между устройствами и основной памятью. Она связана с центральным комплексом обработки в том смысле, что может входить в состав центрального комплекса обработки или существовать отдельно от него. Подсистема ввода-вывода освобождает центральные процессоры от выполнения задачи поддерживать связь непосредственно с устройствами ввода-вывода, связанными с СРС, и позволяет осуществлять обработку данных одновременно с обработкой операций ввода-вывода.
В одном из вариантов осуществления аппаратное обеспечение/аппаратно-программное обеспечение хоста (например, PR/SM) и процессора (например, System z®) взаимодействует друг с другом управляемым скоординированным путем с целью обработки операций гостевой операционной системы без необходимости перехода управления от/к гостевой операционной системе и хосту. Гостевые операции могут выполняться непосредственно без вмешательства хоста с помощью средства, которое позволяет гостю выполнять команды в режиме интерпретации. Это средство обеспечивает команду начала интерпретационного выполнения (Start Interpretive Execution) (SIE), которую может подавать хост, с указанием блока управления, называемого описанием состояния, в котором содержится состояние гостя (виртуальной машины) и средства управления. Команда переводит ЦП в режим интерпретационного выполнения, в котором непосредственно обрабатываются гостевые команды и прерывания, пока не возникнет ситуация, требующая привлечения внимания хоста. При возникновении такой ситуации интерпретационное выполнение заканчивается, и сообщается об инициированном хостом прерывании, или команда SIE завершает сохранение подробностей возникшей ситуации; последний случай называется перехватом. Один из примеров интерпретационного выполнения описан в публикации IBM №SA22-7095-01 "System/370 Extended Architecture/Interpretive Execution", сентябрь 1985 г., которая в порядке ссылки во всей полноте включена в настоящую заявку.
В контексте настоящего изобретения аппаратно-программное обеспечение содержит, например, микрокод, милликод и/или макрокод процессора. Оно содержит, например, команды аппаратного уровня и/или структуры данных, используемые при реализации высокоуровневого машинного кода. В одном из вариантов осуществления оно содержит, например, собственный код, который обычно представляет собой микрокод, содержащий выверенное программное обеспечение или характерный для базового аппаратного обеспечения и управляющий доступом операционной системы к аппаратному обеспечению системы.
Другой пример вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения, проиллюстрирован на фиг.3. В этом примере, предусмотрена эмулирующая компьютерная хост-система 300, которая эмулирует хост-компьютер 302, имеющий хост-архитектуру. Хост-процессором (ЦП) 304 в компьютерной хост-системе 300 эмуляции является хост-процессор (или виртуальный хост-процессор) эмуляции, реализованный посредством процессора 306 эмуляции со структурой собственных команд, отличающейся от структуры команд, используемой процессорами хост-компьютера 302. Компьютерная хост-система 300 эмуляции имеет память 308, доступную для процессора 306 эмуляции. В примере осуществления память 308 разделена на память 310 хост-компьютера и память 312 программ эмуляции. Память 310 хост-компьютера доступна для программ эмулируемого хост-компьютера 302 в зависимости от архитектуры хост-компьютера и может содержать хост или гипервизор 314 и одну или несколько виртуальных машин 316, выполняющих гостевые операционные системы 318, аналогичные проиллюстрированным на фиг.2 элементам, обозначенными такими же позициями.
Процессор 306 эмуляции выполняет собственные команды структурированной системы команд, структура которых отличается от структуры команд эмулируемого процессора 304. Собственные команды извлекаются, например, из памяти 312 программ эмуляции. Процессор 306 эмуляции может осуществлять выборку хост-команды для выполнения из программы в памяти 310 хост-компьютера путем применения одной или нескольких команд из программы контроля последовательности и выборки/декодирования (Sequence & Access/Decode), которая может декодировать выбранную хост-команду(-ы) и определять программу выполнения собственных команд эмуляции функции выбранной хост-команды. Одной из таких хост-команд может являться, например, команда начала интерпретационного выполнения (SIE), посредством которой хост стремиться выполнить гостевую программу в виртуальной машине. Программы эмуляции могут поддерживать эту команду и выполнение последовательности гостевых команд в виртуальной машине 316 в соответствии с определением этой команды SIE.
Другие средства, которые предусмотрены в архитектуре компьютерной хост-системы 302, могут эмулироваться программами структурированных средств (Architected Facilities Routines), включая такие средства, как, например, регистры общего назначения, управляющие регистры, поддержка подсистемы динамической трансляции адреса и ввода-вывода и кэш-память процессора. Программы эмуляции также могут использовать функции, доступные в процессоре 306 эмуляции (такие как общие регистры и динамическое преобразование виртуальных адресов) для повышения производительности программ эмуляции. Также может быть предусмотрено особое программное обеспечение и механизмы разгрузки, облегчающие процессору 306 эмуляцию функции хост-компьютера 302.
Согласно одной из особенностей настоящего изобретения предложено средство прерывания с целью отслеживания предупреждений, которое может использоваться в вычислительных средах множества типов. Несмотря на возможность использования в средах множества типов, особенности средства описаны применительно к гостевой мультипроцессорной системе. Как описано выше, гостевые операционные системы в гостевых мультипроцессорных системах распределяют диспетчеризуемые единицы (например, программы, код и т.д.) среди гостевых центральных процессоров, роль ведущего узла для которых выполняет по меньшей мере один хост-процессор. Хост-ЦП предоставляет гостевому ЦП квант времени (например, определенное количество времени или другой период, такой как число команд, число циклов и т.д.), на протяжении которого выполняется диспетчеризуемая единица. Если во время выполнения диспетчеризуемой единицы квант времени истекает, диспетчеризуемая единица может оказаться в ситуации, когда ее выполнение не может быть продолжено ни в одном другом гостевом ЦП гостевой мультипроцессорной конфигурации независимо от доступности каких-либо других гостевых ЦП. Вместо этого она должна ожидать, пока одному единственному гостевому ЦП не будет предоставлен следующий квант времени, чтобы продолжить ее выполнение. В зависимости от применяемого конкретного метода совместного использования и относительного приоритета гостевой конфигурации предоставление следующего кванта времени может откладываться на существенный промежуток времени. Даже если в гостевую конфигурацию входят другие гостевые ЦП, способные выполнять диспетчеризуемую единицу, продолжение ее выполнения невозможно из-за состояния гостевого ЦП диспетчеризуемой единицы, которое было сохранено при истечении предыдущего кванта времени. Пока это конкретное состояния не может использоваться для продолжения работы гостевого ЦП, диспетчеризуемая единица бездействует.
Квант времени может быть продлен за счет предоставления дополнительного времени (или другого дополнительного периода, такого как дополнительные команды, циклы и т.д.), но даже это при наличии этого дополнительного времени гостевой ЦП не способен продлить выполнение диспетчеризуемой единицы и по-прежнему оставляет ее в такой же недиспетчеризуемой ситуации, в которой она находилась бы по истечении нормального кванта времени.
Поскольку хост-программе не известны средства управления и состояние, использованные произвольной гостевой программой, выполнявшей произвольную диспетчеризуемую единицу, дополнительное время для очистки диспетчеризуемой единицы не может всегда предоставляться гостевой операционной системе без установления протокола между хост-программой и гостевой программой. В отсутствии протокола любое дополнительное время, предоставленное гостевому ЦП, расходовалось бы на основную обработку, и по его истечении диспетчеризуемая единица по-прежнему могла бы оставаться в таком же зависшем состоянии. Соответственно, согласно одной из особенностей настоящего изобретения предложен такой протокол.
Согласно одной из особенностей настоящего изобретения, предоставляется льготный период или продление, содержащее предупреждение для гостевой программы с указанием конкретного действия, которое должно быть предпринято (например, завершения выполнения диспетчеризуемой единицы или превращение диспетчеризуемой единицы в повторно диспетчеризуемую). Например, льготный период предоставляется в ответ на истечение кванта времени или прерывание обслуживания хостом гостя до истечения его кванта времени с целью возврата себе процессора для выполнения задачи с более высоким, по мнению хоста, приоритетом, как подробнее описано далее.
В качестве одного из примеров льготный период предоставляется вместо обязательного продления кванта времени. Если нормальный квант времени полностью истекает, предоставляется льготный период, но за счет следующего нормального кванта времени в целях сохранения беспристрастности в отношении всех остальных виртуальных гостей, каждый из которых рассчитывает на квант времени. Если нормальный квант времени не истек, льготный период предоставляется за счет остающегося нормального кванта времени. В любом случае льготный период ограничивает остающееся время (или другой период), предоставленное гостевому ЦП, и как такой не подлежит продлению. Соответственно, гостевой ЦП не может продолжать действовать в течение произвольного и неизвестного периода.
В начале льготного периода гостевая программа уведомляется о необходимости очистить диспетчеризуемую единицу (например, завершить ее выполнение, прекратить ее выполнение и/или переместить ее). Принудительное осуществление льготного периода гарантирует, что гостевой ЦП не превысит предоставленный дополнительный период. Протоколом, используемым для предоставления гостевой программе льготного периода и ее уведомления о том, что время (или другой период) почти истекло (начался льготный период), является протокол реализации соглашения между гостевой программой и хост-программой о том, что протокол понят гостевой программе, что делает такое уведомление целесообразным. Иными словами, гостевая программа обычно принимает во внимание уведомление и при необходимости делает текущую диспетчеризуемую единицу диспетчеризуемой (например, путем ее перемещения) в другом гостевом ЦП гостевой конфигурации.
Дополнительные подробности, касающиеся протокола и средства прерывания с целью отслеживания предупреждений (также именуемого отслеживанием предупреждений или средством отслеживания предупреждений) описаны далее со ссылкой на фиг.4-10. В вариантах осуществления, проиллюстрированных на этих фигурах, описана виртуальная среда, содержащая одного или нескольких гостей, обеспеченных одним или несколькими хостами. Тем не менее одна или несколько особенностей настоящего изобретения также относятся к другим средам, включая невиртуальные среды, в которых множество процессоров и/или множество программ совместно используют ресурсы.
Рассмотрим на фиг.4, на которой проиллюстрированы подробности выполняемого гостем протокола средства прерывания с целью отслеживания предупреждений. Выполняемый гостем протокол отслеживания предупреждений включает, например, индикатор установленного средства, регистрацию гостя, уведомление и добровольное завершение работы, которые описаны далее.
Как показано на фиг.4, гостевая программа, понимающая протокол отслеживания предупреждений, на шаге 400 осуществляет поиск индикатора установленного средства. В одном из примеров этим указанием является разряд, хранящийся в блоке управления (например, блоке управления вызовом обслуживания (Service Call Control Block) (SCCB)), и для его выполнения используется команда чтения, такая как команда чтения информации (Read SCP Information). После того, как определено, что средство установлено, гостевая программа на шаге 402 осуществляет регистрацию. Регистрация является механизмом, посредством которого гостевая программа сообщает хост-программе о том, что гостевая программа понимает протокол средства прерывания с целью отслеживания предупреждений. В одном из примеров регистрация осуществляется с использованием команды диагностирования, один из примеров которой дополнительно описан далее.
В одном из вариантов осуществления регистрация, инициированная любым гостевым центральным процессором, распространяется на все гостевые центральные процессоры мультипроцессорной конфигурации, поскольку желательно согласованное поведение гостевых ЦП гостевой мультипроцессорной конфигурации. Гостевые ЦП используют в гостевой мультипроцессорной конфигурации одну и ту же основную память, и предполагается, что гостевые ЦП действуют в режиме, иногда называемом единым представлением. Соответственно, регистрация одного гостевого ЦП применима к остальным гостевым ЦП мультипроцессорной среды. В одном из вариантов осуществления регистрация является неотменяемой, и это помогает избегать интервалов в синхронизации, упрощает разработку и обеспечивает улучшенную тестируемость. Хотя регистрация является неотменяемой, гостевая программа может определять, продолжит ли она участвовать в протоколе. Если это так, отказ от участия осуществляется путем переустановки одного или нескольких описанных далее индикаторов разрешения.
После регистрации гостевой программы для участия в протоколе отслеживания предупреждений на шаге 404 гостевой ЦП может быть уведомлен о льготном периоде. Например, он может быть предупрежден хост-ЦП об истечении кванта времени (или приближающемся истечении в одном из дополнительных примеров) или о прерывании обслуживания его кванта времени. В одном из конкретных примеров ЦП зарегистрированной гостевой конфигурации уведомляется, например, об истечении его нормального кванта времени и начале льготного периода, который обеспечивает дополнительный период, например, для очистки.
После получения уведомления гость имеет ограниченное количество времени или другой период, т.е. льготный период (например, 50 микросекунд в одном из частных вариантов осуществления), чтобы сделать диспетчеризуемую единицу повторно диспетчеризуемой или произвести какие-либо другие надлежащие корректировки. Если нормальный квант времени уже закончился, льготный период используется, например, до возврата управления хосту, чтобы сделать диспетчеризуемую единицу повторно диспетчеризуемой или произвести какие-либо другие надлежащие корректировки. Если квант времени не закончился, используется льготный период, а любая остающаяся часть кванта времени освобождается. Происходит нормальный учет реального времени, использованного гостевым ЦП.
После передачи уведомления гостевой ЦП имеет ограниченный период (например, ограниченное количество времени), по истечении которого работа гостевого ЦП в принудительном порядке завершается. В отношении каждого нормального кванта времени передается только одно уведомление. Соответственно, гостевой ЦП по-прежнему ограничен контролем конечного времени, что гарантирует возможность совместного использования базового совместного используемого хост-ЦП где-либо еще и тем самым сохраняет надлежащий порядок и организацию общей виртуализации, обеспечиваемой хост-программой.
Уведомление может осуществляться посредством любого механизма, который позволяет гостевой программе обнаруживать однозначное состояние. Его примеры включают однозначное прерывание гостя, определенный архитектурой адрес основной памяти, который может быть задан, или устройство ввода-вывода внешней памяти, доступное как для хоста, так и для гостя. В первом случае требуется соответствующее разрешение для гостя, чтобы сделать возможным прерывание. В двух последних случаях требуется периодически достаточно часто проверять, не расходуется ли бесполезно льготный период. В одном из конкретных примеров системы z/Architecture® в качестве уведомления используется прерывание гостя, именуемое прерыванием с целью отслеживания предупреждений (WTI).
После получения предупреждения гость на шаге 406 добровольно отказывается от предоставленного ему кванта времени/льготного периода. Гость завершает работу в течение текущего кванта времени/льготного периода после получения уведомления и превращения диспетчеризуемой единицы в повторно диспетчеризуемую (например, путем прекращения выполнения и перемещения диспетчеризуемой единицы или завершения ее выполнения). Это завершение работы сигнализирует хост-программе о том, что гость в действительности придерживается протокола. Могут существовать другие причины, по которым гость отказывается от управления и тем самым возвращает его хост-программе. Обычно для того, чтобы сделать диспетчеризуемую единицу повторно диспетчеризуемой при обработке с ограничениями не возникают ситуации, приводящие к таким завершениям работы по каким-либо внешним причинам. Если гостевой ЦП завершает работу в течение льготного периода посредством протокола прерывания с целью отслеживания предупреждений, в порядке обратной связи передается сообщение о следующем кванте времени, всякий раз, когда это имеет место. Соответственно, гостевой программе известно о действующем ограничении по времени, предписанном льготным периодом.
Если гость запаздывает с добровольным завершением работы, его выполнение прерывается по истечении льготного периода. Когда начинается следующий нормальный квант времени гостевого ЦП, ему в порядке обратной связи передается сообщение, чтобы гостю было известно о своем запаздывании. Как правило, это может использоваться для выявления отказов в гостевой программе, поскольку обычный льготный период предусматривает достаточное время для очистки и добровольного завершения работы.
В случае завершения работы по внешним причинам, когда начинается следующий нормальный квант времени гостевого ЦП, предполагается, что добровольное завершение работы произойдет незамедлительно. Посредством такого же механизма обратной связи гостевой программе сообщается о том, что произошло завершение работы по внешним причинам и, соответственно, передается другая информация для сообщения о выявлении отказа.
Добровольное завершение работы осуществляется посредством любого механизма, который обеспечивает переход управления от гостевой программы к хост-программе и который предусматривает упомянутый механизм обратной связи. Используемый механизм должен определяться в протоколе прерывания с целью отслеживания предупреждений конкретной архитектуры, чтобы хост-программа могла распознавать запрос гостя. В одном из примеров этот механизм предусматривает описанную далее команду диагностирования.
Помимо выполнения гостем протокола прерывания с целью отслеживания предупреждений, в одном из вариантов осуществления его также выполняет хост, как подробнее описано далее со ссылкой на фиг.5.
Как показано на фиг.5, на шаге 500 хост распознает индикатор установленного средства и отображает ее для своих гостей. Например, хост проверяет установленный разряд в блоке управления (например, SCCB) и распознает установленное состояние протокола отслеживания предупреждений (т.е. то, что он установлен), при этом хосту известно, как хост-программа может использовать его к выгоде хоста. С