BM-311 Bilgisayar Mimarisi

Benzer belgeler
BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

10 Parallel Mimariler: Çok İşlemcili / Çok Çekirdekli / Çok Bilgisayarlı Sistemler (Multiprocessor / Multicore / Multicomputer Systems)

10 Parallel Mimariler: Çok İşlemcili / Çok Çekirdekli / Çok Bilgisayarlı Sistemler (Multiprocessor / Multicore / Multicomputer Systems)

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

İşletim Sistemleri (Operating Systems)

İşletim Sistemlerine Giriş

İşletim Sistemlerine Genel Bakış

BM-311 Bilgisayar Mimarisi

İşletim Sistemlerine Giriş

Dağıtık Ortak Hafızalı Çoklu Mikroişlemcilere Sahip Optik Tabanlı Mimari Üzerinde Dizin Protokollerinin Başarım Çözümlemesi

Bilgisayar Sistemlerine Genel Bakış

BM-311 Bilgisayar Mimarisi

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

SOME-Bus Mimarisi Üzerinde Mesaj Geçişi Protokolünün Başarımını Artırmaya Yönelik Bir Algoritma

MİKROİŞLEMCİ MİMARİLERİ

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Yrd.Doç.Dr. Celal Murat KANDEMİR

BM-311 Bilgisayar Mimarisi

İŞLETİM SİSTEMLERİ. (Operating Systems)

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

İşletim Sistemleri (Operating Systems)

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

William Stallings Computer Organization and Architecture 9 th Edition

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

YZM 3102 İşletim Sistemleri

Sabit ve Taşınabilir Diskler BÖLÜM-2 Pata Diskler İçin Master-Slave Ayarları Disk Biçimlendirme Harici Diskler Olası Sabit Disk Arızaları RAID

BM-311 Bilgisayar Mimarisi

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

Paralel Hesaplama. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

Sanal Makineler ve Linux Konteynerlerin Performans Karşılaştırması

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

ÇOK İŞLEMCİLİ KIRMIK MİMARİLERİ İNCİ CABAR

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

İŞLETİM SİSTEMLERİ TANIMI

Bilgisayar İşletim Sistemleri BLG 312

BIL410 GELİŞMİŞ BİLGİSAYAR MİMARİLERİ. Kayhan İmre

İşletim Sistemlerine Giriş

Multicore/Multithread Programlama

Büyük Veri Analitiği (Big Data Analytics)

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

BM-311 Bilgisayar Mimarisi

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

PAPERWORK TEKNİK MİMARİ

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

Bilgisayarların Gelişimi

DERS 10 İŞLETİM SİSTEMİ ÇALIŞMA PRENSİBLERİ VE HATA MESAJLARI

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Sanallaştırmada Özgür Yazılım Çözümleri. Alper YALÇINER

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

İşletim Sistemlerine Giriş

1 WINDOWS SERVER 2012 GENEL BAKIŞ 1 Giriş 1 Bu Kitapta 5 Çıkış Hikâyesi 6 Sürümler 7

Bilgisayar Mimarisi Nedir?

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bilgisayar Mimarisi ve Organizasyonu Giriş

Güvenli Doküman Senkronizasyonu

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

Bölüm 8: Ana Bellek 8.1

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BM 402 Bilgisayar Ağları (Computer Networks)

Mikrobilgisayar Sistemleri ve Assembler

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Windows Server 2012: Sanallaştırmanın ötesine geçin. Oğuz Pastırmacı IT Pro Teknolojileri Yöneticisi Microsoft Türkiye

Cluster i Linux'ta Kümeleme Özgür Yazılım ve Açık Kaynak G 2006 Ali Erdinç Köroğlu

İşlem Yönetimi (Process Management)

İNFOSET İNFOSET Ses Kayıt Sistemi v2.0. Sistem Kataloğu

İşletim Sistemlerine Genel Bakış

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

MİKROİŞLEMCİLER 1 Ders 1

BİT in Temel Bileşenleri (Yazılım-1)

Mikroçita. Mikroçita Rapor 2:

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Bilgisayar İşletim Sistemleri BLG 312

Bölüm Bazı Temel Konseptler

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Linux İşletim Sistemlerine Bakış & Ücretsiz Yazılımlarla Çözümler

İşletim Sistemi. BTEP205 - İşletim Sistemleri

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

BİLGİSAYAR MİMARİSİNDE YENİ YAKLAŞIMLAR DÖNEM PROJESİ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Gündem. VLAN nedir? Nasıl Çalışır? VLAN Teknolojileri

Transkript:

1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Çok işlemcili sistemler Simetrik çok işlemciler Önbellek tutarlılığı MESI protokolü Multithreading Cluster yapıları

2 Çok işlemcili sistemler Geleneksel olarak bilgisayar sıralı işlem yapan bir makine olarak düşünülür. Bir çok programlama dili algoritmaların sıralı komutlar halinde ifade edilmesini gerektirir. İşlemciler, programlardaki makine komutlarını sıralı şekilde çalıştırır. Her makine komutu, sıralı işlemler kullanılarak (fetch instruction, fetch operands, perform operations, store results) çalıştırılır. Mikroişlem düzeyinde birden fazla kontrol sinyali aynı anda oluşturulur. Superscalar makinelerde birden fazla işlem birimi vardır ve aynı programın farklı komutları aynı anda çalıştırılır. Çok işlemcili sistemler Bilgisayar sistemleri dört kategori halinde ifade edilir: Single instruction, single data (SISD) stream: Bir işlemci bir bellekte depolanmış veri üzerinde işlem yapmak için bir komut dizisini çalıştırır. Tek işlemcili sistemler bu gruptadır. Single instruction, multiple data (SIMD) stream: Bir makine komutu çok sayıda eş zamanlı işlem elemanını kontrol eder. Her komut, farklı işlemci tarafından farklı veri seti üzerinde çalıştırılır. Vektör ve dizi işlemcileri bu gruptadır. Multiple instruction, single data (MISD) stream: Sıralı bir veri bir grup işlemciye gönderilir. Her işlemci farklı komut dizisini çalıştırır. Ticari olarak gerçekleştirilmemiştir. Multiple instruction, multiple data (MIMD) stream: Bir grup işlemci farklı komut dizisini farklı veri kümesini kullanarak eş zamanlı çalıştırır. Simetrik çok işlemciler, cluster lar, nonuniform memory access (NUMA) sistemler bu gruptadır.

3 Çok işlemcili sistemler MIMD organizasyonunda işlemciler genel amaçlıdır ve yapılacak iş için gerekli tüm komutları çalıştırır. MIMD iki gruba ayrılır: Shared memory: Tüm işlemciler aynı belleği paylaşırlar. Tüm program ve veriler aynı bellektedir ve process ler paylaşılan bellek üzerinden birbiriyle iletişim yapar. Simetrik çok işlemciler bu gruptadır. Distributed memory: Belleğin farklı bölümlerine farklı işlemcilerin erişim süreleri farklıdır. Cluster sistemler bu gruptadır. Bağımsız tek işlemciler veya simetrik çok işlemcili sistemler birbirine bağlanarak cluster yapısını oluşturur. Bilgisayarlar arasındaki bağlantı doğrudan yapılabilir veya ağ üzerinden yapılabilir. Çok işlemcili sistemler

4 Çok işlemcili sistemler SISD yapısında, komut dizisi (IS) bir kontrol birimi (CU) tarafından bir işlem birimine (PU) sağlanır. İşlem birimi bir bellek birimi (MU) üzerinde işlem yapar. SIMD yapısında, bir kontrol birimi tarafından komut dizisi birden çok işlem birimine sağlanır. Her işlem birimi kendine ait lokal belleğe (LM) sahiptir. Çok işlemcili sistemler MIMD yapısında, birden fazla kontrol birimi tarafından farklı komut dizileri birden fazla işlem birimine sağlanır. İşlem birimleri paylaşılmış veya ayrı ayrı belleğe sahip olabilir.

5 Konular Çok işlemcili sistemler Simetrik çok işlemciler Önbellek tutarlılığı MESI protokolü Multithreading Cluster yapıları Simetrik çok işlemciler Son yıllara kadar tüm tek kullanıcılı kişisel bilgisayarlar ve iş istasyonları genel amaçlı tek mikroişlemciye sahipti. Performans gereksinimlerini karşılamak üzere SMP (Symmetric Multiprocessors) donanım mimarisi geliştirilmiştir. SMP mimarisine sahip bir bilgisayar: İki veya daha fazla işlemciye sahiptir. İşlemciler, aynı belleği paylaşır, birbirine bus ile bağlıdır ve bellek erişim süreleri yaklaşık aynıdır. Tüm işlemciler I/O cihazlarını aynı iletim kanalları veya farklı iletim kanalları üzerinden paylaşır. Tüm işlemciler aynı işlevleri yerine getirir (simetrik). Sistem bir işletim sistemi tarafından kontrol edilir.

6 Simetrik çok işlemciler SMP mimarisinde çalışan işletim sistemi process lerin veya thread lerin çalışmasını planlar. Tek işlemcili mimariye göre SMP mimarisi, performance, availability, incremental growth ve scaling avantajlarına sahiptir. Performance İşlerin bazı kısımları aynı anda çalıştırılabilir. Çok işlemcili bir sistem tek işlemcili bir sisteme göre önemli oranda performans artışı sağlar. Simetrik çok işlemciler

7 Simetrik çok işlemciler Availability: SMP de tüm işlemciler aynı işleve sahip olduğundan, bir işlemci çalışmazsa, makine diğer işlemcilerle daha düşük performansla çalışmasına devam eder. Incremental growth: Sistem performansı yeni bir işlemci eklenerek artırılabilir. Scaling: Üreticiler işlemci sayısına bağlı olarak farklı performans ve farklı fiyatla ürün aralığı sağlayabilirler. SMP mimarisinde paralel çalışmanın faydasının ortaya çıkması, işletim sisteminin sağladığı araçlara bağlıdır (işlemcilerin senkronizasyonu, process ve thread lerin planlanması). Simetrik çok işlemciler Çok işlemcili sistemler zaman paylaşımlı bus kullanır.

8 Konular Çok işlemcili sistemler Simetrik çok işlemciler Önbellek tutarlılığı MESI protokolü Multithreading Cluster yapıları Önbellek tutarlılığı Modern çok işlemcili sistemlerde, önbelleğin bir veya iki seviyesi her bir işlemci için ayrı oluşturulur. Farklı işlemcilerde ayrı önbellek bulunması önbellek tutarlılığı (cache coherence) açısından problem oluşturur. Aynı verinin birden fazla kopyası farklı önbelleklerde bulunabilir. İşlemciler aynı verinin farklı önbelleklerdeki kopyalarını aynı anda değiştirirse tutarsızlık ortaya çıkar. Write back: Değişiklikler önbellekte yapılır. Önbellekten atılacağı zaman ana hafızada güncelleme yapılır. Ana hafıza yazma yapılana kadar güncel değildir. Write through: Tüm değişiklikler önbellekle aynı anda hafızada da yapılır. Ana hafıza sürekli günceldir. Write back kullanılıyorsa ve iki önbellek aynı veriye sahipse, birisindeki herhangi bir değişiklikte tutarsızlık oluşur. Önbellek tutarlılığı için yazılım ve donanım çözümleri vardır.

9 Önbellek tutarlılığı Yazılımsal çözümler Önbellek tutarlılığını derleyici veya işletim sistemi sağlar. Derleyici tabanlı çözümlerde, kod analiz edilir ve hangi verilerin önbellek için güvenilir olmadığı işaretlenir. İşletim sistemi veya donanım önbelleklenemez olarak işaretlenen bu verileri önbelleğe almaz. Basit bir yaklaşımla paylaşılan tüm veriler önbelleklenemez yapılır. Önbellek tutarlılığı Donanımsal çözümler Donanımsal çözümlerde önbellek tutarlığı için protokol geliştirilir. Run time da potansiyel tutarsızlıklar dinamik olarak algılanır. Donanımsal çözümlerde problem ortaya çıktığı anda giderildiğinden, yazılımsal çözümlere göre daha iyi performans sağlar. Donanımsal çözümler, directory protokolleri ve snoopy protokolleri olarak iki gruba ayrılır.

10 Önbellek tutarlılığı Donanımsal çözümler directory protokolleri Directory protokolleri, verilerin kopyasının nerede olduğuna dair bilgi toplar ve bellekte saklar. Genellikle ana hafızaya bütünleşik merkezi bir denetleyici, önbellek denetleyicilerden gelen istekleri izler. Herhangi bir önbellekteki bir veri üzerinde yapılacak lokal işlem, merkezi denetleyiciye rapor edilir. Merkezi denetleyici hangi CPU da hangi verinin olduğunu saklar. Herhangi bir önbellek veriye yazma yapacağı zaman merkezi denetleyiciden izin ister, diğer önbellekler invalidate yapar. Başka önbellek aynı veriyi istediğinde, merkezi denetleyici güncel halini tutan önbellekten write back yapmasını ister. Directory protokollerde, merkezi bileşende yığılma ve haberleşmeden dolayı overhead oluşur. Önbellek tutarlılığı Donanımsal çözümler snoopy protokolleri Önbellek tutarlılığı dağıtık olarak işlemcilerdeki önbellek denetleyiciler tarafından yapılır. Her önbellek diğer önbelleklerle paylaştığı verileri bilmek zorundadır. Paylaşılan bir veride bir önbellek tarafından güncelleme yapıldığında, tüm önbelleklere broadcast bildirim yapılır. Her önbellek denetleyici broadcast mesajları izler. Snoopy protokoller bus trafiğini artırır.

11 Konular Çok işlemcili sistemler Simetrik çok işlemciler Önbellek tutarlılığı MESI protokolü Multithreading Cluster yapıları MESI protokolü MESI (Modified Exclusive Shared Invalid) protokolü önbellekteki verinin durumunu iki bitle tutar. Önbellekteki her satır dört durumdan birisinde olabilir: Modified: Veri değişmiştir (ana hafızadaki farklıdır) ve sadece bu önbellekte güncel hali vardır. Exclusive: Veri değişmemiştir (ana hafızadaki aynıdır) ve başka önbellekte yoktur. Shared: Veri değişmemiştir (ana hafızadaki aynıdır) ve başka önbellekte olabilir. Invalid: Önbellekteki veri geçerli değildir.

12 MESI protokolü Lokal işlemci başlatır. Bus başlatır. Satır cache e alınır. Diğerleri Invalidate olur. MESI protokolü MESI önbellekteki verinin durumunu, ait olduğu işlemci veya bus tan diğer işlemcilerden gelen girişle değiştirir. Read Miss Önbellekte bir read miss olursa, işlemci hafızadan okuma başlatır. İşlemci bus ile diğer tüm işlemcilerdeki önbellek birimlerine mesaj gönderir. 1) Eğer başka bir önbellekte güncel kopyası varsa, kopyası alınır. Gönderendeki durumu Exclusive ise Shared yapılır, alan önbellekteki durumu Invalid ise Shared yapılır. 2) Eğer bir veya daha fazla cache güncel kopyaya sahipse ve Shared durumunda ise, alan önbellekte Invalid ise Shared yapılır. 3) Eğer başka bir önbellekte var ve Modified ise, gönderendeki durumu Shared yapılır, alandaki durumu Shared yapılır. Ana hafızadaki kopya güncellenir. 4) Başka önbellekte yoksa ana hafızadan alınır ve Invalid durumu Exclusive yapılır.

13 MESI protokolü Read Hit Önbellekte read hit olursa, işlemci veriyi okur ve mevcut durumu (Modified, Shared, Exclusive) değişmez. Write Miss Önbellekte write miss olursa, işlemci ana hafızadan veriyi okur. Diğer belleklere bus üzerinden read-with-intent-to-modify sinyali gönderir. Satır yüklenir yüklenmez durumu Modified yapılır. Eğer diğer önbelleklerden birisinde Modifed olarak varsa, bus üzerinden hafızada güncelleme yapılır ve durumu Invalid yapılır. Eğer diğer önbelleklerde Modified durumunda yoksa, Shared durumunda varsa hepsi Invalid durumuna geçer ve talep eden işlemci ana hafızadan alır. Write Hit MESI protokolü Lokal önbellekte bir satırda write hit olursa, mevcut duruma göre işlem yapılır: 1) Shared: İşlemci değişiklik yapmadan önce Exclusive erişime sahip olmalıdır. Tüm işlemcilere bus tan sinyal gönderilir ve Shared durumunda olanlar Invalid yapılır. İşlemci değişikliği yapar ve Shared durumundan Modified durumuna alır. 2) Exclusive: İşlemci değişikliği yapar ve Exclusive durumundan Modified durumuna alır. 3) Modifed: İşlemci değişikliği yapar ve satır için durum değişikliği yapmaz.

14 Konular Çok işlemcili sistemler Simetrik çok işlemciler Önbellek tutarlılığı MESI protokolü Multithreading Cluster yapıları Multithreading İşlemcilerin en önemli performans ölçütü, komutları çalıştırma hızıdır. MIPS rate = f x IPC f clock frekansı ve IPC instruction per cycle ı ifade eder. IPC, pipelining ve superscalar mimarilerle artırılmaya çalışılır. Pipeline performansını artırmak için komutların sırası değiştirilir. Karmaşıklık ve enerji tüketiminden dolayı belirli bir limite kadar iyileştirme yapılabilir. Multithreading, devre karmaşıklığını ve enerji tüketimini artırmadan instruction level parallellism i artırır. Instruction stream çok sayıda küçük stream e bölünür (threads) ve paralel çalıştırılır.

15 Multithreading Process: Bir bilgisayarda çalışan programın örneğidir. Resource ownership: Bir process, bir virtual adres aralığında program, veri, stack ve özellikleri tutar. Scheduling/execution: Bir process işletim sistemi tarafından running durumuna geçirilir ve işlemciye atanır. Process switch: İşlemcinin bir process ten başka bir process e geçmesini ifade eder. Önceki process in tüm verileri saklanır. Thread: Bir process içerisinde ayrı çalıştırılabilen kısımdır. Bir thread sıralı çalıştırılır ve kesilip başka bir thread e geçilebilir. Thread switch: İşlemcinin bir thread den başka bir thread e geçmesini ifade eder. Thread switch, process switch e göre daha düşük maliyete sahiptir. Process teki thread ler aynı kaynağı paylaşabilir. Multithreading Multithreaded işlemcilerin her thread için ayrı program counter a sahip olması gereklidir. Bir process içindeki thread ler aynı kaynağı paylaşırlar. Thread switch süresi process switch süresinden daha düşüktür. User-level thread ler, uygulama programları tarafından kullanılır. Kernel-level thread ler, işletim sistemi tarafından kullanılır. Implicit multithreading, sıralı tek programdan çoklu thread lerin eşzamanlı çalıştırılmasını ifade eder. Explicit multithreading, farklı programlardan çoklu thread lerin eşzamanlı çalıştırılmasını ifade eder. Aynı pipeline paylaşılabilir veya paralel pipeline lar kullanılabilir.

16 Multithreading Expilicit multithreading Multithreaded işlemci, thread leri eşzamanlı (concurrently) çalıştırmak için tek program counter ı kullanabilir. Multithreading için dört yaklaşım vardır: Interleaved (fine-grained) multithreading: İşlemci iki veya daha fazla thread arasında sıralı geçiş yapar. Thread veri bağımlılığı veya hafıza gecikmesi nedeniyle bloklanırsa başka thread e geçilir. Blocked (coarse-grained) multithreading: Bir thread deki komutlar cache miss veya delay oluncaya kadar sıralı çalıştırılır. Cache miss veya delay ortaya çıkınca başka thread e geçilir. Simultaneous multithreading: Birden fazla thread deki komutlar superscalar işlemciye aynı anda gönderilir. Chip multiprocessing: Bir chip içerisindeki birden fazla işlemci (multicore) farklı thread leri çalıştırır. İlk iki yaklaşımda, farklı thread lerdeki komutlar aynı anda çalışmaz, son ikisinde aynı anda çalışır. Multithreading Single-threaded scalar çalışmada, bir pipeline vardır ve multithreading yoktur. Interleaved multithreaded scalar çalışmada, her clock cyle da bir thread den diğerine geçiş yapılır. Blocked multithreaded scalar çalışmada, delay veya cache miss olana kadar thread çalıştırılır, olduğunda diğerine geçilir.

17 Multithreading Temel superscalar çalışmada, multithreading yoktur ve bazen maksimum sayıda (işlem birimi sayısı) komut alınamayabilir, bazen de hiç komut alınamayabilir. Interleaved multithreading superscalar çalışmada, bir thread den olabildiği kadar çok komut alınır. Her clock cyle da thread ler arasında geçiş yapılır. Blocked multithreaded superscalar çalışmada, bir cycle da bir thread den komutlar alınır ve blocked multithreading kullanılır. Multithreading Simultaneous multithreading çalışmada, farklı thread lerden olabildiği kadar çok komut aynı anda çalıştırılır. Chip multiprocessor (multicore) çalışmada, her işlemci birden fazla komut alabilen superscalar yapıya sahiptir. Her işlemci bir thread e atanmıştır ve iki komut aynı anda alabilir.

18 Konular Çok işlemcili sistemler Simetrik çok işlemciler Önbellek tutarlılığı MESI protokolü Multithreading Cluster yapıları Cluster yapıları Cluster, birbirine bağlı bir grup bilgisayarın sahip olduğu kaynakları birleştirilmiş bir makine gibi gösterir. Cluster içindeki her bilgisayar bir düğüm (node) olarak adlandırılır. Cluster yapısının faydaları: Mutlak ölçeklenebilirlik: Cluster a yeni makineler kolaylıkla eklenebilir. Cluster da, onlarca, yüzlerce hatta binlerce makine olabilir. Artırımlı ölçeklenebilirlik: Bir cluster a küçük artırımlarla yeni sistemler eklenebilir. Kullanıcı ihtiyaçlarını sistemde büyük değişiklik yapmadan genişletebilir. Yüksek bulunurluk (high availability): Cluster daki bir düğümdeki hata sistemin servis dışı kalmasına neden olmaz. Fiyat/performans üstünlüğü: Bir grup basit makine ile büyük bir makineyle eşdeğer veya daha güçlü bir cluster oluşturulabilir. Bir tane büyük makineye göre daha düşük fiyata mal edilebilir.

19 Cluster yapıları Cluster konfigürasyonları En basit cluster yapısında, aynı diske cluster içindeki makineler paylaşarak erişir. Şekildeki iki düğüme sahip bir cluster yüksek hızlı bağlantı ile düğümler arasında mesaj aktarmaktadır. Cluster daki her bilgisayar çok işlemcilidir. Cluster yapıları Cluster konfigürasyonları Bir cluster daki makineler aynı diske paylaşarak erişebilir. Düğümler arasında yüksek hızlı bir link kullanılır. Bir RAID (Redundant Array of Independent Disks) disk sistemi ortak paylaşılan bir disk sistemi olarak kullanılmıştır.

20 Cluster yapıları Passive standby Primary makine çalışırken secondary makine hazır bekler. Primary makine çalışır olduğunu periyodik olarak secondary makineye bildirir. Secondary makine mesaj alamadığında otomatik olarak aktif hale gelir. Oluşturulması kolaydır. Maliyeti yüksektir. Secondary makine başka bir iş için kullanılmaz. Passive standby bir cluster yapısı olarak değerlendirilmez. Cluster yapıları Active secondary Ayrı sunucular Tüm sunucular kendi diskine sahiptir. Veri primary ile secondary makine arasında sürekli kopyalanır. High availability sağlar. Veri kopyalama yüksek overhead oluşturur. Paylaşımsız Ortak diskler partition lara bölünür ve her partition bir bilgisayara atanır. Bir bilgisayar hata verirse, ona ait volume başka bilgisayar tarafından yönetilir. Disk paylaşımlı Çok sayıda bilgisayar aynı anda aynı diski paylaşır. Tüm bilgisayarlar tüm volume lere erişebilir. Disklerdeki veri tutarlılığı için lock mekanizması kullanılır.

21 Cluster yapıları Cluster mimarileri Cluster daki bilgisayarlar bağımsız işlem yapabilir. Middleware layer yazılım, high availability, load balancing ve failure management sağlar. Cluster yapıları Blade server mimarisi Blade server mimarisinde bir kasada çok sayıda server vardır. Her blade, işlemci, hafıza ve hard diske sahiptir.