Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Carnegie Mellon
1Adapted from the slides of “Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective” book by Asst. Prof. Dr. Fatih Gökçe
Süleyman Demirel Üniversitesi / Mühendislik Fak. / Bilgisayar Mühendisliği BölümüSüleyman Demirel Üniversitesi / Mühendislik Fak. / Bilgisayar Mühendisliği Bölümü
Bilgisayar Sistemlerine Genel Bakış
BIL-304: Bilgisayar Mimarisi
Dersi veren öğretim üyesi:
Dr. Öğr. Üyesi Dr. Fatih Gökçe
Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/Adapted from slides of the textbook: http://csapp.cs.cmu.edu/
Merhaba!
#include <stdio.h>
int main()
{
printf("Merhaba,Dunya\n");
return 0;
}
ASCII Tablosu
Önişleyici(cpp)
Derleyici(cc1)
Çevirici(as)
merhaba.o Bağlayıcı(ld)
merhaba
Kaynak
program
(text)
Modifiye
edilmiş
kaynak
program
(text)
Assembly
program
(text)
Yeniden
yerleştirilebilir
programlar
(binary)
Çalıştırılabilir
program
(binary)
printf.o
merhaba.i merhaba.smerhaba.c
linux> gcc –o merhaba merhaba.c
Pre-
processor(cpp)
hello.i Compiler(cc1)
hello.s Assembler(as)
hello.o Linker(ld)
hellohello.c
Source
program
(text)
Modified
source
program
(text)
Assembly
program
(text)
Relocatable
object
programs
(binary)
Executable
object
program
(binary)
printf.o
Ana
HafızaI/O
köprüsüVeri yolu arabirimi
ALU
Kaydedici dosyası
CPU
Sistem veriyolu Hafıza veriyolu
Disk
kontrolcü
Grafik
bağdaştırıcı
USB
kontrolcü
Fare Klavye Ekran
Disk
I/O veriyoluAğ bağdaştırıcı gibi
diğer cihazlar için
genişleme slotları
merhaba çalıştırılabilir
programı diskte kayıtlı
PC
Ana
HafızaI/O
köprüsüVeri yolu arabirimi
ALU
Kaydedici dosyası
CPU
Disk
kontrolcü
Grafik
bağdaştırıcı
USB
kontrolcü
Ekran
Disk
Ağ bağdaştırıcı gibi
diğer cihazlar için
genişleme slotları
PC
"merhaba"
Kullanıcı
"merhaba"
yazar
Sistem veriyolu Hafıza veriyolu
I/O veriyolu
Fare Klavye
Ana
HafızaI/O
köprüsüVeri yolu arabirimi
ALU
Kaydedici dosyası
CPU
Disk
kontrolcü
Grafik
bağdaştırıcı
USB
kontrolcü
Disk
PC
merhaba kodu
"Merhaba,Dunya\n"
Sistem veriyolu Hafıza veriyolu
Fare Klavye Ekran
I/O veriyoluAğ bağdaştırıcı gibi
diğer cihazlar için
genişleme slotları
merhaba çalıştırılabilir
programı diskte kayıtlı
Ana
HafızaI/O
köprüsüVeri yolu arabirimi
ALU
Kaydedici dosyası
CPU
Disk
kontrolcü
Grafik
bağdaştırıcı
USB
kontrolcü
Diskmerhaba çalıştırılabilir
programı diskte kayıtlı
PC
"Merhaba,Dunya\n"
Sistem veriyolu Hafıza veriyolu
Fare Klavye Ekran
I/O veriyoluAğ bağdaştırıcı gibi
diğer cihazlar için
genişleme slotları
merhaba kodu
"Merhaba,Dunya\n"
Ana
HafızaI/O
köprüsüVeri yolu arabirimi
ALU
Kaydedici dosyası
CPU entegre çipi
Sistem veriyolu Hafıza veriyolu
Önbellekler
Önbellek
Kaydediciler
L1 önbellek
(SRAM)
Ana Hafıza
(DRAM)
Yerel ikincil depolama
(yerel diskler)
Daha büyük,
daha yavaş ve
daha ucuz
(byte başına
maliyet
açısından)
depolama
cihazları
Uzak ikincil depolama
(dağıtık dosya sistemleri, Web sunucular)
Yerel diskler, uzak ağ
sunucularında bulunan
disklerden alınan
dosyaları tutar.
Ana hafıza, yerel diskten alınan
disk bloklarını tutar.
L2 önbellek
(SRAM)
L1 önbelleği, L2 önbelleğinden alınan
verileri tutar.
CPU kaydedicileri, önbellekten alınan
verileri tutar.
L2 önbelleği, L3 önbelleğinden
alınan verileri tutar.
L0:
L1:
L2:
L3:
L4:
L5:
Daha küçük,
daha hızlı ve
daha pahalı
(byte başına
maliyet
açısından)
depolama
cihazları
L3 önbellek
(SRAM)L3 önbelleği, ana hafızadan alınan
verileri tutar.
L6:
Hafıza Hiyerarşisi
Uygulama programları
İşlemci Ana hafıza I/O cihazları
İşletim sistemi
Yazılım
Donanım
Donanım İşletim Sistemi
Tarafından Yönetilir
İşlemci Ana hafıza I/O cihazları
İşlemler
Dosyalar
Sanal hafıza
Abstraction-Soyutlama
A işlemi B işlemi
Kullanıcı kodu
Çekirdek kodu
Kullanıcı kodu
Çekirdek kodu
Kullanıcı kodu
Zaman
Başka işleme
geçiş
Başka işleme
geçiş
read
Disk kesmesi
read den
geri dönüş
İşletim sisteminin bir işlemden
başka işleme geçişi
(Context Switch)
İş parçacığı, yani Thread?
Çekirdek sanal hafızası
Paylaşımlı kütüphaneler için
bellek haritalı alan
Çalışma zamanı bellek alanı(malloc tarafından oluşturulur)
Kullanıcı yığını(çalışma zamanında oluşturulur)
0
Kullanıcı kodu
tarafından erişilemeyen
hafıza bölgesi
Oku/yaz veri
Salt okunur kod ve veri
merhaba çalıştırılabilir
dosyasından yüklenir.
printf fonksiyonu
Program
başlangıcı
İşlem Sanal adres alanı
Ana
HafızaI/O
köprüsüVeri yolu arabirimi
ALU
CPU
Disk
kontrolcü
Graphics
bağdaştırıcı
USB
kontrolcü
Disk
Genişleme slotları
Ağ
bağdaştırıcı
Ağ
PC
Kaydedici dosyası
Sistem veriyolu Hafıza veriyolu
Fare Klavye Ekran
I/O veriyolu
Yerel
telnet
istemcisi
Uzak
telnet
sunucusu
2. İstemci "merhaba"
karakter dizisini telnet
sunucusuna gönderir.
3. Sunucu "merhaba" karakter
dizisini, merhaba programını
çalıştıracak ve çıktıyı
telnet sunucusuna
yönlendirecek olan konsola
gönderir.4. Telnet sunucusu
“Merhaba,Dunya\n" karakter
dizisini istemciye gönderir.
5. İstemci ekrana"Merhaba,Dunya\n"
karakter dizisini yazar.
1. Kullanıcı klavyeye "merhaba" yazar.
Tüm işlemciler
Çok işlemcili
Tek işlemcili Çok-
çekirdekli
Hyper-
thread’li
Tek çekirdek-Çok çekirdek
Kaydediciler
L1 d-önbellek
L1 i-önbellek
L2 birleştirilmiş
önbellek
Çekirdek 0
Kaydediciler
L1 d-önbellek
L1 i-önbellek
L2 birleştirilmiş
önbellek
Çekirdek 3
…
L3 birleştirilmiş önbellek
(tüm çekirdekler tarafından paylaşılır)
Ana hafıza
CPU entegre paketi
İşlemci Ana hafıza I/O cihazları
İşlemler
Dosyalar
Sanal hafıza
İşletim sistemi
Sanal Makina
Komut seti
mimarisi