Popek ve Goldberg sanallaştırma gereksinimleri - Popek and Goldberg virtualization requirements

Popek ve Goldberg sanallaştırma gereksinimleri destek sistemi için bir bilgisayar mimarisi için yeterli koşullar kümesidir sanallaştırma verimli. Bunlar, Gerald J. Popek ve Robert P. Goldberg tarafından 1974 tarihli "Sanallaştırılabilir Üçüncü Nesil Mimariler için Resmi Gereksinimler" başlıklı makalelerinde tanıtıldı . Gereksinimler, basitleştirici varsayımlar altında türetilse de, bir bilgisayar mimarisinin verimli sanallaştırmayı destekleyip desteklemediğini belirlemenin uygun bir yolunu temsil eder ve sanallaştırılmış bilgisayar mimarilerinin tasarımı için yönergeler sağlar.

VMM tanımı

Sistem sanal makineleri , bir işlemci (veya işlemciler), bellek ve depolama kaynakları ve çevresel aygıtlar dahil olmak üzere tüm donanım kaynaklarını sanallaştırabilir. Bir sanal makine monitörü (aynı zamanda VMM hipervizör ) bir sanal makinenin soyutlama sağlayan bir yazılım parçasıdır. Bir VMM tarafından oluşturulan ortamı analiz ederken ilgilenilen üç özellik vardır:

Eşdeğerlik / Aslına Uygunluk
VMM altında çalışan bir program, doğrudan eşdeğer bir makinede çalıştırıldığında gösterilenle temelde aynı olan bir davranış sergilemelidir.
Kaynak kontrolü / Güvenlik
VMM, sanallaştırılmış kaynakların tam denetiminde olmalıdır.
Verimlilik / Performans
Makine komutlarının istatistiksel olarak baskın bir bölümü VMM müdahalesi olmadan yürütülmelidir.

Popek ve Goldberg'in terminolojisine göre, bir VMM üç özelliği de sunmalıdır. Smith ve Nair'in (2005) referans kitabında kullanılan terminolojide, VMM'lerin tipik olarak eşdeğerlik ve kaynak kontrol özelliklerini karşıladığı varsayılır ve ayrıca performans özelliğini karşılayanlara verimli VMM'ler denir .

Popek ve Goldberg , yukarıdaki özelliklere sahip VMM'leri çalıştırmak için fiziksel makinenin komut seti mimarisinin (ISA) sahip olması gereken özellikleri açıklar. Analizleri, bu tür karakteristikleri, modern makinelere genişletilebilecek kadar genel olan bir "üçüncü nesil mimariler" (örneğin, IBM 360, Honeywell 6000, DEC PDP-10) modelini kullanarak türetmektedir. Bu model, sistem veya kullanıcı modunda çalışan ve doğrusal, tek tip olarak adreslenebilir belleğe erişimi olan bir işlemci içerir. Komut setinin bir alt kümesinin yalnızca sistem modunda mevcut olduğu ve bu belleğin bir yeniden konumlandırma yazmacına göre adreslendiği varsayılır. G / Ç ve kesintiler modellenmez.

Sanallaştırma teoremleri

Popek ve Goldberg, sanallaştırma için yeterli (ancak gerekli olmayan) koşulları sağlayan sanallaştırma teoremlerini türetmek için, bir ISA'nın bazı talimatlarının 3 farklı gruba sınıflandırılmasını sağlar:

Ayrıcalıklı talimatlar
Bunlar o tuzağa işlemcisi ise kullanıcı modu ve sistem modu (ise tuzak yok gözetmen modu ).
Hassas talimatları kontrol edin
Sistemdeki kaynakların yapılandırmasını değiştirmeye çalışanlar.
Davranış duyarlı talimatlar
Davranışı veya sonucu kaynakların yapılandırmasına bağlı olanlar (yeniden konumlandırma kaydının içeriği veya işlemcinin modu).

Popek ve Goldberg'in analizinin ana sonucu şu şekilde ifade edilebilir.

Teorem 1 . Herhangi bir geleneksel için üçüncü nesil bilgisayar , bir etkili bu bilgisayar için hassas talimat seti ayrıcalıklı talimat setinde bir alt ise VMM inşa edilebilir.

Sezgisel olarak teorem, bir VMM oluşturmak için, VMM'nin doğru işleyişini etkileyebilecek tüm talimatların (hassas talimatlar) kontrolü her zaman yakalayıp VMM'ye geçirmesinin yeterli olduğunu belirtir. Bu, kaynak kontrol özelliğini garanti eder. Ayrıcalıklı olmayan talimatlar bunun yerine yerel olarak (yani verimli bir şekilde) yürütülmelidir. Eşdeğerlik mülkiyetinin elde tutulması da bunu takip eder.

Bu teorem aynı zamanda , daha yakın zamanda klasik sanallaştırma olarak adlandırılan, yakala ve taklit et sanallaştırma adı verilen bir VMM uygulamak için basit bir teknik sağlar : tüm hassas talimatlar iyi davrandığı için, VMM'nin yapması gereken tek şey, her seferinde tuzak kurmak ve taklit etmektir.

Bununla ilgili bir sorun, özyinelemeli sanallaştırma için yeterli koşulların, yani kendi kopyası üzerinde çalışabilen bir VMM'nin oluşturulabileceği koşulların türetilmesidir. Popek ve Goldberg aşağıdaki (yeterli) koşulları sunar.

Teorem 2 . Geleneksel bir üçüncü nesil bilgisayar , aşağıdaki durumlarda yinelemeli olarak sanallaştırılabilir:

  1. sanallaştırılabilir ve
  2. bunun için herhangi bir zamanlama bağımlılığı olmayan bir VMM oluşturulabilir.

Donanım destekli olmayan x86 gibi bazı mimariler bu koşulları karşılamadığından klasik şekilde sanallaştırılamazlar. Ancak mimariler, bazen kritik talimatlar olarak adlandırılan tuzaklar oluşturmayan hassas talimatların yerini alan ikili çeviri gibi farklı teknikler kullanılarak tam anlamıyla sanallaştırılabilir (x86 durumunda CPU ve MMU düzeyinde). Ancak bu ek işlem, VMM'yi teoride daha az verimli hale getirir, ancak donanım tuzakları da göz ardı edilemeyecek bir performans maliyetine sahiptir. İyi ayarlanmış bir önbelleğe alma ikili çeviri sistemi, karşılaştırılabilir bir performans elde edebilir ve yalnızca hassas talimatları yakalanabilir hale getiren birinci nesil x86 donanım yardımına göre x86 ikili çeviri durumunda bunu yapar. Etkili olarak bu, farklı yeterlilik koşullarına sahip bir teorem verir.

Teorem 3 . Kullanıcıya duyarlı talimatlar kümesinin, ayrıcalıklı talimatlar kümesinin bir alt kümesi olduğu herhangi bir üçüncü nesil makine için bir hibrit VMM oluşturulabilir:

Kritik talimatları işleme

Teorem 1'de ifade edilen ISA sanallaştırma koşulları, verimlilik özelliği pahasına gevşetilebilir. Sanallaştırılamayan ISA'lar için VMM'ler (Popek ve Goldberg'in anlamında) rutin olarak oluşturulmuştur.

Bu tür mimarilerin sanallaştırılması, kritik talimatların , yani hassas ancak ayrıcalıksız talimatların doğru şekilde işlenmesini gerektirir . Yama olarak bilinen bir yaklaşım, dinamik yeniden derlemede yaygın olarak kullanılan teknikleri benimser : kritik talimatlar çalışma zamanında keşfedilir ve VMM'ye bir tuzakla değiştirilir. Yama işlemini daha verimli hale getirmek için öykünme kodunun önbelleğe alınması veya donanım destekleri gibi çeşitli mekanizmalar önerilmiştir. Farklı bir yaklaşım, sanal ortamda çalıştırılmadan önce konuk işletim sistemlerinin değiştirilmesini ( taşınmasını ) gerektiren paravirtualization yöntemidir .

Ortak mimarilerin komut setleri

Bu bölümde bazı ilgili mimariler ve bunların sanallaştırma gereksinimleriyle nasıl ilişkili olduğu gösterilmektedir.

PDP-10

PDP-10 mimari (alter veya sorgu işlemcinin modu) duyarlı ancak ayrıcalıklı olmayan birkaç talimatlar bulunur. Bu talimatlar, USER veya IOT bitlerini içeren durum kodlarını kaydeder veya geri yükler:

  • JSR: alt yordama atla
  • JSP: zıpla ve program sayacını kaydet
  • PUSHJ: aşağı itin ve zıplayın
  • JRST: zıpla ve geri yükle

Sistem / 370

System / 370'daki tüm hassas talimatlar ayrıcalıklıdır: sanallaştırma gereksinimlerini karşılar.

Motorola MC68000

Motorola MC68000'de El Sıkışmalı tek imtiyazsız duyarlı talimat vardır:

  • SR'den MOVE

Bu talimat hassastır çünkü sadece koşul kodlarını değil, aynı zamanda kullanıcı / denetleyici bitini, kesme seviyesini ve izleme kontrolünü de içeren tüm durum yazmacına erişime izin verir . Sonraki aile üyelerinin çoğunda , MC68010'dan başlayarak, SR'den MOVE komutu ayrıcalıklı hale getirildi ve yalnızca koşul kodu yazmacına erişime izin vermek için CCR'den yeni bir MOVE sağlandı.

IA-32 (x86)

IA-32 arasında komut seti Pentium işlemcisine 18, hassas, imtiyazsız talimatlar içerir. İki grupta kategorize edilebilirler:

  • Hassas kayıt talimatları: hassas kayıtları veya saat kaydı veya kesinti kayıtları gibi hafıza konumlarını okuyun veya değiştirin:
    • SGDT, SIDT, SLDT
    • SMSW
    • PUSHF, POPF
  • Koruma sistemi talimatları: depolama koruma sistemine, belleğe veya adres yeniden yerleştirme sistemine bakın:
    • LAR, LSL, VERR, VERW
    • POP
    • İT
    • UZAK ÇAĞRI, JMP FAR, INT n, RETF
    • STR
    • MOV (bölüm kayıtları)

AMD-V ve Intel VT-x komut setlerinin 2005 yılında piyasaya sürülmesi, x86 işlemcilerin Popek ve Goldberg sanallaştırma gereksinimlerini karşılamasına olanak tanır.

IA-64

IA-64 mimarisinde sanallaştırmayı desteklemek için gereken çaba , Magenheimer ve Christian tarafından 2000 tarihli bir makalede anlatılmıştır.

SPARC

UltraSPARC mimarisi için bir "hiper ayrıcalıklı" mod UltraSPARC Architecture 2005'te belirtildi . ' Bir tanımlayan sun4v bir süper set olan bir platform sun4u platformu, ama yine de SPARC v9 Seviye-1 spesifikasyonuna uyumludur.

PowerPC

PowerPC komut setindeki tüm hassas talimatlar ayrıcalıklıdır.

Uygulamada performans

Popek ve Goldberg'in VMM tanımındaki verimlilik gerekliliği, yalnızca yerel olarak yürütülmesi gereken ayrıcalıklı olmayan talimatların yürütülmesiyle ilgilidir. Bu, bir VMM'yi daha genel donanım öykünme yazılımı sınıfından ayıran şeydir . Ne yazık ki, Popek ve Goldberg'in gereksinimlerini karşılayan bir mimaride bile, sanal bir makinenin performansı gerçek donanımdan önemli ölçüde farklı olabilir. System / 370 (Teorem 1'in resmi gereksinimlerini karşılayan) üzerinde gerçekleştirilen ilk deneyler, sanal bir makinenin performansının bazı kıyaslamalarda yerel makinenin% 21'i kadar düşük olabileceğini gösterdi. VMM'de ayrıcalıklı talimatları yakalamanın ve taklit etmenin maliyeti önemli olabilir. Bu, IBM mühendislerinin , System / 370 sanal makinelerin performansını kabaca iki katına çıkaran bir dizi donanım yardımcısı sunmasına yol açtı . Asistler birkaç aşamada eklendi. Sonunda, System / 370'in son modellerinde 100'ün üzerinde asist vardı.

Sistem / 370 için donanım yardımlarının geliştirilmesinin ana itici faktörlerinden biri sanal belleğin kendisiydi. Konuk, kendi başına sanal bellek uygulayan bir işletim sistemi olduğunda, ayrıcalıklı olmayan talimatlar bile daha uzun yürütme süreleri ile karşılaşabilir - bu, yerel yürütmede kullanılmayan çeviri tablolarına erişim gereksinimi tarafından uygulanan bir ceza ( gölge sayfa tablolarına bakın ).

Referanslar

Notlar