Виртуальные процессоры и логические разделы

Я в основном хотел знать, что такое виртуальный процессор. На сайте IBM они определяют это как:

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

Я понимаю, что если есть x процессоров, каждый из которых может одновременно выполнять две операции, то система может выполнять 2 операции одновременно. Но где виртуальный процессор вписывается в это. И я попытался найти разницу между логическим разделом и другими разделами, такими как основной, но не был уверен.

1 ответ

Решение

Я хотел бы провести аналогию между виртуальной памятью и виртуальными процессорами.

Начните с ожиданий:

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

Поймите, что ожидание может быть удовлетворено непосредственно оборудованием или уровнем абстракции.

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

Аппаратная поддержка для этого только недавно стала доступна в "настольных" процессорах, но у Big Iron она была целую вечность. Это полезно по нескольким причинам

  1. Защита. В правильно защищенной ОС одним процессам или пользователям трудно шпионить за другим. Но так как они могут быть резидентами в одном и том же контексте, это все еще возможно. Виртуализация ОС разделяет их на другой, еще более тонкий канал, что значительно затрудняет утечку данных и выполнение злонамеренных действий.
  2. Надёжность. Если вы можете менять и изменять контексты ОС, вы переносите их с одного компьютера на другой, контрольную точку и перезагружаете. Что позволяет компьютерам обнаруживать сбои на собственных процессорах и корректно восстанавливаться.

Это те вещи (кроме миллионов LOC сильно отлаженного, критически важного кода), которые заставляют людей платить за Big Iron.

Другие вопросы по тегам