You are on page 1of 48

Bölüm 2: Sistem Yapıları

Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
Bölüm 2: Sistem Yapıları

 İşletim Sistemi Servisleri


 İşletim Sistemi Kullanıcı Arayüzü
 Sistem Çağrıları
 Sistem Çağrı Çeşitleri
 Sistem Programları
 İşletim Sistemi Tasarım ve Gerçekleştirimi
 İşletim Sistemi Yapısı
 Sanal Makinalar (Virtual Machines)
 İşletim Sistemi Hata Düzeltme (Debugging)
 İşletim Sistemi Yaratma
 Sistem Başlatma (System Boot)

Operating System Concepts – 8th Edition 2.2 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Servisleri

 İşletim sistemi servislerinin bir bölümü kullanıcılara yardımcı olacak


fonksiyonlar ortaya koyarlar:
 Kullanıcı Arayüzü (User interface) – Neredeyse tüm işletim sistemleri bir
kullanıcı arayüzüne sahiptir (User Interface (UI))
 Bunlar:
– Komut Satırı (Command-Line (CLI)),
– Grafiksel Kullanıcı Arayüzü (Graphics User Interface (GUI)) ve
– Komut Listesi (Batch) şeklindedir
 Program çalıştırma – Sistem bir programı belleğe yükleme, onu
koşturma, çalışmasını sonlandırma (normal ya da anormal (hata
vererek) becerisine sahip olmalıdır
 G/Ç operasyonları – Çalışan bir program bir dosya veya G/Ç aygıtı
kullanacak şekilde G/Ç'a ihtiyaç duyabilir
 Dosya sistemi işleme – Programlar dosya ve klasörler üzerinde okuyup
yazma, yaratma ve silme, arama, dosya bilgisini listeleme, izin yönetimi
gibi işlemler yapma ihtiyacı duymaktadır
Operating System Concepts – 8th Edition 2.3 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Servislerine Bakış

Kullanıcı ve diğer sistem programları

Komut Listesi Komut Satırı

Kullanıcı Arayüzleri

Sistem Çağrıları

Program G/Ç Dosya Kaynak Hesap


Çalıştırma İletişim
Operasyonları Sistemleri Tahsisi Oluşturma

Hata Koruma ve
Tespiti Güvenlik
Servisler
İşletim Sistemi
Donanım

Operating System Concepts – 8th Edition 2.4 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Servisleri

 İşletim sistemi servislerinin bir bölümü kullanıcılara yardımcı olacak


fonksiyonlar ortaya koyarlar (devam):
 İletişim – Aynı bilgisayardaki veya bir ağdaki bilgisayar arasındaki
süreçler arasında bilgi değiş tokuşu mevcuttur
 Bu iletişim paylaşılmış bellek veya mesaj aktarımı (paketler İşletim
sistemi tarafından taşınır) yoluyla gerçekleşebilir
 Hata Tespiti – İşletim Sistemi sürekli olarak ortaya çıkabilecek olası
hatalardan haberdar olmalıdır. Bu hatalar;
 CPU, bellek donanımı, G/Ç aygıtları veya kullanıcı programlarında
oluşabilir.
 Her hata çeşidi için işletim sistemi doğru ve tutarlı işlemenin devam
etmesini sağlayacak uygun tepkileri gösterebilmelidir
 Hata ayıklama imkanları kullanıcı ve programcıların sistemi verimli
kullanabilme yeteneklerini büyük ölçüde arttırabilir

Operating System Concepts – 8th Edition 2.5 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Servisleri
 Diğer bir İşletim Sistemi fonksiyonlar kümesi ise sistemin kendi çalışması sırasında
kaynak paylaşımı yaparak verimli çalışmayı sağlamaktadır
 Kaynak Tahsisi (Resource allocation) – Birden çok kullanıcı veya işin
koşutzamanlı olarak çalışması gereken zamanlarda kaynaklar herbirine
paylaştırılmalıdır
 Birçok kaynak çeşidi vardır - Bazılarının (CPU çevrimleri, ana bellek ve
cycles, dosya depolama) özel tahsis kodları vardır, diğerleri ( G/Ç aygıtları
gibi) genl istek ve serbest bırakma kodlarına sahiptir
 Hesap Oluşturma (Accounting) – Hangi kullanıcıların ne kadar ve ne tip kaynak
kullanıldığının izlenebilmesi için
 Koruma ve Güvenlik (Protection and security) – Çokkullanıcılı veya ağa bağlı
bilgisayar sistemlerinde bilgi sahipleri bilginin kullanımını kontrol etmek isterler.
Ayrıca koşutzamanlı süreçler birbirlerini engellememelidir.
 Koruma bütün sistem kaynaklarına erişimin kontrol edilmesinin garanti altına
alınmasını gerektirir
 Sistemin dışarıdakilere karşı Güvenli olması ise dış G/Ç aygıtlarına karşı
geçersiz erişim teşebbüslerinin engellenmesini sağlayan kullanıcı kimlik
doğrulama sisteminin mevcut olması anlamına gelir
 Bir sistemin korunmuş ve güvenli olabilmesi için gerekli önlem zincirlerinin
alınması gerekmektedir. "Bir zincir ancak en zayıf halkası kadar kuvvetlidir."

Operating System Concepts – 8th Edition 2.6 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Kullanıcı Arayüzü - CLI

Komut Satırı Arayüzü (Command Line Interface (CLI)) veya komut


yorumlayıcısı (command interpreter) direk komut girişine izin verir
 Arayüz bazen çekirdekte (kernel) bazen de sistem
programında bulunmaktadır
 Bazen de çoklu biçimlerde yeralır – kabuklar (shells)
 Komut önce kullanıcıdan alınır ve çalıştırılır
– Bu komutlar bazen sabit komutlar, bazen de
programların adlarından oluşur
» Eğer program adları da komut olarak
kullanılabiliyorsa yeni özellikler eklemek için kabukta
değişiklik yapmaya gerek yoktur

Operating System Concepts – 8th Edition 2.7 Silberschatz, Galvin and Gagne ©2009
Bourne Kabuğu Komut Yorumlayıcısı
(Bourne Shell Command Interpreter)

Operating System Concepts – 8th Edition 2.8 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Kullanıcı Arayüzü - GUI
 Kullanıcı dostu masaüstü metafor arayüzü
 Genellikle fare, klavye ve monitör
 İkonlar dosyaları, programları, eylemleri vb. temsil eder
 Farklı fare düğmeleri nesneler üzerinde farklı eylemler gerçekleştirir
(bilgi alma, seçenekler, fonksiyon çalıştırma, klasörü açma, vb.)
 Xerox PARC tarafından bulunmuştur
 Birçok sistem hem Komut Satırı (CLI) hem de Grafiksel Kullanıcı (GUI)
arayüzüne sahiptir
 Microsoft Windows CLI komut kabuğuna (“command” shell) sahip bir
GUI'dir
 Apple Mac OS X (Aqua) ise UNIX çekirdeği (kernel) ve kabuklarına
(shell) sahip bir GUI arayüzüne sahiptir
 Solaris ise opsiyonel GUI arayüzlerine (Java Desktop, KDE) sahip bir
Komut Satırı Arayüzüdür (CLI)

Operating System Concepts – 8th Edition 2.9 Silberschatz, Galvin and Gagne ©2009
Sistem Çağrıları
 Servislerin programlama arayüzleri işletim sistemi tarfaından sağlanır
 Genellikle üst seviye bir dille (C veya C++) yazılmışlardır
 Çoğunlukla direk sistem çağrısının kullanılması yerine üst seviye Kullanıcı
Program Arayüzleri (Application Program Interface (API)) kullanan
programlar tarafından erişilirler
 En yaygın kullanaılan API'ler Windows için Win32 API, POSIX tabanlı
sistemler (UNIX, Linux ve Mac OS X türleri) için POSIX API ve Java Sanal
Makinası (Java Virtual Machine (JVM)) için Java API'sidir

Operating System Concepts – 8th Edition 2.11 Silberschatz, Galvin and Gagne ©2009
Sistem Çağrı Örneği
 Bir dosyanın içeriğini diğer bir dosyaya kopyalamak için gerekli Sistem
Çağrı Sıralaması

Kaynak dosya Hedef dosya

Sistem Çağrı Sıralaması Örneği


Giriş dosya adını al
Ekrana ileti yaz
Girdiyi kabul et
Çıkış dosya adını al
Ekrana ileti yaz
Girdiyi kabul et
Giriş dosyasını aç
Eğer dosya yoksa, terk et
Çıkış dosyası yarat
Eğer dosya varsa, terk et
Döngü
Giriş dosyasından oku
Çıkış dosyasına yaz
Okuma bitinceye kadar
Çıkış dosyasını kapat
Ekrana tamamlandı mesajı yaz
Normal olarak sona erdir

Operating System Concepts – 8th Edition 2.12 Silberschatz, Galvin and Gagne ©2009
Standard API Örneği
 Win32 API'sindeki ReadFile() (dosyadan okuma için bir fonksiyon) fonksiyonunu ele
alalım

dönen değer

parametreler

Fonksiyon adı
 ReadFile() fonksiyonuna geçirelen parametrelerin açıklaması
 HANDLE file — okunacak dosya
 LPVOID buffer — verinin okunacağı ve yazılacağı tampon bellek
 DWORD bytesToRead — tampon belleğe okunacak byte'ların sayısı
 LPDWORD bytesRead — son okuma sırasında okunan byte'ların sayısı
 LPOVERLAPPED ovl — çakışan G/Ç kullanılıp kullanılmadığını gösterir

Operating System Concepts – 8th Edition 2.13 Silberschatz, Galvin and Gagne ©2009
Sistem Çağrı Uygulaması
 Tipik olarak, her sistem çağrısı ile ilgili bir numara vardır
 Sistem Çağrı arayüzü, bu numaralara göre endeksli bir tablo tutar.
 Sistem çağrı arayüzü, işletim sistemi çekirdeğinde amaçlanan sistem
çağrısını çağırır ve sistem çağrısı durumu ile dönüş değerlerini döndürür
 Çağırıcının (caller) sistem çağrısının nasıl uygulanacağı hakkında bir şey
bilmesi gerekli değildir
 Sadece API'ye itaat etmeli ve İşletim sisteminin sonuç çağrısı olarak ne
yapacağını anlamalıdır
 İşletim sistemi arayüzünün birçok detayı API tarafından kullanıcıdan
gizlenir
 Run-time destek kitaplığı (fonksiyonların bir kümesi derleyici ile
gelen kütüphanelerin içerisinde yerleşiktir) tarafından
yönetilmektedir.

Operating System Concepts – 8th Edition 2.14 Silberschatz, Galvin and Gagne ©2009
API – Sistem Çağrısı – OS İlişkisi

kullanıcı uygulaması

Kullanıcı
modu
Sistem Çağrı Arayüzü
Çekirdek
modu

open() sistem
çağrısının
işlenmesi

open() sistem çağrısını kullanan bir kullanıcı uygulaması kullanımı


Operating System Concepts – 8th Edition 2.15 Silberschatz, Galvin and Gagne ©2009
Tablo Yoluyla Parametre Geçişi

kayıtçı

X: çağrılacak
parametreler
X tablosundaki Sistem
parametreleri
Adresi yükle X
kullan çağrısı 13
Sistem çağrısı 13 için kod

Kullanıcı programı

İşletim sistemi

Operating System Concepts – 8th Edition 2.16 Silberschatz, Galvin and Gagne ©2009
Sistem Çağrısı Parametre Geçişi
 Çoğu zaman sadece istenen sistem çağrısının kimliğinden daha fazla
bilgiye ihtiyaç vardır
 Bilginin miktarı ve tipi, OS ve çağrıya göre değişmektedir
 OS'e parametre geçişi için üç genel metot kullanılır
 En Basiti: parametreleri kayıtçılara (register) geçirmektir
 Bazı durumlarda kayıtçıların sayısından çok parametre olabilir. Bu
durumlarda parametreler bellekte bir blok (ya da tablo) şeklinde saklanır
ve bloğun adresi bir kayıtçıya geçilir
 Bu yaklaşım Linux ve Solaris tarafından kullanılmaktadır
 Parametreler program tarafından bir yığına (stack) yerleştirilir (push) ve
işletim sistemi tarafından çekilir (pop)
 Blok ve yığın metotları geçilecek parametrelerin uzunluğunu sınırlamaz

Operating System Concepts – 8th Edition 2.17 Silberschatz, Galvin and Gagne ©2009
Sistem Çağrısı Tipleri
 Süreç Kontrolü
 end, abort
 load, execute
 Süreç yaratma, süreç sonlandırma
 Süreç özelliklerinin okunması ve ayarlanması
 Bekleme
 Olay bekleme, olay işaretleme
 Bellek tahsisi ve boşaltılması
 Dosya Yönetimi
 Dosya yaratma, silme
 Aç, kapa
 Okuma, yazma, yeniden yerleştirme
 Dosya özelliklerinin okunması ve ayarlanması

Operating System Concepts – 8th Edition 2.18 Silberschatz, Galvin and Gagne ©2009
Sistem Çağrısı Tipleri
 Aygıt Yönetimi
 Aygıtı isteme ve serbest bırakma
 Okuma, yazma ve yeniden yerleştirme
 Aygıt özelliklerinin okunması ve ayarlanması
 Aygıtların mantıksal olarak eklenmesi ve çıkarılması
 Bilgi Bakımı
 Zaman veya tarihin okunması ve ayarlanması
 Sistem verisinin okunması ve ayarlanması
 Süreç, dosya veya aygıt özelliklerinin okunması
 Süreç, dosya veya aygıt özelliklerinin ayarlanması
 İletişim
 İletişim bağlantısının yaratılması ve silinmesi
 Mesaj gönderme, alma
 Durum bilgisinin iletilmesi
 Uzak aygıtların eklenmesi ve çıkarılması
 Koruma
Operating System Concepts – 8th Edition 2.19 Silberschatz, Galvin and Gagne ©2009
Windows ve Unix Sistem Çağrı Örnekleri

Süreç
kontrol

Dosya
yönetim

Aygıt
yönetim

Bilgi
bakımı

İletişim

Koruma

Operating System Concepts – 8th Edition 2.20 Silberschatz, Galvin and Gagne ©2009
Standard C Kütüphanesi Örneği
 write() sistem çağrısını çağıran printf() komutunu kullanan C programı

Operating System Concepts – 8th Edition 2.21 Silberschatz, Galvin and Gagne ©2009
MS-DOS Çalışması

boş bellek

boş bellek

süreç

komut
yorumlayıcı komut
yorumlayıcı
çekirdek çekirdek

(a) Sistem başlangıcında (b) Program çalışırken

Operating System Concepts – 8th Edition 2.22 Silberschatz, Galvin and Gagne ©2009
Çoklu Program Çalıştıran FreeBSD

Süreç D

boş bellek

Süreç C

yorumlayıcı

Süreç B

çekirdek

Operating System Concepts – 8th Edition 2.23 Silberschatz, Galvin and Gagne ©2009
Sistem Programları

 Sistem programları program geliştirme ve çalıştırmak için elverişli


bir ortam sağlar. Bunlar birkaç bölüme ayrılabilir:
 Dosya işleme (File manipulation)
 Durum bilgisi
 Dosya üzerinde değişiklikler (File modification)
 Programlama dili desteği
 Program yükleme ve çalıştırma
 İletişim

 Çoğu kullanıcının görüşüne göre işletim sistemleri sadece güncel


sistem çağrılarından değil sistem programları ve uygulama
programlarının (web tarayıcıları, kelime işlemciler, metin
düzenleyiiler, çalışma tabloları, veritabanı sistemleri, derleyiciler,
oyunlar gibi) birlikte kullanılmalarından oluşur.

Operating System Concepts – 8th Edition 2.24 Silberschatz, Galvin and Gagne ©2009
Sistem Programları
 Program geliştirme ve çalıştırma için uygun bir ortam sağlar
 Bunlardan bazıları sistem çağrıları için basit kullanıcı arayüzleri iken bazıları da
daha karmaşıktır
 Dosya yönetimi (File management) – Yaratma (create), silme (delete), kopyalama
(copy), yeniden adlandırma (rename), yazdırma (print), döküm alma (dump),
listeleme (list), ve genel olarak dosyalar ve klasörler üzerinde işlem yapmak
 Durum bilgisi (Status information)
 Bazıları sistem bilgisi verir – tarih, zaman, mevcut bellek miktarı, disk alanı,
kullanıcı sayısı, vb.
 Bazıları ise detaylı performans, günlük (log) ve hata ayıklama (debugging) bilgisi
verir
 Genelde bu programlar çıktıyı düzenler ve terminal ya da diğer çıkış
aygıtlarından yazdırırlar
 Bazı sistemler konfigürasyon bilgisini kaydetmek ve gerektiğinde ulaşmak için bir
kütük (registry) tutarlar

Operating System Concepts – 8th Edition 2.25 Silberschatz, Galvin and Gagne ©2009
Sistem Programları
 Dosya üzerinde değişiklikler (File modification)

Dosya yaratmak ve düzenlemek için metin editörleri
 Dosyaların içeriğini aramak veya metin üzerinde dönüşümler
gerçekleştirmek için özel komutlar
 Programlama dili desteği – Derleyiciler (compilers), çevirici programlar
(assemblers), hata ayıklayıcılar (debuggers) ve yorumlayıcılar (interpreters)
 Program yükleme ve çalıştırma – Kesin Yükleyiciler (absolute loaders),
yeniden yerleştirilebilir yükleyiciler (relocatable loader), bağlantı editörleri
(linkage editor) ve kaplama yükleyiciler (overlay loader), üst seviye hata
ayıklama sistemleri ve makine dili (machine language) gibi programlar
vardır
 İletişim – Süreçleri kullanıcılar ve biligsayar sistemleri arasında sanal
bağlantılar yaratmak için mekanizmalar sağlar
 Kullanıcıların diğerlerinin ekranların mesajlar göndermesine, web
sayfalarını gezmelerine, elektronik posta mesajları göndermelerine, bir
makineden diğerine dosya transfer etmelerine olanak sağlarlar

Operating System Concepts – 8th Edition 2.26 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Tasarım ve Gerçekleştirimi

 İşletim sistemi tasarım ve gerçekleştirim problemi tam olarak çözülebilir


değildir, ancak bazı denenmiş başarılı yaklaşımlar mevcuttur
 Farklı OS'lerin iç yapısı büyük farklılıklar gösterebilmektedir
 Öncelikle hedefler ve şartlar tanımlanarak başlanmalıdır
 Bunlar donanım seçimi ve sistem tipinden etkilenmektedir
 Kullanıcı hedefleri ve sistem hedefleri
 Kullanıcı hedefleri – işletim sistemi kullanışlı, kolay öğrenilebilir,
güvenilir, güvenli ve hızlı olmalıdır
 Sistem hedefleri – işletim sistemi kolay tasarlanabilir, gerçekleştirilebilir,
ve bakım yapılabilir olmakla birlikte esnek, güvenilir, hatasız ve verimli
olmalıdır

Operating System Concepts – 8th Edition 2.27 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Tasarım ve Gerçekleştirimi
 Şu iki önemli prensip birbirinden ayrılmalıdır
Politika (Policy): Ne yapılacak?
Mekanizma (Mechanism): Nasıl yapılacak?
 Mekanizmalar birşeyin nasıl yapılacağına, politikalar ise ne yapılacağına
karar verir
 Politikanın mekanizmadan ayrılması çok önemli bir prensiptir. Politika
kararlarının daha sonra değiştirilmesi durumunda maksimum esneklik
sağlar

Operating System Concepts – 8th Edition 2.28 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
1. Basit Yapı
 MS-DOS – en az alanda en çok fonksiyonellik sağlamak için yazılmıştır
 Modüllere bölünmemiştir
 MS-DOS'un bir yapısı olmasına rağmen, arayüzleri ve fonksiyonellik
seviyeleri iyi bir şekilde ayrılmamışlardır

Operating System Concepts – 8th Edition 2.29 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
MS-DOS Katman Yapısı

Uygulama programı

Kalıcı sistem programı

MS-DOS aygıt
sürücüleri

ROM BIOS aygıt sürücüleri

Operating System Concepts – 8th Edition 2.30 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
2. Katmanlı Yaklaşım
 OS birçok katmana (seviye) bölünmüştür ve herbiri alt katmanların (layer)
üzerinde yeralır. En alt katman (katman 0) donanımdır, en üst katman
(katman N) ise kullanıcı arayüzüdür.
 Modülerlik sayesinde katmanlar sadece alt seviye katmanların sağladığı
fonksiyon (operasyon) ve servisleri kullanacak şekilde seçilmektedir.

Operating System Concepts – 8th Edition 2.31 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
Geleneksel UNIX Sistem Yapısı
(kullanıcılar)
Kabuklar (shell) ve Komutlar
Derleyici (compiler) ve Yorumlayıcılar (interpreters)
Sistem kütüphaneleri
Çekirdeğe doğru sistem çağrısı arayüzü
Sinyal terminali Dosya sistemi CPU İş Planlaması
Çekirdek

İşleme Değiş-tokuş blok Sayfa değişimi


Karakter G/Ç G/Ç sistemi İstek sayfalama
sistemi Disk ve teyp (paging)
Terminal sürücüleri sürücüleri Sanal bellek
Donanıma doğru çekirdek arayüzü
Terminal Bellek
Aygıt kontrolörleri kontrolörleri
kontrolörleri
Disk ve teypler Fiziksel bellek
Terminaller

Operating System Concepts – 8th Edition 2.32 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
UNIX
 UNIX – donanım fonksiyonelliğe ile sınırlıdır. Orijinal UNIX işletim
sistemi sınırlı bir yapıya sahiptir. UNIX OS iki ayrı parçadan
oluşmaktadır
 Sistem programları
 Çekirdek (kernel)
 Sistem çağrısı arayüzünün altı ile fiziksel donanımın üstünde
kalan herşey
 Dosya sistemini, CPU iş planlamasını, bellek yönetimini ve
diğer işletim sistemi fonksiyonlarını (tek bir seviye için oldukça
fazla fonksiyon) barındırır

Operating System Concepts – 8th Edition 2.33 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
Katmanlı Bir İşletim Sistemi
Katman N
Kullanıcı arayüzü

Katman 1

Katman 0
Donanım

Operating System Concepts – 8th Edition 2.34 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
3. Mikroçekirdek (Microkernel) Sistem Yapısı
 Birçok şey çekirdekten kullanıcı alanına taşınmıştır
 İletişim, kullanıcı modülleri arasında mesaj geçme (message passing)
kullanılarak gerçekleştirilir
 Faydaları:
 Bir mikro çekirdeği (microkernel) genişletmek daha kolaydır
 İşletim sistemini yeni mimarilere taşımak daha kolaydır
 Daha güvenilir (çekirdek modunda daha az kod çalışmaktadır)
 Daha güvenli
 Zararları:
 Kullanıcı alanı ile çekirdek alanı arasındaki iletişimde performans
sorunu (overhead)
 Örnek: Mach, Mac OS X çekirdeği, Windows NT'nin ilk sürümü katmanlı
mikroçekirdek yapıya sahiptir.

Operating System Concepts – 8th Edition 2.35 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
Mac OS X Yapısı

Uygulama ortamları
ve ortak servisler

Çekirdek
ortamı

Operating System Concepts – 8th Edition 2.36 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
4. Modüller
 Çoğu modern işletim sisteminde çekirdek modülleri kullanılmaktadır
 Nesne tabanlı yaklaşımı kullanmaktadır
 Her çekirdek bileşeni bağımsızdır
 Birbirleri ile bilinen arayüzler aracılığı ile konuşmaktadırlar
 Her biri ihtiyaç duyulduğunda çekirdeğe yüklenebilmektedir
 Özetle, katmanlara benzerdir ancak daha esnektir

Operating System Concepts – 8th Edition 2.37 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yapısı
Solaris Modüler Yaklaşımı
İş planlama
sınıfları
Aygıt ve diğer Dosya
Veriyolu sistemleri
sürücüleri

Merkez
SOLARIS
Çeşitli Çekirdeği Yüklenebilir
modüller Sistem çağrıları

STREAMS Çalıştırılabilir
modülleri formatlar

Operating System Concepts – 8th Edition 2.38 Silberschatz, Galvin and Gagne ©2009
Sanal Makineler

 Sanal makineler (virtual machine) katmanlı yaklaşımı


benimsemektedir. Donanım ve işletim sistemi çekirdeğine
tümü donanımmış gibi davranmaktadır
 Bir sanal makine alttaki çıplak donanımın aynısı olan bir
arayüz sağlamaktadır
 İşletim sistemi sunucusu (host) sanki süreç (process) kendi
işlemcisi ve sana belleğine sahipmiş gibi bir görüntü
yaratmaktadır
 Her bir kullanıcıya (guest) altta duran bilgisayarın bir (sanal)
kopyası sağlanmaktadır

Operating System Concepts – 8th Edition 2.39 Silberschatz, Galvin and Gagne ©2009
Sanal Makinelerin Tarihçesi ve Faydaları
 Ticari olarak ilk 1972 yılında IBM ana bilgisayarlarında (mainframe)
görülmüştür
 Temelde çoklu çalıştırma ortamları (farklı işletim sistemleri) aynı donanımı
paylaşabilir
 Tabi ki birbirinden korunarak
 Bazı dosya paylaşımlarına izin verilmiştir, ancak kontrollü olarak
 Birbirlerini ve diğer fiziksel sistemleri ağ aracılığı ile yönlendirmektedirler
 Geliştirme ve test için kullanışlıdır
 Birçok az kaynak kullanan sistem daha meşgul sistemlere yardım
etmektedir
 "Açık Sanal Makine Formatı" (Open Virtual Machine Format) standardı bir
sanal makinenin (VM) birçok farklı sanal makine sunucu (host) platformunda
çalışmasına olanak vermektedir

Operating System Concepts – 8th Edition 2.40 Silberschatz, Galvin and Gagne ©2009
Sanal Makineler

süreçler

süreçler

süreçler süreçler

Programlama
arayüzü
çekirdek çekirdek çekirdek

çekirdek
Sanal makine uygulaması
Non-virtual Machine
donanım Virtual Machine
donanım

(a) Sanal makine olmadan (b) Sanal makine ile

Operating System Concepts – 8th Edition 2.41 Silberschatz, Galvin and Gagne ©2009
Para-virtualization
 Kullanıcıya benzer ama aynı olmayan donanım sunmaktadır
 Para-virtaulize edilmiş donanımda çalışmak için kullanıcı modifiye
edilmelidir
 Avantajı kaynakları daha verimli kullanılması ve daha küçük bir
sanallaştırma katmanına sahip olmasıdır.
 Kullanıcı bir işletim sistemi ya da Solaris'de olduğu gibi bir konteyner içinde
çalışan 10 uygulama olabilir

Operating System Concepts – 8th Edition 2.42 Silberschatz, Galvin and Gagne ©2009
Para-virtualization
İki Konteynerli Solaris 10
Kullanıcı Kullanıcı Kullanıcı
programları programları programları
Sistem Sistem programları Sistem programları
programları Ağ adresleri Ağ adresleri
CPU kaynakları Aygıt erişimi Aygıt erişimi
Bellek kaynakları CPU kaynakları CPU kaynakları
Bellek kaynakları Bellek kaynakları
Alan 1 Alan 2
Sanal platform
Global alan Aygıt yönetimi

Alan yönetimi
Solaris çekirdeği

Ağ adresleri

aygıt aygıt

Operating System Concepts – 8th Edition 2.43 Silberschatz, Galvin and Gagne ©2009
Örnekler
VMware Mimarisi
uygulama uygulama uygulama uygulama

Konuk işletim Konuk işletim Konuk işletim


Sistemi Sistemi Sistemi
(free BSD) (Windows XP) (Windows 7)
Sanal CPU Sanal CPU Sanal CPU
San bellek San bellek San bellek
Sanal aygıtlar Sanal aygıtlar Sanal aygıtlar

sanallaştırma katmanı

Sunucu (host) işletim sistemi


(Linux)

donanım
CPU bellek G/Ç aygıtları
Operating System Concepts – 8th Edition 2.44 Silberschatz, Galvin and Gagne ©2009
Örnekler
Java Sanal Makinesi (Java Virtual Machine)

Operating System Concepts – 8th Edition 2.45 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Hata Ayıklama
 Hata ayıklama (Debugging) hataları (error veya bug) bulma ve düzeltme
işlemidir
 İşletim sistemleri hata bilgilerinin bulunduğu kütük dosyaları (log file)
oluştururlar
 Bir uygulamadaki hata o sürecin bellek durumunu kapsayan bir çekirdek
dökümü (core dump) dosyası oluşturur
 İşletim sistemindeki bir hata ise çekirdeğin bellek durumunu içeren bir
kilitlenme bilgi dökümü (crash dump) dosyası oluşturur
 Performans ayarlaması yapılarak sistem performansı optimize edilebilir
 Solaris, FreeBSD ve Mac OS X'deki DTrace aracı üretim sistemleri üzerinde
canlı araçlara olanak sağlar. Örneğin;
 Sondalar (Probes) kod çalıştığı zaman çalışır ve verinin durumunu
yakalayarak bu sondaların müşterilerine gönderir

Operating System Concepts – 8th Edition 2.46 Silberschatz, Galvin and Gagne ©2009
İşletim Sistemi Yaratılması
 İşletim Sistemleri tüm makine sınıflarında çalışacak şekilde tasarlanırlar;
sistem her spesifik bilgisayar tipi için konfigüre edilmelidir
 SYSGEN programı donanım sisteminin özel konfigürasyonu hakkında bilgi
toplar
 Sistem Başlatma (Booting) – çekirdeği yükleyerek bilgisayarı başlatma
 Önyükleyici (Bootstrap) programı – çekirdeğin yerini belirleme, bunu belleğe
yükleme ve çalıştırmaya başlatma işlemlerinin yapılmasını sağlayan ve
ROM üzerinde saklanan program kodudur.

Operating System Concepts – 8th Edition 2.47 Silberschatz, Galvin and Gagne ©2009
Sistem Başlatılması (System Boot)
 İşletim Sistemi donanım tarafından ulaşılabilir olmalıdır, böylece donanım
onu başlatabilir
 Küçük bir kod parçası – önyükleyici (bootstrap loader) çekirdeğin yerini
belirler, belleğe yükler ve çalıştırır
 Bazen iki adımlı süreç kullanılır. Bunda sabit bir yere sahip başlatma
bloğu (boot block) önyükleyiciyi yükleyiciyi(bootstrap loader) yükler
 Sisteme güç verildiği zaman, çalıştırma belirli ve sabit bir bellek
alanından başlatılır
 Başlangıç kodunu tutmak için donanım yazılımı (Firmware) kullanılır

Operating System Concepts – 8th Edition 2.48 Silberschatz, Galvin and Gagne ©2009
Bölüm 2 Son

Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009

You might also like