Виртуальные процессоры и логические разделы
Я в основном хотел знать, что такое виртуальный процессор. На сайте IBM они определяют это как:
"Виртуальный процессор - это представление физического ядра процессора в операционной системе логического раздела, в котором используются общие процессоры".
Я понимаю, что если есть x процессоров, каждый из которых может одновременно выполнять две операции, то система может выполнять 2 операции одновременно. Но где виртуальный процессор вписывается в это. И я попытался найти разницу между логическим разделом и другими разделами, такими как основной, но не был уверен.
1 ответ
Я хотел бы провести аналогию между виртуальной памятью и виртуальными процессорами.
Начните с ожиданий:
- Пользовательская программа написана с учетом ожиданий того, как выглядит память (хорошая плоская, большая, непрерывная модель памяти является лучшей...)
- Система ОС написана с учетом ожиданий того, как аппаратное обеспечение работает (какие режимы защиты ЦП доступны, как поступают прерывания, которые блокируются и обрабатываются, как общаться с устройствами ввода-вывода и т. Д...)
Поймите, что ожидание может быть удовлетворено непосредственно оборудованием или уровнем абстракции.
- Виртуальная память - это набор (специализированных, не встречающихся в простых микросхемах) аппаратных средств и служб ОС, которые подделывают пользовательскую программу, думая, что у нее есть это хорошее, плоское, большое, непрерывное пространство памяти, даже когда ОС усердно делит реальное памяти в маленький кусочек, и сохранение некоторых из них на диске, возвращение других, и в противном случае это реальный хэш. Но ваш код не волнует. Все просто работает.
- Виртуальная процессорная система - это набор (специализированных, не встречающихся в потребительских ЦП) аппаратных средств и сервисов гипервизора, которые позволяют вашей ОС полагать, что она имеет прямой доступ к одному или нескольким процессорам с ожидаемыми режимами защиты, прерываниями и т. Д., Даже если гипервизор активно переключает весь контекст ОС на один или несколько реальных процессоров, запускает и останавливает доступ к шинам ввода-вывода и т. д. и т. д. Но ОС не волнует. Все просто работает.
Аппаратная поддержка для этого только недавно стала доступна в "настольных" процессорах, но у Big Iron она была целую вечность. Это полезно по нескольким причинам
- Защита. В правильно защищенной ОС одним процессам или пользователям трудно шпионить за другим. Но так как они могут быть резидентами в одном и том же контексте, это все еще возможно. Виртуализация ОС разделяет их на другой, еще более тонкий канал, что значительно затрудняет утечку данных и выполнение злонамеренных действий.
- Надёжность. Если вы можете менять и изменять контексты ОС, вы переносите их с одного компьютера на другой, контрольную точку и перезагружаете. Что позволяет компьютерам обнаруживать сбои на собственных процессорах и корректно восстанавливаться.
Это те вещи (кроме миллионов LOC сильно отлаженного, критически важного кода), которые заставляют людей платить за Big Iron.