Bölüm 12: Çok İşlemcili Sistemler
Giriş
Nasıl çalışalım?
20 soru · Çoktan seçmeli: 12 · Açık uçlu: 1 · Doğru / Yanlış: 2 · Hesaplama: 5. Sorular konu başlıklarına göre gruplanmış ve kolaydan zora sıralanmıştır.
Soru 1 · Mimari
Bellek Erişim Süresi Neden Değişir?
Çoktan seçmeli İki soketli bir sunucuda bir iş parçacığı, kendi soketine bağlı bellekten 80 ns’de, diğer soketin belleğinden 140 ns’de okuyabiliyor. Bu mimari nasıl adlandırılır?
- UMA: tüm CPU’lar tüm belleğe eşit sürede erişir
- Çoklu bilgisayar (multicomputer): her düğümün belleği yalnızca ileti ile erişilebilir
- NUMA: bellek tek bir adres uzayında paylaşılır ama yerel bellek uzak bellekten daha hızlıdır
- Usta-köle: yalnızca bir CPU belleğe erişebilir
Cevabı göster
Doğru cevap: C · NUMA: bellek tek bir adres uzayında paylaşılır ama yerel bellek uzak bellekten daha hızlıdır
NUMA’da her CPU tüm belleği sıradan yükleme/saklama komutlarıyla görür (paylaşımlı bellek), ancak erişim süresi belleğin hangi düğümde olduğuna bağlıdır. Bu yüzden İS sayfaları onları kullanan iş parçacığının düğümüne yerleştirmeye çalışır.
Soru 2 · Mimari
NUMA’da Ortalama Gecikme
Hesaplama Bir NUMA sisteminde yerel bellek erişimi 80 ns, uzak bellek erişimi 200 ns. (a) Bir iş parçacığının erişimlerinin %85’i yerelse ortalama erişim süresi nedir? (b) Çizelgeleyici iş parçacığını başka bir düğüme taşıdığı için oran %40’a düşerse ne olur?
Cevabı göster
(a) 0,85 × 80 + 0,15 × 200 = 68 + 30 = 98 ns.
(b) 0,40 × 80 + 0,60 × 200 = 32 + 120 = 152 ns: yaklaşık %55 yavaşlama.
Ders: NUMA’da iş parçacığını sık düğüm değiştirmek pahalıdır. İS ya iş parçacığını verisinin olduğu düğümde tutar (afinite) ya da sayfaları iş parçacığının yanına taşır (otomatik NUMA dengeleme).
Soru 3 · Mimari
Kaç Anahtar Gerekir?
Hesaplama n CPU’yu n bellek modülüne bağlamak isteniyor. (a) n = 16 için çapraz çubuk (crossbar) anahtarında kaç kesişim noktası, omega ağında kaç adet 2×2 anahtar gerekir? (b) n = 64 için? (c) Omega ağının bu tasarruf karşılığında ödediği bedel nedir?
Cevabı göster
(a) Çapraz çubuk: n2 = 256. Omega: log2 n = 4 aşama × n/2 = 8 anahtar = 32.
(b) Çapraz çubuk: 4 096. Omega: 6 aşama × 32 = 192.
(c) Omega ağı engelleyicidir: iki istek aynı anahtar çıkışını isterse biri bekler; ayrıca her istek log2 n aşamadan geçtiği için gecikme artar. Çapraz çubuk engelleyici değildir ama maliyeti n2 ile büyür.
Soru 4 · Mimari
Ara Bağlantı Topolojilerinin Çapı
Hesaplama 16 düğümlü bir çoklu bilgisayar için dört ara bağlantı düşünülüyor: çift yönlü halka, 4 × 4 ızgara, 4 × 4 simit (torus) ve 4 boyutlu hiperküp. Her birinin çapını (en uzak iki düğüm arası atlama sayısı) ve bağlantı sayısını bulun.
Cevabı göster
| Topoloji | Çap | Bağlantı |
|---|---|---|
| Halka (16) | 16 / 2 = 8 | 16 |
| 4 × 4 ızgara | (4 − 1) + (4 − 1) = 6 | 2 × 4 × 3 = 24 |
| 4 × 4 simit | 2 + 2 = 4 | 2 × 16 = 32 |
| Hiperküp (24) | boyut = 4 | 16 × 4 / 2 = 32 |
Hiperküpte düğüm sayısı ikiye katlanınca çap yalnızca 1 artar (log2 n); halkada ise yarısı kadar artar. Bedeli düğüm başına bağlantı sayısının da artmasıdır.
Soru 5 · Mimari
Hiperküpte Kaç Atlama?
Çoktan seçmeli 4 boyutlu bir hiperküpte düğümler 4 bitlik adreslerle numaralanmış; komşu düğümlerin adresleri tek bir bitte farklıdır. 0101 düğümünden 1100 düğümüne giden bir ileti en az kaç atlama yapar ve olası bir yol hangisidir?
- 2 atlama: 0101 → 1101 → 1100
- 1 atlama: 0101 → 1100
- 3 atlama: 0101 → 0100 → 0110 → 1100
- 4 atlama, çünkü hiperküpün çapı 4’tür
Cevabı göster
Doğru cevap: A · 2 atlama: 0101 → 1101 → 1100
Adreslerin XOR’u 1001: iki bit farklıdır, en az iki atlama gerekir. Her adımda farklı bitlerden biri düzeltilir (ör. önce en soldaki): 0101 → 1101 → 1100. Diğer sırayla 0101 → 0100 → 1100 da eşit uzunluktadır.
Soru 6 · Önbellek Tutarlılığı
Eski Değeri Okuyan Çekirdek
Çoktan seçmeli Paylaşılan x = 5 iki çekirdeğin özel önbelleklerinde bulunuyor. Çekirdek 0 x = 7 yazıyor; hemen ardından çekirdek 1 kendi önbelleğinden x’i okuyup 5 buluyor. Bu sorunun adı ve donanımın tipik çözümü nedir?
- Yarış durumu; çözüm her erişimi mutex ile korumaktır
- Sayfa hatası; çözüm sayfayı yeniden yüklemektir
- Yanlış paylaşım; çözüm değişkenleri farklı önbellek satırlarına ayırmaktır
- Önbellek tutarlılığı sorunu; çözüm gözetleme (snooping) ya da dizin tabanlı bir protokolle (ör. MESI) yazma öncesinde diğer kopyaları geçersiz kılmaktır
Cevabı göster
Doğru cevap: D · Önbellek tutarlılığı sorunu; çözüm gözetleme (snooping) ya da dizin tabanlı bir protokolle (ör. MESI) yazma öncesinde diğer kopyaları geçersiz kılmaktır
Aynı bellek bloğunun birden çok önbellekteki kopyaları tutarlı tutulmalıdır. Yazma-geçersiz kılma protokollerinde yazan çekirdek önce diğer kopyaları geçersiz yapar; sonraki okuma güncel veriyi yazan önbellekten ya da bellekten alır. Bu donanımın işidir; yarış durumu ise yazılım düzeyinde ayrı bir sorundur.
Soru 7 · Önbellek Tutarlılığı
MESI Durumlarını İzleyin
Hesaplama Üç çekirdekli bir sistemde (C0, C1, C2) aynı önbellek satırı başlangıçta hiçbir önbellekte yok (hepsi I). Sırasıyla şu erişimler oluyor: C0 okur, C1 okur, C1 yazar, C0 okur, C2 yazar, C2 okur. Her adımdan sonra satırın üç önbellekteki MESI durumunu yazın. Kaç kez geçersiz kılma gerekir?
Cevabı göster
| # | Erişim | C0 | C1 | C2 |
|---|---|---|---|---|
| 1 | C0 okur | E | I | I |
| 2 | C1 okur | S | S | I |
| 3 | C1 yazar | I | M | I |
| 4 | C0 okur | S | S | I |
| 5 | C2 yazar | I | I | M |
| 6 | C2 okur | I | I | M |
Geçersiz kılma 2 kez (3. ve 5. adım) gerekir. İlk okumada E durumu, sonradan yapılacak yazmanın veri yolu mesajı olmadan M’ye geçmesini sağlar.
Soru 7 · Adım Adım Çözüm
Soru 7: Adım Adım Çözüm
1. C0 okur; başka kopya yok → bellekten alır, E (özel, temiz).
2. C1 okur; C0’da kopya var → ikisi de S (paylaşılan).
3. C1 yazar; yolda geçersiz kılma yayınlanır → C0 I, C1 M (değiştirilmiş). Bellek artık eski.
4. C0 okur; C1 kirli satırı verir ve belleğe geri yazar → ikisi de S.
5. C2 yazar; geçersiz kılma → C0 ve C1 I, C2 M.
6. C2 okur; kendi önbelleğinde M: isabet, veri yolu trafiği yok.
Soru 8 · Önbellek Tutarlılığı
Ayrı Sayaçlar, Yavaş Program
Çoktan seçmeli İki iş parçacığı, birbirinden bağımsız iki sayacı (sayac[0] ve sayac[1], art arda iki long) milyonlarca kez artırıyor; ortak veri yok, kilit de yok. Program tek iş parçacıklı sürümden yavaş çalışıyor. En olası neden ve çözüm nedir?
- Yarış durumu; sayaçları mutex ile korumak
- Yanlış paylaşım: iki sayaç aynı 64 baytlık önbellek satırında olduğu için her yazma diğer çekirdeğin satırını geçersiz kılar; sayaçları farklı satırlara hizalamak (dolgu eklemek)
- Kilitlenme; iş parçacıklarını yeniden başlatmak
- Bellek sızıntısı; sayaçları öbekten ayırmak
Cevabı göster
Doğru cevap: B · Yanlış paylaşım: iki sayaç aynı 64 baytlık önbellek satırında olduğu için her yazma diğer çekirdeğin satırını geçersiz kılar; sayaçları farklı satırlara hizalamak (dolgu eklemek)
Tutarlılık satır düzeyinde çalışır; mantıksal olarak ayrı değişkenler aynı satırdaysa satır çekirdekler arasında sürekli gidip gelir (“ping-pong”). Her sayacı ayrı satıra koymak (ör. 64 bayta hizalı yapı) sorunu çözer.
Soru 9 · Önbellek Tutarlılığı
MESI Hakkında
Doğru / Yanlış Aşağıdaki ifadeleri değerlendirin.
- E (özel) durumundaki bir satıra yazmak için veri yoluna geçersiz kılma mesajı göndermek gerekir.
- M durumundaki bir satır, önbellekten çıkarılırken belleğe geri yazılmalıdır.
- Çok sayıda çekirdekte gözetleme (snooping) yerine dizin tabanlı tutarlılık tercih edilir.
Cevabı göster
- Yanlış. E, satırın başka hiçbir önbellekte olmadığını garanti eder; yazma yerel olarak M’ye geçer, mesaj gerekmez. MESI’nin MSI’ye üstünlüğü budur.
- Doğru. M, verinin yalnızca bu önbellekte güncel olduğunu gösterir; bellekteki kopya eskidir.
- Doğru. Her isteği tüm önbelleklere yayınlamak ölçeklenmez; dizin her satırın hangi önbelleklerde olduğunu tutar ve yalnızca onlara ileti gönderir (CC-NUMA).
Soru 10 · İS ve Senkronizasyon
Usta-Köle Modelinin Sorunu
Çoktan seçmeli Bir çok işlemcili İS’de çekirdek yalnızca CPU 0 üzerinde çalışıyor; diğer CPU’lar yalnızca kullanıcı süreçlerini yürütüyor ve her sistem çağrısını CPU 0’a iletiyor. Bu modelin temel sorunu nedir ve modern İS’ler hangi modeli kullanır?
- Bellek tutarlılığı bozulur; her CPU’ya ayrı İS kopyası verilir
- CPU sayısı arttıkça CPU 0 (usta) darboğaz olur; modern İS’ler çekirdeğin tüm CPU’larda çalıştığı, veri yapılarının ince taneli kilitlerle korunduğu SMP modelini kullanır
- Kullanıcı süreçleri CPU 0’da çalışamaz; çözüm süreçleri rastgele dağıtmaktır
- Sistem çağrıları güvensiz olur; çözüm mikroçekirdektir
Cevabı göster
Doğru cevap: B · CPU sayısı arttıkça CPU 0 (usta) darboğaz olur; modern İS’ler çekirdeğin tüm CPU’larda çalıştığı, veri yapılarının ince taneli kilitlerle korunduğu SMP modelini kullanır
Usta-köle modeli basittir (çekirdek veri yapılarında yarış yok) ama ustanın kapasitesi tüm sistemi sınırlar. SMP’de her CPU çekirdeği çalıştırabilir; bunun bedeli çekirdek içinde kilitlemenin dikkatle tasarlanmasıdır.
Soru 11 · İS ve Senkronizasyon
Dönen Kilit Veri Yolunu Boğuyor
Çoktan seçmeli Sekiz çekirdek aynı kilit değişkeni üzerinde sürekli TSL (test-and-set) komutunu çalıştırarak dönüyor ve sistemin geri kalanı yavaşlıyor. Hangi değişiklik bu trafiği en çok azaltır?
- TSL’yi daha sık çalıştırmak
- Kilidi tutan çekirdeğin önceliğini düşürmek
- Kilit değişkenini her çekirdeğin önbelleğinden çıkarmak için önbelleği kapatmak
- Önce kilidi sıradan okumayla (önbellekten) izleyip yalnızca serbest görünce TSL denemek (test-and-test-and-set), başarısızlıkta üstel geri çekilme eklemek
Cevabı göster
Doğru cevap: D · Önce kilidi sıradan okumayla (önbellekten) izleyip yalnızca serbest görünce TSL denemek (test-and-test-and-set), başarısızlıkta üstel geri çekilme eklemek
Her TSL bir yazmadır: satırı özel duruma çekip diğer kopyaları geçersiz kılar, satır çekirdekler arasında sürekli taşınır. Okuyarak beklemek önbellekte isabet eder ve veri yolunu kullanmaz. Daha ölçeklenebilir çözümler: bilet kilidi, kuyruk kilitleri (MCS), her bekleyenin kendi değişkeninde döndüğü yapılar.
Soru 12 · İS ve Senkronizasyon
Dönmek mi, Uyumak mı?
Çoktan seçmeli Bir çekirdekte bağlam değiştirme (uyuyup sonra geri gelme) toplam yaklaşık 8 µs tutuyor. Hangi durumda bir iş parçacığının kilidi dönerek beklemesi daha akıllıcadır?
- Kilidin genellikle 1 µs’den kısa süre tutulduğu ve sahibi başka bir CPU’da çalışan kısa bir kritik bölge
- Kilidin tipik olarak birkaç milisaniye tutulduğu, disk G/Ç’si içeren bir kritik bölge
- Tek CPU’lu bir sistemde, kilidin sahibi aynı CPU’da beklerken
- Kilit sahibinin uykuya geçmiş olduğu durum
Cevabı göster
Doğru cevap: A · Kilidin genellikle 1 µs’den kısa süre tutulduğu ve sahibi başka bir CPU’da çalışan kısa bir kritik bölge
Beklenen bekleme süresi bağlam değiştirme maliyetinden kısaysa dönmek ucuzdur. Tek CPU’da dönmek anlamsızdır: sahip, dönen iş parçacığı CPU’yu bırakmadan ilerleyemez. Pratikte uyarlamalı kilitler önce kısa süre döner, sonra uyur.
Soru 13 · Çizelgeleme
Her Dilimde Farklı Çekirdek
Çoktan seçmeli Bir süreç her zaman diliminin sonunda ortak hazır kuyruğuna dönüyor ve bir sonraki dilimde rastgele bir çekirdekte çalışıyor. Aynı süreç tek bir çekirdeğe sabitlendiğinde belirgin biçimde hızlanıyor. Bunun nedeni nedir?
- Sabit çekirdekte saat frekansı daha yüksektir
- Çekirdek değiştirmek sürecin sayfa tablosunu siler
- Süreç aynı çekirdekte kaldığında önbellek ve TLB içeriği “sıcak” kalır; her göçte veriler yeni çekirdeğin önbelleğine yeniden yüklenmek zorundadır (işlemci afinitesi)
- Ortak hazır kuyruğu kilitsiz olduğu için yarış durumu oluşur
Cevabı göster
Doğru cevap: C · Süreç aynı çekirdekte kaldığında önbellek ve TLB içeriği “sıcak” kalır; her göçte veriler yeni çekirdeğin önbelleğine yeniden yüklenmek zorundadır (işlemci afinitesi)
İşlemci afinitesi, bir süreci son çalıştığı CPU’da çalıştırmayı tercih etmektir (yumuşak) ya da belirli CPU’larla sınırlamaktır (katı, ör. taskset). Önbellek yerelliğini korur; ortak tek kuyruğun kilit çekişmesini de azaltmak için İS’ler çekirdek başına kuyruk kullanır.
Soru 14 · Çizelgeleme
Yük Dengeleme ve Afinite Gerilimi
Açık uçlu Çekirdek başına hazır kuyruğu kullanan bir İS’de bir çekirdeğin kuyruğu boş, diğerinde sekiz süreç bekliyor. İtme ve çekme göçünü açıklayın. Yük dengeleme ile afinite neden birbiriyle çelişir?
Cevabı göster
- İtme göçü (push): bir çekirdek görevi düzenli aralıklarla kuyruk uzunluklarını denetler; dengesizlik varsa yoğun kuyruktan boş olana süreç taşır.
- Çekme göçü (pull) / iş çalma: boşta kalan çekirdek, yoğun bir çekirdeğin kuyruğundan kendisi süreç alır.
Gerilim: her göç, sürecin önbellek ve TLB yerelliğini (afiniteyi) bozar; NUMA’da uzak belleğe erişimi de artırabilir. Bu yüzden İS’ler yalnızca dengesizlik belirli bir eşiği aşınca ve önce aynı önbelleği/düğümü paylaşan çekirdekler arasında göç yapar (çizelgeleme alanları).
Soru 15 · Çizelgeleme
Birbirini Bekleyen İş Parçacıkları
Çoktan seçmeli Dört iş parçacıklı bir paralel program her adımda bir bariyerde buluşuyor ve sık ileti alışverişi yapıyor. Zaman paylaşımında iş parçacıkları farklı anlarda çalıştığı için çoğu zaman birbirini bekliyor. Hangi çizelgeleme yaklaşımı bu sorunu hedefler?
- Çete (gang) çizelgeleme: ilişkili iş parçacıkları aynı zaman diliminde farklı CPU’larda birlikte çalıştırılır ve birlikte kesilir
- Afinitesiz rastgele dağıtım
- Her iş parçacığına farklı öncelik vermek
- En kısa iş önce (SJF)
Cevabı göster
Doğru cevap: A · Çete (gang) çizelgeleme: ilişkili iş parçacıkları aynı zaman diliminde farklı CPU’larda birlikte çalıştırılır ve birlikte kesilir
Bir iş parçacığı bariyerde ya da yanıt beklerken karşı tarafı çalışmıyorsa tüm dilim boşa gider. Çete çizelgeleme bir sürecin tüm iş parçacıklarını eş zamanlı çalıştırır; alan paylaşımı ise programa bir grup CPU’yu tamamen ayırır.
Soru 16 · Çizelgeleme
Çekirdek Eklemenin Sınırı
Hesaplama Bir programın çalışma süresinin %80’i paralelleştirilebiliyor, %20’si sıralı kalmak zorunda. (a) 8 çekirdekte hızlanma nedir? (b) Çekirdek sayısı sonsuza giderse hızlanma en fazla ne olur? (c) 4 kat hızlanma için kaç çekirdek gerekir? (d) Paralel kısım %95 olsaydı 64 çekirdekte?
Cevabı göster
Amdahl: S(n) = 1 / ((1 − f) + f / n), f = 0,8.
(a) 1 / (0,2 + 0,1) = 3,33. (b) 1 / 0,2 = 5. (c) 1 / 4 = 0,2 + 0,8 / n → 0,8 / n = 0,05 → n = 16. (d) 1 / (0,05 + 0,95 / 64) ≈ 15,4.
Sıralı kısım hızlanmanın tavanını belirler; sekiz katın üstüne çekirdek eklemek (a)’daki programa çok az kazandırır.
Soru 16 · Adım Adım Çözüm
Soru 16: Adım Adım Çözüm
1. S(n) = 1 / ((1 − f) + f / n); sıralı kısım 1 − f = 0,2.
2. n = 8: 0,8 / 8 = 0,1 → 1 / 0,3 = 3,33.
3. n → ∞: f / n → 0 → 1 / 0,2 = 5.
4. S = 4: 0,2 + 0,8 / n = 0,25 → 0,8 / n = 0,05 → n = 16 (8’den 16’ya çıkmak yalnızca 3,33 → 4 kazandırır).
5. f = 0,95, n = 64: 0,05 + 0,0148 = 0,0648 → 1 / 0,0648 ≈ 15,4 (tavan 20).
Soru 17 · Çoklu Bilgisayar ve Sanallaştırma
Uzak Prosedür Çağrısında Saplama
Çoktan seçmeli İstemci toplam = hesapla(dizi, n) çağrısını sıradan bir fonksiyon gibi yazıyor ama fonksiyon başka bir makinede çalışıyor. İstemci saplamasının (stub) görevi nedir ve RPC’de hangi parametre türü sorun çıkarır?
- Saplama fonksiyonu yerel olarak yeniden derler; sorun tamsayı parametrelerdir
- Saplama parametreleri bir iletiye paketler (marshalling), sunucuya gönderir, yanıtı açıp döndürür; işaretçiler sorunludur çünkü bir adres uzayındaki adres diğer makinede anlamsızdır
- Saplama ağ kartının sürücüsüdür; sorun karakter dizileridir
- Saplama iki makinenin belleğini birleştirir; sorun dönüş değeridir
Cevabı göster
Doğru cevap: B · Saplama parametreleri bir iletiye paketler (marshalling), sunucuya gönderir, yanıtı açıp döndürür; işaretçiler sorunludur çünkü bir adres uzayındaki adres diğer makinede anlamsızdır
RPC, ileti geçişini fonksiyon çağrısı görünümüne sokar. İşaretçiler kopyala-geri yükle (copy/restore) ile değer olarak gönderilmeli; ayrıca küresel değişkenler, ağ hataları (çağrı en az bir kez mi, en fazla bir kez mi yürüdü?) ve bayt sırası farkları ele alınmalıdır.
Soru 18 · Çoklu Bilgisayar ve Sanallaştırma
Tip 1 ve Tip 2 Hipervizör
Çoktan seçmeli Bir öğrenci dizüstündeki Windows üzerinde VirtualBox ile Linux çalıştırıyor; bir veri merkezi ise sunucularını doğrudan donanım üzerinde çalışan bir hipervizörle (ör. ESXi, Xen) bölüştürüyor. Bunlar sırasıyla hangi türdür?
- VirtualBox Tip 2 (bir ana İS üzerinde çalışır), ESXi/Xen Tip 1 (doğrudan donanımda, “çıplak metal”)
- İkisi de Tip 1
- VirtualBox Tip 1, ESXi Tip 2
- İkisi de konteynerdir; hipervizör değildir
Cevabı göster
Doğru cevap: A · VirtualBox Tip 2 (bir ana İS üzerinde çalışır), ESXi/Xen Tip 1 (doğrudan donanımda, “çıplak metal”)
Tip 1 hipervizör donanımı doğrudan yönetir ve konuk İS’leri çalıştırır; Tip 2 sıradan bir uygulama gibi ana İS üzerinde çalışır ve aygıt erişimini ana İS’ye bırakır. KVM, Linux çekirdeğini Tip 1 hipervizöre dönüştüren bir modül olarak genellikle Tip 1 sayılır.
Soru 19 · Çoklu Bilgisayar ve Sanallaştırma
Sanallaştırma ve Konteynerler
Doğru / Yanlış Aşağıdaki ifadeleri değerlendirin.
- Her konteyner kendi işletim sistemi çekirdeğini çalıştırır.
- Tüm hassas komutlar ayrıcalıklı olduğunda (kullanıcı kipinde tuzak ürettiğinde) bir mimari “tuzak ve benzet” yöntemiyle sanallaştırılabilir.
- EPT/NPT gibi iç içe sayfa tabloları, hipervizörün gölge sayfa tablolarını sürekli güncellemesi gereksinimini ortadan kaldırır.
Cevabı göster
- Yanlış. Konteynerler ana makinenin tek çekirdeğini paylaşır; yalıtım ad alanları (namespaces) ve kaynak sınırları cgroups ile sağlanır. Kendi çekirdeğini çalıştıran sanal makinedir.
- Doğru. Popek–Goldberg koşulu. Eski x86 bunu sağlamıyordu; ikili çeviri ya da VT-x/AMD-V donanım desteği gerekti.
- Doğru. Donanım, konuk sanal → konuk fiziksel → ana fiziksel çevirisini iki düzeyli yürüyüşle yapar; bedeli TLB ıskalamasında daha uzun yürüyüştür.
Soru 20 · Çoklu Bilgisayar ve Sanallaştırma
Yarı Sanallaştırma Nedir?
Çoktan seçmeli Bir konuk İS’nin çekirdeği, hassas komutları doğrudan çalıştırmak yerine hipervizöre özel çağrılar (hiper çağrılar) yapacak biçimde değiştirilmiş. Bu yaklaşımın adı ve bedeli nedir?
- Tam sanallaştırma; bedeli yoktur
- Konteynerleştirme; bedeli çekirdek paylaşımıdır
- Yarı sanallaştırma (paravirtualization); daha az tuzakla daha hızlı çalışır ama konuk İS’nin kaynak kodunun değiştirilmesini gerektirir
- Benzetim (emülasyon); bedeli her komutun yorumlanmasıdır
Cevabı göster
Doğru cevap: C · Yarı sanallaştırma (paravirtualization); daha az tuzakla daha hızlı çalışır ama konuk İS’nin kaynak kodunun değiştirilmesini gerektirir
Xen’in ilk sürümleri bu yolu kullandı. Günümüzde donanım destekli tam sanallaştırma yaygındır; ancak virtio gibi yarı sanallaştırılmış aygıt sürücüleri G/Ç başarımı için hâlâ standarttır.
Özet
Özet: Sık Yapılan Hatalar
| Yanlış düşünce | Doğrusu |
|---|---|
| Afinite, süreci en hızlı CPU’ya atamaktır. | Afinite, süreci önbelleği sıcak olan aynı CPU’da tutmaktır. |
| Bağımsız değişkenler çekirdekler arasında çekişmez. | Aynı önbellek satırındaysa yanlış paylaşım oluşur. |
| Çekirdek sayısını artırmak hızlanmayı sınırsız artırır. | Amdahl: tavan 1 / (sıralı kısım). |
| E durumundaki satıra yazmak veri yolu mesajı ister. | E → M yereldir; MESI’nin kazancı budur. |
| Tek CPU’da kilidi dönerek beklemek iyidir. | Tek CPU’da sahip ilerleyemez; uyumak gerekir. |
| Konteyner hafif bir sanal makinedir, kendi çekirdeği vardır. | Konteynerler ana çekirdeği paylaşır. |