Bölüm 12: Çok İşlemcili Sistemler

İşletim Sistemleri · Çalışma Soruları
MimariÖnbellek TutarlılığıİS ve SenkronizasyonÇizelgelemeÇoklu Bilgisayar ve Sanallaştırma
Sercan KÜLCÜ · Giresun Üniversitesi · Bilgisayar Mühendisliği

Giriş

Nasıl çalışalım?

1 · Önce çözünHer slaytta bir soru var. Cevabı açmadan önce kâğıda kendi cevabınızı yazın; çoktan seçmelide eleme gerekçenizi de not edin.
2 · Cevabı açın“Cevabı göster” kutusu doğru cevabı ve kısa gerekçeyi verir. Açık uçlu sorularda kendi cevabınızı anahtar kavramlarla karşılaştırın.
3 · Adım adım izleyinHesaplama ve kod sorularının ardından gelen “Adım Adım Çözüm” slaytında › düğmesiyle çözümü satır satır ilerletin.

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?

  1. UMA: tüm CPU’lar tüm belleğe eşit sürede erişir
  2. Çoklu bilgisayar (multicomputer): her düğümün belleği yalnızca ileti ile erişilebilir
  3. NUMA: bellek tek bir adres uzayında paylaşılır ama yerel bellek uzak bellekten daha hızlıdır
  4. 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ÇapBağlantı
Halka (16)16 / 2 = 816
4 × 4 ızgara(4 − 1) + (4 − 1) = 62 × 4 × 3 = 24
4 × 4 simit2 + 2 = 42 × 16 = 32
Hiperküp (24)boyut = 416 × 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?

  1. 2 atlama: 0101 → 1101 → 1100
  2. 1 atlama: 0101 → 1100
  3. 3 atlama: 0101 → 0100 → 0110 → 1100
  4. 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?

  1. Yarış durumu; çözüm her erişimi mutex ile korumaktır
  2. Sayfa hatası; çözüm sayfayı yeniden yüklemektir
  3. Yanlış paylaşım; çözüm değişkenleri farklı önbellek satırlarına ayırmaktır
  4. Ö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şimC0C1C2
1C0 okurEII
2C1 okurSSI
3C1 yazarIMI
4C0 okurSSI
5C2 yazarIIM
6C2 okurIIM

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?

  1. Yarış durumu; sayaçları mutex ile korumak
  2. 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)
  3. Kilitlenme; iş parçacıklarını yeniden başlatmak
  4. 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.

  1. E (özel) durumundaki bir satıra yazmak için veri yoluna geçersiz kılma mesajı göndermek gerekir.
  2. M durumundaki bir satır, önbellekten çıkarılırken belleğe geri yazılmalıdır.
  3. Çok sayıda çekirdekte gözetleme (snooping) yerine dizin tabanlı tutarlılık tercih edilir.
Cevabı göster
  1. 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.
  2. Doğru. M, verinin yalnızca bu önbellekte güncel olduğunu gösterir; bellekteki kopya eskidir.
  3. 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?

  1. Bellek tutarlılığı bozulur; her CPU’ya ayrı İS kopyası verilir
  2. 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
  3. Kullanıcı süreçleri CPU 0’da çalışamaz; çözüm süreçleri rastgele dağıtmaktır
  4. 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?

  1. TSL’yi daha sık çalıştırmak
  2. Kilidi tutan çekirdeğin önceliğini düşürmek
  3. Kilit değişkenini her çekirdeğin önbelleğinden çıkarmak için önbelleği kapatmak
  4. Ö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?

  1. 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
  2. Kilidin tipik olarak birkaç milisaniye tutulduğu, disk G/Ç’si içeren bir kritik bölge
  3. Tek CPU’lu bir sistemde, kilidin sahibi aynı CPU’da beklerken
  4. 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?

  1. Sabit çekirdekte saat frekansı daha yüksektir
  2. Çekirdek değiştirmek sürecin sayfa tablosunu siler
  3. 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)
  4. 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?

  1. Çete (gang) çizelgeleme: ilişkili iş parçacıkları aynı zaman diliminde farklı CPU’larda birlikte çalıştırılır ve birlikte kesilir
  2. Afinitesiz rastgele dağıtım
  3. Her iş parçacığına farklı öncelik vermek
  4. 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?

  1. Saplama fonksiyonu yerel olarak yeniden derler; sorun tamsayı parametrelerdir
  2. 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
  3. Saplama ağ kartının sürücüsüdür; sorun karakter dizileridir
  4. 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?

  1. VirtualBox Tip 2 (bir ana İS üzerinde çalışır), ESXi/Xen Tip 1 (doğrudan donanımda, “çıplak metal”)
  2. İkisi de Tip 1
  3. VirtualBox Tip 1, ESXi Tip 2
  4. İ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.

  1. Her konteyner kendi işletim sistemi çekirdeğini çalıştırır.
  2. 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.
  3. 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
  1. 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.
  2. 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.
  3. 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?

  1. Tam sanallaştırma; bedeli yoktur
  2. Konteynerleştirme; bedeli çekirdek paylaşımıdır
  3. Yarı sanallaştırma (paravirtualization); daha az tuzakla daha hızlı çalışır ama konuk İS’nin kaynak kodunun değiştirilmesini gerektirir
  4. 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üşünceDoğ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.

Son

Bölüm 12: Çok İşlemcili Sistemler
Sonraki: Bölüm 13 Çalışma Soruları
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.