терминология — Что такое виртуальный процессор?
Где то утверждают что это по сути и есть ядро (или поток ядра). И например при технологии Hyper-Threading система определяет физическое ядро как два виртуальных.
Кто то утверждает что виртуальный процессор может эмулироватся программно молл виртуальный процессор можно сравнить с операционной системой. Поток по отношению к нему выступает как процесс, подобно тому, как сам виртуальный процессор является процессом с точки зрения операционной системы.
Еще говорят что при создании виртуальной машины можно для нее выделять виртуальные процессоры
ТАК ЧТО ТАКОЕ ВИРТУАЛЬНЫЙ ПРОЦЕССОР
- терминология
- железо
- виртуальная-машина
- процессор
Это не термин, а обычное словосочетание. Виртуальный процессор — это нечто, что выглядит как работоспособный процессор, но процессором не является.
Так, когда-то давно никто не слышал про многоядерные процессоры, а когда было нужно — ставили несколько процессоров. И когда многоядерные процессоры появились — то в целях обратной совместимости каждое ядро стало «представляться» операционной системе как отдельный процессор. То есть у вас на материнке стоит один проц — а ОС пишет, что их два. Никакого второго процессора реально не существует, он — виртуальный. Точнее, оба ядра называют виртуальными процессорами, потому что они одинаковые.
Существуют эмуляторы процессоров. Например, вы можете скачать эмулятор NES и поиграть на нем в старые игры. Эти игры написаны для процессора Ricoh 2A03, но играть в них вы будете на процессоре семейства Intel. Однако большинство игр подмены не заметят, поскольку эмулятор реализует все нужные инструкции. В этом смысле эмулятор NES содержит в себе виртуальный процессор.
Внутри виртуальной машины работает реальная ОС, называемая «гостевой».
Эта ОС, точно так же, как и при работе вне виртуальной машины, пытается работать с «железом». Но у виртуальной машины все «железо» — виртуальное (за редкими исключениями): если вы, к примеру, зайдёте в Диспетчер устройств на виртуалке с виндой — вы не увидите ничего похожего на реальные устройства. Процессоры у виртуальной машины — тоже виртуальные.
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.
Виртуальный процессор | Microsoft Learn
- Статья
Каждая секция может иметь ноль или несколько виртуальных процессоров.
Индексы виртуальных процессоров
Виртуальный процессор идентифицируется кортежем, состоящим из идентификатора секции и индекса процессора. Индекс процессора назначается виртуальному процессору при его создании и остается неизменным в течение всего времени существования виртуального процессора.
В определенных ситуациях можно использовать специальное значение HV_ANY_VP для указания «любой виртуальный процессор». Значение HV_VP_INDEX_SELF можно использовать для указания собственного индекса VP.
typedef UINT32 HV_VP_INDEX; #define HV_ANY_VP ((HV_VP_INDEX)-1) #define HV_VP_INDEX_SELF ((HV_VP_INDEX)-2)
Идентификатор виртуального процессора может быть получен гостем через определяемый гипервизором MSR (регистр, зависящий от модели) HV_X64_MSR_VP_INDEX.
#define HV_X64_MSR_VP_INDEX 0x40000002
Виртуальные процессоры могут находиться в состоянии питания виртуального простоя процессора или в спящем режиме процессора. Это улучшенное состояние простоя виртуальной машины позволяет разбудить виртуальный процессор, переведенный в состояние простоя с низким энергопотреблением, с появлением прерывания, даже если прерывание маскируется на виртуальном процессоре. Другими словами, состояние виртуального простоя позволяет операционной системе в гостевом разделе использовать преимущества методов энергосбережения процессора в ОС, которые в противном случае были бы недоступны при работе в гостевом разделе.
Секция, обладающая привилегией AccessGuestIdleMsr, может активировать вход в состояние бездействия виртуального процессора через чтение в определяемую гипервизором MSR HV_X64_MSR_GUEST_IDLE
. Виртуальный процессор будет разбудиться при поступлении прерывания, независимо от того, включено ли прерывание на виртуальном процессоре.
Страница поддержки виртуального процессора
Гипервизор предоставляет страницу для каждого виртуального процессора, которая наложена на гостевое пространство GPA. Эту страницу можно использовать для двунаправленного обмена данными между гостевым VP и гипервизором. Гостевая ОС имеет доступ на чтение и запись к этой странице поддержки виртуального VP.
Гость указывает расположение страницы наложения (в пространстве GPA), записывая в MSR (0x40000073) Виртуального VP Assist. Формат MSR страницы помощника виртуального VP выглядит следующим образом:
Bits | Поле | Описание |
---|---|---|
0 | Включить | Включает страницу поддержки VP |
11:1 | RsvdP | Зарезервировано |
63:12 | PFN страницы | PFN страницы помощника виртуального VP |
Реестр времени выполнения виртуального процессора
Планировщик низкоуровневой оболочки внутренне отслеживает, сколько времени каждый виртуальный процессор занимает при выполнении кода. Отслеживаемое время — это сочетание времени, которое виртуальный процессор использует для выполнения гостевого кода, и времени, которое связанный логический процессор тратит на выполнение кода низкоуровневой оболочки от имени этого гостя. Это совокупное время доступно через 64-разрядную HV_X64_MSR_VP_RUNTIME низкоуровневой оболочки MSR, доступную только для чтения. Количество времени измеряется в единицах 100ns.
Предотвращение выполнения не привилегированных инструкций (NPIEP)
Выполнение не привилегированных инструкций (NPIEP) — это функция, которая ограничивает использование определенных инструкций в коде пользовательского режима. В частности, если эта функция включена, она может блокировать выполнение инструкций SIDT, SGDT, SLDT и STR. Выполнение этих инструкций приводит к сбою #GP.
Эта функция должна быть настроена для каждого VP с помощью HV_X64_MSR_NPIEP_CONFIG_CONTENTS.
Гостевые спин-блокировки
Типичная многопроцессорная операционная система использует блокировки для обеспечения атомарности определенных операций. При запуске такой операционной системы на виртуальной машине, управляемой гипервизором, эти критические разделы, защищенные блокировками, могут быть расширены перехватами, созданными кодом критического раздела. Код критического раздела также может быть вытеснен планировщиком низкоуровневой оболочки. Хотя гипервизор пытается предотвратить такие вытеснения, они могут произойти. Следовательно, другие претенденты на блокировку могут в конечном итоге спиннинг до тех пор, пока держатель блокировки повторно запланирован снова и, следовательно, значительно продлить время спин-блокировки приобретения.
Гипервизор указывает гостевой ОС, кратное количество попыток получения спин-блокировок, прежде чем указывать на чрезмерную ситуацию вращения низкоуровневой оболочки. Это число возвращается в конечной 0x40000004 CPUID. Значение 0 указывает, что гостевая ОС не должна уведомлять гипервизор о получении длительной спин-блокировки.
Гипервыск HvCallNotifyLongSpinWait предоставляет интерфейс для просвещенных гостей, чтобы улучшить свойство статистической справедливости блокировки для многопроцессорных виртуальных машин. Гость должен сделать это уведомление для каждого кратного рекомендуемого счетчика, возвращаемого конечным 0x40000004 CPUID. С помощью этого гипервызова гость уведомляет гипервизор о получении длительной спин-блокировки. Это позволяет гипервизору принимать более качественные решения по планированию.
Определение виртуального процессора | ПКМаг
(1) В среде виртуализированного сервера виртуальный процессор — это ядро ЦП, назначенное виртуальной машине. Может быть назначено больше виртуальных процессоров, чем доступно фактических ядер, что позволяет виртуальным машинам совместно использовать одно и то же ядро.
(2) В среде параллельной обработки, в которой элементов данных больше, чем процессоров, виртуальный процессор является симулированным процессором. Виртуальные процессоры работают последовательно, а не параллельно, но позволяют приложениям, которым требуется процессор для каждого элемента данных, работать на компьютере с меньшим количеством процессоров. См. соотношение ПО.
Реклама
Истории PCMag, которые вам понравятся
{X-html заменен}
Выбор редакции
ЭТО ОПРЕДЕЛЕНИЕ ПРЕДНАЗНАЧЕНО ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ. Любое другое воспроизведение требует разрешения.Copyright © 1981-2023. The Computer Language(Opens in a new window) Co Inc. Все права защищены. Информационные бюллетени PCMag
Информационные бюллетени PCMag
Наши лучшие истории в вашем почтовом ящикеПодпишитесь на PCMag
- Фейсбук (Открывается в новом окне)
- Твиттер (Откроется в новом окне)
- Флипборд (Открывается в новом окне)
- Гугл (откроется в новом окне)
- Инстаграм (откроется в новом окне)
- Pinterest (Открывается в новом окне)
PCMag.com является ведущим авторитетом в области технологий, предоставляющим независимые лабораторные обзоры новейших продуктов и услуг. Наш экспертный отраслевой анализ и практические решения помогут вам принимать более обоснованные решения о покупке и получать больше от технологий.
Как мы тестируем Редакционные принципы- (Открывается в новом окне) Логотип Зиффмедиа
- (Открывается в новом окне) Логотип Аскмен
- (Открывается в новом окне) Логотип Экстримтек
- (Открывается в новом окне) Логотип ИНГ
- (Открывается в новом окне) Лайфхакер Логотип
- (Открывается в новом окне) Логотип Mashable
- (Открывается в новом окне) Предлагает логотип
- (Открывается в новом окне) Логотип RetailMeNot
- (Открывается в новом окне) Логотип Speedtest
PCMag поддерживает Group Black и ее миссию по увеличению разнообразия голосов в СМИ и прав собственности на СМИ.
© 1996-2023 Ziff Davis, LLC., компания Ziff Davis. Все права защищены.
PCMag, PCMag.com и PC Magazine входят в число зарегистрированных на федеральном уровне товарных знаков Ziff Davis и не могут использоваться третьими лицами без явного разрешения. Отображение сторонних товарных знаков и торговых наименований на этом сайте не обязательно указывает на какую-либо принадлежность или поддержку PCMag. Если вы нажмете на партнерскую ссылку и купите продукт или услугу, этот продавец может заплатить нам комиссию.
- О Ziff Davis(Открывается в новом окне)
- Политика конфиденциальности(Открывается в новом окне)
- Условия использования(Открывается в новом окне)
- Реклама(Открывается в новом окне)
- Специальные возможности(Открывается в новом окне)
- Не продавать мою личную информацию (открывается в новом окне)
- (Открывается в новом окне) доверительный логотип
- (Открывается в новом окне)
Виртуальный процессор | Майкрософт учиться
Редактировать Твиттер LinkedIn Фейсбук Электронная почта- Статья
В каждом разделе может быть ноль или более виртуальных процессоров.
Индексы виртуальных процессоров
Виртуальный процессор идентифицируется кортежем, состоящим из идентификатора его раздела и индекса процессора. Индекс процессора присваивается виртуальному процессору при его создании и остается неизменным в течение всего времени существования виртуального процессора.
В определенных ситуациях можно использовать специальное значение HV_ANY_VP для указания «любого виртуального процессора». Значение HV_VP_INDEX_SELF можно использовать для указания собственного индекса VP.
typedef UINT32 HV_VP_INDEX; #define HV_ANY_VP ((HV_VP_INDEX)-1) #define HV_VP_INDEX_SELF ((HV_VP_INDEX)-2)
Идентификатор виртуального процессора может быть получен гостем через определяемый гипервизором MSR (регистр модели) HV_X64_MSR_VP_INDEX.
# определить HV_X64_MSR_VP_INDEX 0x40000002
Виртуальные процессоры могут быть переведены в режим питания виртуального простоя процессора или в режим сна процессора. Это расширенное состояние виртуального простоя позволяет виртуальному процессору, переведенному в состояние простоя с низким энергопотреблением, пробуждаться при поступлении прерывания, даже если прерывание замаскировано на виртуальном процессоре. Другими словами, состояние виртуального простоя позволяет операционной системе в гостевом разделе использовать преимущества методов энергосбережения процессора в ОС, которые в противном случае были бы недоступны при работе в гостевом разделе.
Раздел, обладающий привилегией AccessGuestIdleMsr, может инициировать вход в состояние ожидания бездействия виртуального процессора посредством чтения в определяемый гипервизором MSR HV_X64_MSR_GUEST_IDLE
. Виртуальный процессор будет разбужен при поступлении прерывания, независимо от того, разрешено ли прерывание на виртуальном процессоре или нет.
Вспомогательная страница виртуального процессора
Гипервизор предоставляет страницу для каждого виртуального процессора, которая накладывается на гостевое пространство GPA. Эту страницу можно использовать для двунаправленной связи между гостевым виртуальным сервером и гипервизором. Гостевая ОС имеет доступ для чтения/записи к этой странице помощи виртуального VP.
Гость указывает расположение страницы оверлея (в пространстве GPA), записывая в Virtual VP Assist MSR (0x40000073). Формат страницы MSR Virtual VP Assist выглядит следующим образом:
Биты | Поле | Описание |
---|---|---|
0 | Включить | Включает вспомогательную страницу VP |
11:1 | РсвдП | Зарезервировано |
63:12 | Страница PFN | Виртуальная вспомогательная страница VP PFN |
Регистр времени выполнения виртуального процессора
Планировщик гипервизора внутренне отслеживает, сколько времени каждый виртуальный процессор тратит на выполнение кода. Отслеживаемое время представляет собой комбинацию времени, которое виртуальный процессор тратит на выполнение гостевого кода, и времени, которое связанный логический процессор тратит на выполнение кода гипервизора от имени этого гостя. Это совокупное время доступно через 64-разрядный гипервизор HV_X64_MSR_VP_RUNTIME только для чтения MSR. Величина времени измеряется в единицах 100 нс.
Предотвращение выполнения непривилегированных инструкций (NPIEP)
Выполнение непривилегированных инструкций (NPIEP) — это функция, ограничивающая использование определенных инструкций кодом пользовательского режима. В частности, если эта функция включена, она может блокировать выполнение инструкций SIDT, SGDT, SLDT и STR. Выполнение этих инструкций приводит к ошибке #GP.
Эта функция должна быть настроена для каждого VP с помощью HV_X64_MSR_NPIEP_CONFIG_CONTENTS.
Гостевые спинлоки
Типичная многопроцессорная операционная система использует блокировки для обеспечения атомарности определенных операций. При запуске такой операционной системы внутри виртуальной машины, управляемой гипервизором, эти критические секции, защищенные блокировками, могут быть расширены за счет перехватов, генерируемых кодом критической секции. Код критической секции также может быть вытеснен планировщиком гипервизора. Хотя гипервизор пытается предотвратить такие вытеснения, они могут произойти. Следовательно, другие претенденты на блокировку могут в конечном итоге вращаться до тех пор, пока держатель блокировки не будет снова перепланирован, и, следовательно, значительно увеличить время получения спин-блокировки.
Гипервизор указывает гостевой ОС, сколько раз следует предпринять попытку получения спин-блокировки, прежде чем указать гипервизору на ситуацию чрезмерного вращения. Этот счетчик возвращается в листе CPUID 0x40000004. Значение 0 указывает, что гостевая ОС не должна уведомлять гипервизор о длительном получении спин-блокировки.
Гипервызов HvCallNotifyLongSpinWait предоставляет интерфейс для информированных гостей, чтобы улучшить свойство статистической справедливости блокировки для многопроцессорных виртуальных машин. Гость должен делать это уведомление для каждого кратного рекомендуемого числа, возвращаемого листом CPUID 0x40000004.
Ваш комментарий будет первым