İşletim Sistemleri

advertisement
İşletim Sistemleri
İşletim Sistemleri
Dr. Binnur Kurt
[email protected]
Omega Eğitim ve Danışmanlık
http://www.omegaegitim.com
Bölüm 1
İşletim Sistemi
1|Sayfa
İşletim Sistemleri
İçindekiler
1. İşletim Sistemleri
2. Kabuk
3. Prosesler
4. İplikler
5. Prosesler Arası İletişim
6. İş Sıralama
7. Ölümcül Kilitlenme
8. Çok İplikli Programlama
9. Bellek Yönetimi
10. Dosya Sistemi
11. Socket Haberleşme
Bölüm 1
İşletim Sistemi
2|Sayfa
İşletim Sistemleri
BÖLÜM 1
İşletim Sistemleri
Bölümün Amacı
Bölüm sonunda aşağıdaki konular öğrenilmiş olacaktır:
► İşletim sistemi ile ilgili temel kavramlar ve tanımlar
► İşletim sistemlerinin özellikleri
► İşletim sistemi mimarileri
Bölüm 1
İşletim Sistemi
3|Sayfa
İşletim Sistemleri
1.1 Giriş
Bilgisayar mühendisliği açısından temel olarak iki sistemden söz edebiliriz: İş
Sistemleri ve Bilişim Sistemleri (Şekil-1.1). İş sistemleri iş süreçlerinden oluşur.
Bu süreçler şirkete para kazandıran, borsadaki değerini arttıran faaliyetler olarak
düşünülebilir. İş süreçlerinin sahibi, bu süreçleri şirketin verimliliğini, servis
kalitesini, kaynak ve kapasite kullanımını arttıracak şekilde ya değiştirmek ya da
yenilerini eklemek ister. Bilişim sistemlerinin görevi iş süreçlerinde dolaşan
verileri alıp işleyerek, karar verme süreçlerine destek olmak, maliyetleri
düşürerek verimliliği artırmak ya da işlerin insan etkileşimi olmaksızın akışını
sağlayarak otomasyonu sağlamak olabilir.
İş
Bilişim
Sistemleri
Sistemleri
Şekil-1.1 İş ve Bilişim Sistemleri
Bilişim sistemleri donanım ve yazılım alt sistemlerinden oluşmaktadır (Şekil-1.2).
Donanım alt sisteminde fiziksel olarak dokunabileceğimiz, Merkezi İşlem Birimi (MİB),
Bellek, Ekran Kartı, Disk, Giriş/Çıkış cihazları gibi bileşenler yer alır. MİB
uygulamaların çalışabilir kodlarının işletildiği yerdir. Günümüz modern işlemcileri
uygulamaları hızlı çalıştırmak için birçok teknik kullanır. Bu tekniklere örnek olarak,
sıra-düzensiz çalıştırma, dallanma kestirimi, birden fazla hesaplama birimi
bulundurma gibi yöntemler verilebilir. Bellek uygulamanın durumunun geçici olarak
saklandığı alandır. Verilerin işlenebilmesi için MİB içindeki saklayıcılara taşınması
gerekir. Bellek MİB içindeki saklayıcılara göre bin kat daha yavaş erişime sahiptir. Bu
yavaşlığı gizlemek için işlemciler, cep bellek olarak adlandırılan yapılar içerir.
Katmanlı bir yapıya sahip cep belleklerden L1 ve L2 olarak adlandırılan iki adet
seviyede bellek bulunur. L2 bellek kapasite olarak L1’den büyüktür. Buna karşılık
olarak L1 bellekler L2 belleklere göre çok daha hızlıdır. Genel ilke olarak, MİB’deki
saklayıcılardan belleğe doğru ilerledikçe kapasite artar, buna karşılık olarak erişim
süreleri ise uzar (Şekil-1.3).
Bölüm 1
İşletim Sistemi
4|Sayfa
İşletim Sistemleri
K1
K2
Kn
Uygulamalar
İşletim Sistemi
(İş sıralayıcı, Bellek Yönetimi, Kullanıcı Yönetimi,
G/Ç Yönetimi)
Donanım
(MİB, Bellek, Ekran Kartı, Disk, G/Ç Cihazları)
Şekil-1.2 Donanım-Yazılım Sistemleri
Hız
Saklayıcı
Kapasite
L1, L2
Ana Bellek
swap (Disk)
Şekil-1.3 Bellek Hiyerarşisi
Yazılım alt sistemi ise donanım üzerine kuruludur ve farklı mimarilerde tasarlanmış
olabilir. Yazılım alt sisteminin en önemli parçasını işletim sistemi oluşturur. İşletim
sisteminin temel görevi sistem kaynaklarını kullanıcılar ve uygulamalar arasında
paylaştırmaktır (Şekil-1.4). Sistem kaynaklarından en önemlisi işlemcidir. İşletim
sisteminde çalışan uygulamaları proses olarak adlandırıyoruz. İşletim sistemi işlemciyi
prosesler arasında zamanda paylaştırır. İşletim sisteminin en önemli bileşeni
çekirdektir. Çekirdek çok sayıda servisten oluşur: İş sıralayıcı, bellek yöneticisi,
kullanıcı yöneticisi, giriş/çıkış yöneticisi. İş sıralayıcının görevi işlemciyi prosesler
arasında zamanda paylaştırmaktır. Farklı makinalarda farklı kapasitelerde fiziksel
bellek bulunabiliir ve bu fiziksel bellekler farklı bölmelere yerleştirilmiş olabilir. Bellek
yöneticisinin görevi, sanki tüm bellek bölmeleri doluymuş gibi bir sanal bellek uzayı
oluşturmak ve uygulamaların bu sanal belleği kullanmalarını sağlamaktır.
Uygulamaların adres yoluna çıkardıkları sanal adresleri fiziksel adreslere donanımdan
destek alarak dönüştürmekten yine bellek yöneticisi sorumludur. Kullanıcı için,
örneğin, e-posta gönderip almak için doğrudan donanıma erişmek çok karmaşıktır.
Çekirdek donanımı çevreleyerek, bu karmaşıklığı bir ölçüde gizler. Ancak hala e-posta
gönderip almak için çekirdek karmaşıktır. Uygulamalar çekirdekle sistem çağrıları
aracılığı ile konuşur. Sıradan kullanıcı için sistem çağrıları oldukça karmaşıktır. Bu
karmaşıklığı kullanıcıdan gizlemek için çekirdeği çevreleyen kabuk olarak adlandırılan
Bölüm 1
İşletim Sistemi
5|Sayfa
İşletim Sistemleri
bir katman yer alır. Kabuğun görevi kullanıcıdan aldığı komutları çekirdeğin
anlayacağı bir dizi sistem çağrısına dönüştürmektir. Çok sayıda kabuk yazılımı
bulunur: Sh (Bourne Shell), Bash (Bourne Again Shell), Csh (C Shell), Tcsh (TC Shell),
Zsh (Z Shell), Ksh (Korn Shell). Bunlar arasında hız, güvenlik seviyesi, programlama
yetenekleri gibi farklılıklar bulunur. Ama sıradan bir kullanıcı için bile e-posta alıp
göndermek için bile kabuk çok karmaşıktır. Kabuğu da çevreleyen bir uygulama
katmanı bulunur. Uygulama katmanında örneğin e-posta alıp göndermek için e-posta
istemcisi (örneğin Thunderbird) bulunur. Kullanıcı bu programı kullanarak e-posta
işlemlerini gerçekleştirir.
Şekil-1.4 İşletim Sisteminin Katmanlı Mimarisi
1.2 İşletim Sistemi Türleri
Farklı donanım platformları bulunur. Bu platformlar üzerinde çalışan uygulamaların
gereksinimleri biri birinden farklılık gösterir. Bu farklı ihtiyaçlara cevap verebilmek
için işletim sistemleri özelleşmiştir:
 Anaçatı işletim sistemleri
 Sunucu işletim sistemleri
 Çok işlemcili işletim sistemleri
 Kişisel bilgisayar işletim sistemleri
 Gerçek zamanlı işletim sistemleri
 Gömülü işletim sistemleri
 Akıllı-kart işletim sistemleri
1.2.1 Anaçatı İşletim Sistemleri
Yoğun Giriş/Çıkış işlemi gerektiren çok sayıda görev çalıştırmaya yönelik
tasarlanmış işletim sistemleridir. Üç tür temel hizmeti yerine getirirler:
1. Yığın işlem çalıştırma kipi
Bölüm 1
İşletim Sistemi
6|Sayfa
İşletim Sistemleri
Yığın işlemler etkileşim gerektirmeyen, çoğu zaman periyodik olarak
gerçekleştirilen işlemleri kapsar. Örnek olarak bir sigorta şirketindeki sigorta
tazminatı isteklerinin işlenmesi verilebilir.
2. Atomik (transaction) İşlemler
Çoğu zaman bir iş sürecini oluşturulan adımların tamamının başarılı olmasını
ya da adımlardan biri başarısız olursa hiçbir adımın çalıştırılmamasını isteriz. Bu
işlemlerin süresinin kısa olması istenir. Örneğin; seyahat organizasyonu sürecinde
otel rezervasyonu, uçak bileti rezervasyonu ve araç kiralama adımlarının atomik
olması istenir. Bu adımlardan herhangi biri başarısız olursa uçak bileti ve otel
rezervasyonun ve araç kiralama işlemlerinin hiçbirinin yürütülmemesi istenir.
3. Zaman paylaşımlı çalışma
Burada birden fazla uzaktan bağlanan kullanıcının sistemde iş çalıştırmasına izin
veren sistemlerdir. Örneğin; IBM System z9 sistemi.
1.2.2 Sunucu İşletim Sistemleri
Bu tür sistemler sunucu makinalar üzerinde çalışır. Bu tür sunucuların çekirdek
sayıları ve bellek kapasiteleri yüksektir. Bilgisayar ağı üzerinden çok sayıda kullanıcıya
hizmet verebilir. Hem donanımı hem de yazılımı paylaştırma yeteneğine sahiptir.
Yazıcı hizmeti, dosya paylaştırma, web erişimini örnek olarak verebilir. Bu tür işletim
sistemlerine Windows Server 2012, Red Hat Enterprise Linux, AIX, Solaris işletim
sistemleri örnek olarak verebiliriz.
1.2.3 Çok İşlemcili İşletim Sistemleri
Birden fazla işlemcili bilgisayar sistemleridir. Amaç bilgi işleme gücünü arttırmaktır.
İşlemcilerin bağlantı türüne göre farklı isimler alabilirler:
a. Paralel Sistemler: Biri birine bağlı, birden fazla bilgisayardan oluşan
sistemlerdir. Bu bilgisayarlar, biri birleri ile özel yüksek bant genişliğine sahip
ara bağlaşım sistemleri üzerinden konuşurlar.
b. Çok İşlemcili Sistemler: Aynı anakarta bağlı birden fazla işlemcinin olduğu
sistemlerdir.
Temel olarak sunucu işletim sistemlerine benzer tasarım hedeflerine sahip olsalar da
işlemciler arası bağlaşım ve iletişim için ek özelliklere ihtiyaç duyarlar.
1.2.4 Kişisel Bilgisayar İşletim Sistemleri
Kullanıcıya etkin ve kolay kullanılır bir arayüz sunmayı amaçlayan ve genellikle ofis
uygulamalarına yönelik olarak kullanılan işletim sistemleridir. Windows 7, Fedora,
MacOS’i örnek olarak verebiliriz.
1.2.5 Gerçek Zamanlı İşletim Sistemleri
Gerçek zamanlı işletim sistemlerinde görevlerin tamamlanması üzerinde bir zaman
kısıtı bulunur. Örneğin endüstriyel kontrol sistemlerinde, görevin belirli bir sürenin
sonunda tamamlanması gerekir, bu sürenin sonunda tamamlanmasının bir değeri
yoktur. Yine endüstriyel kontrol sistemlerinde ya da askeri sistemlerde toplanan
verilerin sisteme verilerek en kısa sürede bir yanıt üretilmesi istenir. Gerçek zaman
Bölüm 1
İşletim Sistemi
7|Sayfa
İşletim Sistemleri
işletim
sistemlerine
örnek
olarak
VxWorks
(http://www.windriver.com/products/vxworks)
ve
QNX
Neutrino
(http://www.qnx.com/products/neutrino-rtos/neutrino-rtos.html)
ve
GİS
(http://bilgem.tubitak.gov.tr/en/icerik/gis-real-time-operating-system) verilebilir.
İki tür gerçek zamanlı sistem bulunur:
i.
Katı-gerçek-zamanlı (=Hard real-time)
Zaman kısıtlarına uyulması zorunludur. Araba üretim bandındaki üretim robotları
buna örnek olarak verilebilir.
ii. Gevşek-gerçek-zamanlı (=Soft real-time)
Bazı zaman kısıtlarına uyulmaması kabul edilebilir. Örnek olarak çoğul ortam
sistemleri verilebilir.
1.2.6 Gömülü İşletim Sistemleri
Kısıtlı işlemci ve bellek kapasitesine sahip cihazlar için geliştirilmiş işletim
sistemleridir. Akıllı televizyon, otomobiller, tıbbi görüntüleme cihazları, tüketici
elektroniğinde yoğun olarak kullanılır. Kullanılan cihaza bağımlı olarak basit ya da
karmaşık işlevlere sahip olabilir.
1.2.7 Akıllı Kart İşletim Sistemleri
En küçük işletim sistemi türüdür. Kredi kartı boyutlarında, üzerinde işlemci olan
kartlar üzerinde çalışır. Çok sıkı işlemci ve bellek kısıtları vardır. Bazıları tek işleve
(örneğin, elektronik ödeme sistemleri) yönelik olarak, bazıları ise birden fazla işlev
içerebilecek şekilde tasarlanmışlardır. Çoğunlukla özel firmalar tarafından geliştirilen
özel sistemlerdir. Java Card ise java tabanlı bir çözüm sunar (Şekil-1.5). Applet olarak
adlandırılan bir tür Java uygulaması yüklenerek çalıştırılırlar. Bazı kartlar birden fazla
Applet çalıştırabilir. Java Card Sanal Makinası çoklu-programlama, iş sıralama, kaynak
yönetimi ve koruması sağlar.
Applet
Applet
Applet
Applet
Üretici
Eklentileri
Java Card Çatısı ve API
Java Card Sanal Makinası
Kart İşletim Sistemi
Şekil-1.5 Java Card platformu
Bölüm 1
İşletim Sistemi
8|Sayfa
İşletim Sistemleri
1.3 İşletim Sistemleri Yapıları
Günümüz modern işletim sistemlerine gelinceye kadar işletim sistemleri farklı
mimarilerde tasarlanmışlardır. Şimdi bu mimarilere bir göz atacağız:
 Monolitik Çekirdek Mimarisi
 Mikro Çekirdek Mimarisi
 Katmanlı Çekirdek Mimarisi
 Sanal Makina Mimarisi
1.3.1 Monolitik İşletim Sistemleri
Genel bir yapıları yoktur. İşlevlerin tamamı işletim sistemi içinde tamamı çekirdek
modunda çalışan birer proses tarafından gerçeklenir (Şekil-1.6). Cihaz sürücüleri
modüler olarak olabilir. Bu nedenle büyük bir çekirdeğe sahiptirler. İşlevleri
gerçekleyen tüm prosedürler aynı seviyededir ve birbirleri ile etkileşimli çalışabilirler.
Uygulamalar kullanıcı modunda çalışır ve çekirdeğin verdiği servislere bir arayüz ya
da sistem çağrıları üzerinden erişirler. Bu mimariye sahip işletim sistemlerine örnek
olarak FreeBSD, Solaris, AIX, HP-UX işletim sistemleri verilebilir. Günümüz modern
monolitik işletim sistemleri modülerdir. Bu servisler birer modül olarak çalışma
zamanında yüklenebilir ya da kaldırılabilir. Böylelikle ihtiyaca göre çekirdeği
oluşturan modüller seçilebilir ve daha küçük bir çekirdek oluşturulabilir.
Linux’da modüllerin bir listesini almak için lsmod komutu kullanılır:
[student@server1 ~]$ lsmod
Module
Size
ip6table_filter
1671
ip6_tables
19281
ebtable_nat
2047
ebtables
27161
ipt_MASQUERADE
2440
iptable_nat
3755
ipt_REJECT
2392
xt_CHECKSUM
1309
iptable_mangle
1775
iptable_filter
1730
. . . . . . . . . . . . . . .
cdrom
40900
mptspi
16069
mptscsih
45921
mptbase
99360
scsi_transport_spi
25481
floppy
65361
pata_acpi
3782
ata_generic
3758
ata_piix
26525
vmwgfx
128627
ttm
80595
Bölüm 1
İşletim Sistemi
Used by
0
1 ip6table_filter
0
1 ebtable_nat
3
1
2
1
1
1
. . . . . . .
1 sr_mod
2
1 mptspi
2 mptspi,mptscsih
1 mptspi
0
0
0
0
0
1 vmwgfx
9|Sayfa
İşletim Sistemleri
drm
i2c_core
dm_mirror
dm_region_hash
dm_log
dm_mod
274036
31228
14208
11094
9681
84786
2 vmwgfx,ttm
2 i2c_piix4,drm
0
1 dm_mirror
2 dm_mirror,dm_region_hash
11 dm_mirror,dm_log
Burada, ilk sütun modülün adını, ikinci sütun modülün bellekte kapladığı alanın
boyutunu ve son sütun ise hangi modüller tarafından kullanıldığını gösterir.
Modüllerin bilgisi /proc/modules dosyasında yer alır. /proc dizini bellekte
oluşturulan ve çekirdeğin doğrudan eriştiği özel bir dizindir. lsmod komutu bu
dosyadaki bilgileri düzenli ve formatlı bir şekilde ekranda listeler. Modinfo komutunu
kullanarak herhangi bir modül hakkında detaylı bilgi edinebiliriz:
[root@server1 etc]# modinfo cdrom
filename:
/lib/modules/3.8.1316.2.1.el6uek.x86_64/kernel/drivers/cdrom/cdrom.ko
license:
GPL
srcversion:
B5F2D59440347DFFB175E71
depends:
intree:
Y
vermagic:
3.8.13-16.2.1.el6uek.x86_64 SMP
mod_unload modversions
parm:
debug:bool
parm:
autoclose:bool
parm:
autoeject:bool
parm:
lockdoor:bool
parm:
check_media_type:bool
parm:
mrw_format_restart:bool
Normalde, çekirdek bir modülü gerektiğinde otomatik olarak yükler. Ancak biz de
komut satırından modüllerin yüklenmesini ve kaldırılmasını sağlayabiliriz:
[root@server1
[root@server1
[root@server1
nfs
fscache
lockd
sunrpc
[root@server1
[root@server1
[root@server1
~]# lsmod | grep nfs
~]# modprobe nfs
~]# lsmod | grep nfs
184416 0
52962 1 nfs
84481 1 nfs
267672 3 nfs,lockd
~]# modprobe -r nfs
~]# lsmod | grep nfs
~]#
Modülü yüklemek için modprobe komutunu kullanıyoruz. Kaldırmak için ise yine
aynı komutu bu sefer –r seçeneği ile çalıştırıyoruz. Her iki durumda da komutu
parametre olarak yüklenecek ya da kaldırılacak modülün adını veriyoruz. Yukarıdaki
örnekte nfs modülü elle eklenmiş ve daha sonra kaldırılmıştır. Yeni bir çekirdek
Bölüm 1
İşletim Sistemi
10 | S a y f a
İşletim Sistemleri
modülü kurmak için ise insmod komutu kullanılır. Bu şekilde eklenmiş bir modülü
kaldırmak için rmmod komutu kullanılır.
Kullanıcı Modu
Uygulamalar
Çekirdek Modu
Sanal Dosya Sistemi,
Kullanıcı Yöneticisi
İş Sıralayıcı,
Prosesler Arası Haberleşme
Sanal Bellek Yöneticisi,
Cihaz Sürücüleri, . . .
Donanım
Şekil-1.6 Monolitik Çekirdek Mimarisi
1.3.2 Mikro Çekirdek İşletim Sistemleri
Temel hizmetleri veren küçük bir çekirdeğe sahiptir (Şekil-1.7). Örneğin Minix
işletim sistemi bu tür bir mimariye sahiptir ve 6,000 satır koddan oluşur. Bu
hizmetleri veren prosesler çekirdek modunda çalışırlar. Diğer işlevleri gerçekleyen
prosedürler kullanıcı modunda çalışırlar.
Uygulamalar
Kullanıcı Modu
Cihaz
Sürücüleri
Çekirdek Modu
Sanal Dosya
Sistemi
Prosesler Arası
Haberleşme
İş Sıralayıcı,
Sanal Bellek Yöneticisi,
Temel Proses Haberleşme Hizmeti
Donanım
Şekil-1.7 Mikro Çekirdek Mimarisi
1.3.3 Katmanlı İşletim Sistemleri
İşletim sistemi çekirdeği katmanlı bir yapıya sahiptir (Şekil-1.8). Her katman bir üst
katmana hizmet verirken bir alt katmandan hizmet alır. Bu tür mimarinin en önemli
kazanımı hata ayıklamanın kolay olmasıdır. Bu mimariye sahip örnek işletim sistemi
olarak VAX/VMS ve Multics işletim sistemleri verebilir.
Bölüm 1
İşletim Sistemi
11 | S a y f a
İşletim Sistemleri
Uygulamalar
Kullanıcı Modu
Çekirdek Modu
Sistem Servisleri
Dosya Sistemi
Bellek ve G/Ç Yöneticisi
İş Sıralayıcı
Donanım
Şekil-1.8 Katmanlı Çekirdek Mimarisi
1.3.4 Sanal Makina İşletim Sistemleri
Her sanal makine donanım üzerinde koşar. İşletim sistemi birden fazla sanal makina
sunabilir. Sanal makinaların her biri donanımın birebir kopyasıdır. Her sanal
makinada farklı işletim sistemi olabilir. Örnek olarak, IBM S/370 ve Java Sanal
Makinası verilebilir.
Java denince genellikle akla ilk olarak Java programlama dili gelmektedir. Bu çok da
yanlış sayılmaz. Ancak Java öncelikli olarak bir platformun adıdır. Bu platform bize
Java programlama dilini kullanarak uygulama geliştirmek, geliştirdiğimiz bu
uygulamayı dağıtmak ve en sonunda bu uygulamayı çalıştırmak için bir ortam sağlar.
Üstelik bu platform tek de değildir. Java Standard Edition (SE), Java Enterprise Edition
(EE), Java Micro Edition (ME), Gömülü Java, Java Card, Java TV gibi biri biriyle ilintili
ama farklı platformlar/API’ler bulunmaktadır. Java platformunun en güçlü bileşeni ise
Java uygulamalarını çalıştıran Java Sanal Makinasıdır (JSM). Java uygulamaları JSM
üzerinde çalışır. JSM satın alabileceğiniz, üretebileceğiniz bir işlemci tanımlar. Bu
işlemcinin bir komut kümesi, yığın temelli adresleme kipleri, saklayıcı kümesi, yığın
göstergesi, program sayacı ve bir bellek modeli vardır. JSM içinde uygulamamızın
yürütme zamanındaki başarımını belirleyen iki önemli parça yer alır: JIT (Just-in-Time)
Derleyici ve Çöp Toplayıcı (Garbage Collector). JIT derleyici bytecode’ları JSM’nin
üzerinde çalıştığı platformun anlayacağı, örneğin Intel x86 kodlarına dönüştürür.
Üstelik bunu yaparken devingen en iyileme de yapar. Bunun için uygulamanın basit
bir kesitini (=profiling) alır. Bu kesit bilgisine göre onlarca en iyileme tekniğinden
hangilerini uygulayacağına karar verir. Java geliştiricisi açık ve yalın kod yazmaktan
sorumludur, bu kodun en yüksek başarımla çalıştırılmasından ise JIT derleyici
sorumludur. JSM doğrudan işletim sistemi üzerinde koşabileceği gibi (Şekil-1.9 (a), (b)
ve (c)), doğrudan donanım üzerinde de koşabilir (Şekil-1.9 (d)).
Bölüm 1
İşletim Sistemi
12 | S a y f a
İşletim Sistemleri
Java EE Application
Java SE Application
Java EE AS
(GF, JBoss, WLS, WSphere, …)
JVM
(HotSpot, JRockit, Zing, J9, …)
JVM
(HotSpot, JRockit, Zing, J9, …)
OS (Windows, Linux, Solaris,…)
OS (Windows, Linux, Solaris,…)
HW (CPU,GPU,Memory,HD,…)
HW (CPU,GPU,Memory,HD,…)
(a)
(b)
JRockit VE – Virtual Edition
WebSphere HE – Hypervisor Edition
Java SE
App.
Java SE
App.
JVM
JVM
Java SE
App
Java SE
App
OS
OS
JVM
JVM
VM #n
VM #1
VM #1
...
...
VM #n
Virtualization (Baremetal)
Virtualization (Baremetal)
HW (CPU,GPU,Memory,HD,…)
HW (CPU,GPU,Memory,HD,…)
(c)
(d)
Şekil-1.9 Java Sanal Makinası
Bölüm 1
İşletim Sistemi
13 | S a y f a
Download