SlideShare a Scribd company logo
Виртуализация аппаратного
              обеспечения




              Николай Иготти
Идеологические моменты
• Можно реализовывать конкретную
  архитектуру в ВМ
• И исполнять программы и ОС для этой
  архитектуры в ВМ
• Что позволяет
   прототипировать новые архитектуры
   гибко управлять ресурсами существующих
   использовать программы для устаревших
• Сложность в приемлемой
  производительности полученной
  реализации
• Весь дальнейший курс – о сложностях и их
  преодолении                                2
Немного истории
• 1964 – CP/40, IBM (14 виртуальных машин
  одновременно) – полная виртуализация
• 1966 - M44/44X, IBM - паравиртуализация,
  виртуальная память
• 1972 – VM/370, IBM – полноценный гипервизор,
  используется до сих пор
• 1974 – формальные критерии виртуализирумости
  Попека-Голдберга
• 1995 – основание Transmeta, процессоры с бинарным
  транслятором
• 1998 – VMWare – первый виртуализатор x86 с
  бинарным транслятором
• 2005 – Intel/AMD – расширения x86 для аппаратной
  виртуализации

                                                     3
Основные проблемы

• Производительность (исполнение
  инструкций)
• Производительность (доступ к памяти)
• Производительность (выполнение ввода-
  вывода)
• Производительность (время отклика
  системы)
• Безопасность, стабильность
• Точная поведенческая эмуляция, особенно
  для сложных устройств ввода-вывода

                                            4
Подходы к решению
• Программное моделирование целевой
  архитектуры
• Интерпретация
• Динамическая трансляция
• Непосредственное исполнение инструкций
• Непосредственное использование MMU
• Прозрачная обработка исключений реальной
  машины
• Программные модели оборудования
• Непосредственный (безопасный) доступ к
  оборудованию
                                           5
Критерии Попека-Голдберга
• Критерии полезной виртуализуемости архитектуры
  для систем непосредственного исполнения (Java?)
• Необходимы
    Эквивалентность
    Контроль VMM над ресурсами
    Эффективность
• В наборе инструкций
    Привилегированные инструкции (P)
    Чувствительные (по управлению, по поведению)
     инструкции (S)
    Все инструкции (A)
• От архитектуры требуются

       SP                   P  A
                              стат.
                              знач                  6
Попек-Голдберг и x86

• X86 не удовлетворяет критериям ПГ
• Из-за наличия чувствительных
  непривилегированных инструкций (S[GIL]DT,
  SMWS, PUSHF, LAR, POP [CS]S, STR)
• Тем не менее, можно создать эффективный
  VMM
• Используя механизм бинарной трансляции
• Или расширения архитектуры
  виртуализирующие привилегированное
  состояние (VT-x, AMD-V)

                                            7
Вопросы

• Какие аппаратные компоненты
  критичны для реализации VMM?
• В чѐм отличие механизма прерываний
  от устройств ввода/вывода в
  виртуализированном окружении
• Доступ к памяти – привилегированная
  операция или нет?
• Как проверить, удовлетворяет ли
  архитектура XYZ критериям ПГ?

                                    8

More Related Content

Similar to Н. Иготти. Виртуализация и виртуальные машины. Лекция 10

Аппаратные и программные средства управления
Аппаратные и программные средства управленияАппаратные и программные средства управления
Аппаратные и программные средства управления
Maxim Gubin
 
Аппаратные и программные средства управления
Аппаратные и программные средства управленияАппаратные и программные средства управления
Аппаратные и программные средства управления
Maxim Gubin
 
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Ontico
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Computer Science Club
 
20100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture0620100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture06Computer Science Club
 
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
VThn18
 
Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?
Cisco Russia
 
Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco. Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco. Cisco Russia
 
Softswitch datasheet
Softswitch datasheetSoftswitch datasheet
Softswitch datasheet
Артём Спицын
 
нэта
нэтанэта
нэта
BDA
 
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as Code
Igor Kurochkin
 
WebAssembly
WebAssemblyWebAssembly
WebAssembly
Sergey Rubanov
 
Вычислительная система Cisco UCS. Архитектура и преимущества
Вычислительная система Cisco UCS. Архитектура и преимущества Вычислительная система Cisco UCS. Архитектура и преимущества
Вычислительная система Cisco UCS. Архитектура и преимущества Cisco Russia
 
Практический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLAlex Chistyakov
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...
Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...
Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...Ontico
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
Elena Ometova
 
Новости гиперковергенции
Новости гиперковергенцииНовости гиперковергенции
Новости гиперковергенции
Cisco Russia
 
Объединенная вычислительная система Cisco UCS. Часть 2
Объединенная вычислительная система Cisco UCS. Часть 2Объединенная вычислительная система Cisco UCS. Часть 2
Объединенная вычислительная система Cisco UCS. Часть 2Cisco Russia
 
нэта
нэтанэта
нэта
BDA
 

Similar to Н. Иготти. Виртуализация и виртуальные машины. Лекция 10 (20)

Аппаратные и программные средства управления
Аппаратные и программные средства управленияАппаратные и программные средства управления
Аппаратные и программные средства управления
 
Аппаратные и программные средства управления
Аппаратные и программные средства управленияАппаратные и программные средства управления
Аппаратные и программные средства управления
 
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
 
20100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture0620100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture06
 
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
 
Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?
 
Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco. Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco.
 
Softswitch datasheet
Softswitch datasheetSoftswitch datasheet
Softswitch datasheet
 
нэта
нэтанэта
нэта
 
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as Code
 
WebAssembly
WebAssemblyWebAssembly
WebAssembly
 
Вычислительная система Cisco UCS. Архитектура и преимущества
Вычислительная система Cisco UCS. Архитектура и преимущества Вычислительная система Cisco UCS. Архитектура и преимущества
Вычислительная система Cisco UCS. Архитектура и преимущества
 
Практический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQL
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...
Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...
Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий...
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
Новости гиперковергенции
Новости гиперковергенцииНовости гиперковергенции
Новости гиперковергенции
 
Объединенная вычислительная система Cisco UCS. Часть 2
Объединенная вычислительная система Cisco UCS. Часть 2Объединенная вычислительная система Cisco UCS. Часть 2
Объединенная вычислительная система Cisco UCS. Часть 2
 
нэта
нэтанэта
нэта
 

More from Computer Science Club

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
Computer Science Club
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

Н. Иготти. Виртуализация и виртуальные машины. Лекция 10

  • 1. Виртуализация аппаратного обеспечения Николай Иготти
  • 2. Идеологические моменты • Можно реализовывать конкретную архитектуру в ВМ • И исполнять программы и ОС для этой архитектуры в ВМ • Что позволяет  прототипировать новые архитектуры  гибко управлять ресурсами существующих  использовать программы для устаревших • Сложность в приемлемой производительности полученной реализации • Весь дальнейший курс – о сложностях и их преодолении 2
  • 3. Немного истории • 1964 – CP/40, IBM (14 виртуальных машин одновременно) – полная виртуализация • 1966 - M44/44X, IBM - паравиртуализация, виртуальная память • 1972 – VM/370, IBM – полноценный гипервизор, используется до сих пор • 1974 – формальные критерии виртуализирумости Попека-Голдберга • 1995 – основание Transmeta, процессоры с бинарным транслятором • 1998 – VMWare – первый виртуализатор x86 с бинарным транслятором • 2005 – Intel/AMD – расширения x86 для аппаратной виртуализации 3
  • 4. Основные проблемы • Производительность (исполнение инструкций) • Производительность (доступ к памяти) • Производительность (выполнение ввода- вывода) • Производительность (время отклика системы) • Безопасность, стабильность • Точная поведенческая эмуляция, особенно для сложных устройств ввода-вывода 4
  • 5. Подходы к решению • Программное моделирование целевой архитектуры • Интерпретация • Динамическая трансляция • Непосредственное исполнение инструкций • Непосредственное использование MMU • Прозрачная обработка исключений реальной машины • Программные модели оборудования • Непосредственный (безопасный) доступ к оборудованию 5
  • 6. Критерии Попека-Голдберга • Критерии полезной виртуализуемости архитектуры для систем непосредственного исполнения (Java?) • Необходимы  Эквивалентность  Контроль VMM над ресурсами  Эффективность • В наборе инструкций  Привилегированные инструкции (P)  Чувствительные (по управлению, по поведению) инструкции (S)  Все инструкции (A) • От архитектуры требуются SP P  A стат. знач 6
  • 7. Попек-Голдберг и x86 • X86 не удовлетворяет критериям ПГ • Из-за наличия чувствительных непривилегированных инструкций (S[GIL]DT, SMWS, PUSHF, LAR, POP [CS]S, STR) • Тем не менее, можно создать эффективный VMM • Используя механизм бинарной трансляции • Или расширения архитектуры виртуализирующие привилегированное состояние (VT-x, AMD-V) 7
  • 8. Вопросы • Какие аппаратные компоненты критичны для реализации VMM? • В чѐм отличие механизма прерываний от устройств ввода/вывода в виртуализированном окружении • Доступ к памяти – привилегированная операция или нет? • Как проверить, удовлетворяет ли архитектура XYZ критериям ПГ? 8