Popek ve Goldberg Teoremi

2021-05-18 | Tags: #sanallastirma
Bu yazı güncellenmektedir

1974 yılında Gerald Popek ve Robert Goldberg "Formal Requirements for Virtualizable Third-Generation Architectures" isminde bir makale yayınladılar. Bu makalede bir VMM (Virtual Machine Monitor ya da Hypervisor) 'ün ne gibi özelliklere sahip olması gerektiği tanımladılar. Aynı zamanda tanımladıkları teorem ile bir ISA'nın VMM tarafından sanallaştırılıp sanallaştırılamayacağını belirlediler. Teorem özellikle bir bilgisayar mimarisin sanal makineleri çalıştırabilme durumlarını açıklamaktadır. [1]

Model

  • Makale öncelikle standart bir bilgisayar mimarisi belirliyor ==> conventional third generation architecture
  • CPU'nun iki farklı çalışma modu vardır bunlar
  • User level
  • Supervisor
  • Aynı zamanda CPU sanal belleği desteklemek zorundadır. Paging yerine segmentation kullanılması gerekmektedir.
  • Fiziksel bellek 0 adresinden başlamalı ve birbirlerine komşu olmalıdır.
  • PSW(Processor State Words) M,B,L,PC bunlar system state'leri belirler:
  • M ===> execution level
  • (B,L) ===> segment register
  • PC ===> program counter

Sanal Makineler

Öncelikle sanal makinelerin ne olduğundan bahsetmek gerekiyor. Sanal makineler öncelikle bir soyutlamadan ibarettir.

        VM                         VM
+-+-------------+-+        +-+-------------+-+
| |+++++++++++++| |        | |+++++++++++++| |
| +-------------+ |        | +-------------+ |
| +-------------+ |        | +-------------+ |
| |İsletim sist.| |        | |İsletim sist.| |
| +-------------+ |        | +-------------+ |      
+-----------------+        +-----------------+

+--------------------------------------------+ 
                Hypervisor     ==> sanallaştırmayı kontrol eder
+--------------------------------------------+

+--------------------------------------------+
|                Donanim                     |
+--------------------------------------------+

VMM Tanımı

VMM sanal makineleri kontrol edecek yazılımsal bir soyutlamadır. Popek & Goldberg teoremine göre bir VMM (hypervisor) aşağıdaki üç tanımı sağlamalıdır.

  1. Equivalence: Sanal makinede çalışan bir yazılım gerçek bir donanımda çalışıyormuş gibi çalışması gerekmektedir.
  2. Safety: VM'ler birbirlerinden izole bir şekilde çalışmalıdır.
  3. Performance: VM'leri normal bir bilgisayar kullanır şekilde çalıştırabiliyor olmamız gerekiyor.

Bir Sanal Makinenin Çalışması

Öncelikle bir işletim sisteminin çalışabilmesi için belli özellikleres sahip olmamız gerekiyor. Bunlar - Kernel Mode / User Mode - Sanal Bellek - Trap

Birinci Teorem

For any conventional third generation computer, a virtual machine monitor may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions.

Bu teorem aslında sahip olabileceğimiz en iyi durumu ifade ediyor. Eğer bu mimari çalıştırılan senstive bir instruction trap oluşturabilirse bu VMM tarafından yakalanabilir. Sonrasında ise VMM bu instruction'ı emüle (emulate) edebilir. Bu sürece trap-and-emulate denir.

Kaynakça

  • Bugnion, E., Nieh, J., & Tsafrir, D. (2017). Hardware and Software Support for Virtualization. Synthesis Lectures on Computer Architecture, 12(1), 1–206. https://doi.org/10.2200/s00754ed1v01y201701cac038

This was the end of the blog post. You can reach me via email umusasadik at gmail com