You are on page 1of 41

Subscribe to DeepL Pro to translate larger documents.

Visit www.DeepL.com/pro for more information.

Bölüm 2: İşletim Sistemi


Yapıları

İşletim Sistemi Kavramları - 10. Baskı Silberschatz, Galvin ve Gagne ©2018


Bölüm 2: İşletim Sistemi Yapıları

■ İşletim Sistemi Hizmetleri


■ Kullanıcı ve İşletim Sistemi Arayüzü
■ Sistem Çağrıları
■ Sistem Hizmetleri
■ Bağlayıcılar ve Yükleyiciler
■ Uygulamalar Neden İşletim Sistemine Özgüdür?
■ İşletim Sistemi Tasarımı ve Uygulaması
■ İşletim Sistemi Yapısı
■ Bir İşletim Sistemi Oluşturma ve Önyükleme
■ İşletim Sistemi Hata Ayıklama

İşletim Sistemi Kavramları - 10. Baskı 2.2 Silberschatz, Galvin ve Gagne ©2018
Hedefler
■ Bir işletim sistemi tarafından sağlanan hizmetleri tanımlama
■ İşletim sistemi hizmetleri sağlamak için sistem
çağrılarının nasıl kullanıldığını gösterme
■ İşletim sistemleri tasarlamak için monolitik, katmanlı,
mikro çekirdek, modüler ve hibrit stratejileri
karşılaştırma ve karşılaştırma
■ Bir işletim sistemini önyükleme sürecini gösterme
■ İşletim sistemi performansını izlemek için araçlar uygulamak
■ Linux çekirdeği ile etkileşim için çekirdek modülleri
tasarlama ve uygulama

İşletim Sistemi Kavramları - 10. Baskı 2.3 Silberschatz, Galvin ve Gagne ©2018
İşletim Sistemi Hizmetlerine Bir
Bakış

İşletim Sistemi Kavramları - 10. Baskı 2.4 Silberschatz, Galvin ve Gagne ©2018
İşletim Sistemi Hizmetleri
■ İşletim sistemleri, programlara ve kullanıcılara programların ve
hizmetlerin yürütülmesi için bir ortam sağlar
■ Bir dizi işletim sistemi hizmeti, aşağıdaki işlevleri sağlar
kullanıcıya yardımcı olur:
● Kullanıcı arayüzü - Neredeyse tüm işletim sistemlerinin
bir kullanıcı arayüzü (UI) vardır.
⏵ Komut Satırı (CLI), Grafik Kullanıcı Arayüzü (GUI),
dokunmatik ekran, Toplu İş arasında değişir
● Program yürütme - Sistem belleğe bir program
yükleyebilmeli ve bu programı çalıştırabilmeli, yürütmeyi
normal veya anormal (hata belirten) şekilde
sonlandırabilmelidir
● G/Ç işlemleri - Çalışan bir program G/Ç gerektirebilir, bu da
bir dosya veya G/Ç aygıtı içeriyorsa

İşletim Sistemi Kavramları - 10. Baskı 2.5 Silberschatz, Galvin ve Gagne ©2018
İşletim Sistemi Hizmetleri (Devam)

■ Bir dizi işletim sistemi hizmeti, aşağıdakilere yardımcı olan işlevler sağlar
kullanıcı (Devam):
● Dosya sistemi manipülasyonu - Dosya sistemi özellikle ilgi çekicidir.
Programların dosya ve dizinleri okuması ve yazması, oluşturması ve silmesi,
araması, dosya Bilgilerini listelemesi, izin yönetimi gerekir.
● İletişim - Süreçler aynı anda bilgi alışverişinde bulunabilir
bilgisayar veya bir ağ üzerinden bilgisayarlar arasında
⏵ İletişim, paylaşılan bellek veya mesaj geçişi (işletim sistemi
tarafından taşınan paketler) yoluyla olabilir
● Hata tespiti - İşletim sisteminin olası hatalardan sürekli haberdar olması gerekir
⏵ CPU ve bellek donanımında, G/Ç cihazlarında, kullanıcı
programında meydana gelebilir
⏵ Her hata türü için, işletim sistemi doğru ve tutarlı hesaplama
sağlamak için uygun eylemi gerçekleştirmelidir
⏵ Hata ayıklama olanakları, kullanıcının ve programcının
sistemi verimli bir şekilde kullanma becerilerini büyük
ölçüde geliştirebilir

İşletim Sistemi Kavramları - 10. Baskı 2.6 Silberschatz, Galvin ve Gagne ©2018
İşletim Sistemi Hizmetleri (Devam)
■ İşletim sisteminin verimli çalışmasını sağlamak için başka bir dizi işletim sistemi işlevi
mevcuttur
kaynak paylaşımı yoluyla sistemin kendisi
● Kaynak tahsisi - Birden fazla kullanıcı veya birden fazla iş
eşzamanlı olarak çalıştığında, kaynakların her birine tahsis edilmesi
gerekir
⏵ Birçok kaynak türü -CPU döngüleri, ana bellek, dosya
depolama, I/O cihazları.
● Günlük tutma - Hangi kullanıcıların ne kadar ve ne tür bilgisayar
kaynaklarını kullandığını takip etmek için
● Koruma ve güvenlik - Çok kullanıcılı veya ağa bağlı bir bilgisayar
sisteminde depolanan bilgilerin sahipleri bu bilgilerin kullanımını
kontrol etmek isteyebilir, eşzamanlı süreçler birbirine müdahale
etmemelidir
⏵ Koruma, sistem kaynaklarına tüm erişimin kontrol edilmesini
sağlamayı içerir
⏵ Sistemin dışarıdan gelenlere karşı güvenliği kullanıcı kimlik
doğrulaması gerektirir, harici G/Ç cihazlarını geçersiz erişim
girişimlerine karşı korumaya kadar uzanır

İşletim Sistemi Kavramları - 10. Baskı 2.7 Silberschatz, Galvin ve Gagne ©2018
İşletim Sistemi Hizmetleri (Devam)

İşletim Sistemi Kavramları - 10. Baskı 2.8 Silberschatz, Galvin ve Gagne ©2018
İşletim Sistemi Hizmetlerine Bir
Bakış

İşletim Sistemi Kavramları - 10. Baskı 2.9 Silberschatz, Galvin ve Gagne ©2018
Kullanıcı İşletim Sistemi Arayüzü - CLI

CLI veya komut yorumlayıcısı doğrudan komut girişine izin verir


● Bazen çekirdekte, bazen sistem programı tarafından
uygulanır
● Bazen çoklu tatlar uygulanır - kabuklar
● Öncelikle kullanıcıdan bir komut alır ve onu çalıştırır
● Bazen yerleşik komutlar, bazen sadece program adları
⏵ İkincisi ise, yeni özellikler eklemek kabuk değişikliği
gerektirmez

İşletim Sistemi Kavramları - 10. Baskı 2.10 Silberschatz, Galvin ve Gagne ©2018
Bourne Shell Komut Yorumlayıcısı

İşletim Sistemi Kavramları - 10. Baskı 2.11 Silberschatz, Galvin ve Gagne ©2018
Kullanıcı İşletim Sistemi Arayüzü -
GUI
■ Kullanıcı dostu masaüstü metafor arayüzü
● Genellikle fare, klavye ve monitör
● Simgeler dosyaları, programları, eylemleri vb. temsil eder
● Arayüzdeki nesnelerin üzerindeki çeşitli fare düğmeleri çeşitli
eylemlere neden olur (bilgi sağlama, seçenekler, işlevi
yürütme, dizin açma (klasör olarak bilinir)
● Xerox PARC'ta icat edildi
■ Birçok sistem artık hem CLI hem de GUI arayüzleri içermektedir
● Microsoft Windows, CLI "komut" kabuğu ile GUI'dir
● Apple Mac OS X, altında UNIX çekirdeği ve kabukları
bulunan "Aqua" GUI arayüzüdür
● Unix ve Linux'ta isteğe bağlı GUI arayüzlerine sahip CLI bulunur (CDE,
KDE, GNOME)

İşletim Sistemi Kavramları - 10. Baskı 2.12 Silberschatz, Galvin ve Gagne ©2018
Dokunmatik Ekran Arayüzleri

■ Dokunmatik ekranlı cihazlar yeni


arayüzler gerektiriyor
● Fare mümkün değil veya istenmiyor
● Hareketlere dayalı eylemler ve
seçim
● Metin girişi için sanal klavye
● Sesli komutlar

İşletim Sistemi Kavramları - 10. Baskı 2.13 Silberschatz, Galvin ve Gagne ©2018
Mac OS X GUI

İşletim Sistemi Kavramları - 10. Baskı 2.14 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrıları
■ İşletim sistemi tarafından sağlanan hizmetlere yönelik programlama
arayüzü
■ Genellikle yüksek seviyeli bir dilde (C veya C++) yazılır
■ Çoğunlukla programlar tarafından yüksek seviyeli
Doğrudan sistem çağrısı kullanımı yerine Uygulama
Programlama Arayüzü (API)
■ En yaygın üç API, Windows için Win32 API, POSIX
tabanlı sistemler için POSIX API (UNIX, Linux ve Mac OS
X'in neredeyse tüm sürümleri dahil) ve Java sanal
makinesi (JVM) için Java API'dir

Bu metin boyunca kullanılan sistem çağrısı adlarının genel


olduğunu unutmayın

İşletim Sistemi Kavramları - 10. Baskı 2.15 Silberschatz, Galvin ve Gagne ©2018
API

İşletim Sistemi Kavramları - 10. Baskı 2.16 Silberschatz, Galvin ve Gagne ©2018
Standart API Örneği

İşletim Sistemi Kavramları - 10. Baskı 2.17 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrılarına Örnek

■ Bir dosyanın içeriğini başka bir dosyaya kopyalamak için sistem çağrısı
dizisi

İşletim Sistemi Kavramları - 10. Baskı 2.18 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrısı Uygulaması

■ Tipik olarak, her sistem çağrısıyla ilişkili bir numara


● Sistem çağrısı arayüzü bu numaralara göre indekslenmiş bir
tablo tutar
■ Sistem çağrısı arayüzü, OS çekirdeğinde amaçlanan sistem
çağrısını çağırır ve sistem çağrısının durumunu ve herhangi bir
dönüş değerini döndürür
■ Çağıranın sistem çağrısının nasıl yapıldığı hakkında hiçbir şey bilmesine
gerek yoktur.
uygulandı
● Sadece API'ye uymak ve sonuç çağrısı olarak işletim
sisteminin ne yapacağını anlamak gerekir
● İşletim sistemi arayüzünün çoğu detayı API tarafından programcıdan
gizlenir
⏵ Çalışma zamanı destek kütüphanesi tarafından yönetilir (yerleşik
işlevler kümesi
derleyici ile birlikte verilen kütüphanelere)

İşletim Sistemi Kavramları - 10. Baskı 2.19 Silberschatz, Galvin ve Gagne ©2018
Linux sistem
çağrıları

https://filippo.io/linux-syscall-table/
İşletim Sistemi Kavramları - 10. Baskı 2.20 Silberschatz, Galvin ve Gagne ©2018
Linux sistem
$ man 2 intro çağrıları

Operas 2.21 Silberschatz, Galvin ve Ganggne ©2018


Linux sistem
$ man 2 syscall çağrıları

İşletim Sistemi Kavramları - 10. Baskı 2.22 Silberschatz, Galvin ve Gagne ©2018
Linux sistem
$ man 2 syscall çağrıları

Kaynak : https://stackoverflow.com/questions/30290585/how-do-i-make-syscalls-from-my-c-program
İşletim Sistemi Kavramları - 10. Baskı 2.23 Silberschatz, Galvin ve Gagne ©2018
Windows sistem
çağrıları

https://j00ru.vexillium.org/syscalls/nt/64/

İşletim Sistemi Kavramları - 10. Baskı 2.24 Silberschatz, Galvin ve Gagne ©2018
Windows sistem
çağrıları

https://github.com/j00ru/windows-syscalls

İşletim Sistemi Kavramları - 10. Baskı 2.25 Silberschatz, Galvin ve Gagne ©2018
API - Sistem Çağrısı - İşletim
Sistemi İlişkisi

İşletim Sistemi Kavramları - 10. Baskı 2.26 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrısı Parametre Geçişi

■ Genellikle, istenen sistem çağrısının kimliğinden daha fazla bilgi


gereklidir
● Tam bilgi türü ve miktarı işletim sistemine göre değişir
ve ara
■ İşletim sistemine parametre aktarmak için kullanılan üç genel yöntem
● En basiti: parametreleri kayıtlara geçirin
⏵ Bazı durumlarda, kayıtlardan daha fazla parametre olabilir
● Bellekte bir blokta veya tabloda saklanan
parametreler ve bir kayıtta parametre olarak geçirilen
bloğun adresi
⏵ Linux ve Solaris tarafından benimsenen bu yaklaşım
● Program tarafından yığına yerleştirilen veya itilen parametreler
ve işletim sistemi tarafından yığından çıkarılır
● Blok ve yığın yöntemleri, geçirilen parametrelerin sayısını
veya uzunluğunu sınırlamaz

İşletim Sistemi Kavramları - 10. Baskı 2.27 Silberschatz, Galvin ve Gagne ©2018
Tablo Üzerinden Parametre Geçişi

İşletim Sistemi Kavramları - 10. Baskı 2.28 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrısı Türleri
■ Süreç kontrolü
● süreç oluşturma, süreci sonlandırma
● son, iptal
● yükle, yürüt
● süreç özniteliklerini alma, süreç özniteliklerini ayarlama
● zamanı bekle
● bekleme olayı, sinyal olayı
● bellek ayırma ve serbest bırakma
● Hata durumunda belleği boşalt
● Hataları belirlemek için hata ayıklayıcı, tek adımlı yürütme
● Süreçler arasında paylaşılan verilere erişimi yönetmek için kilitler

İşletim Sistemi Kavramları - 10. Baskı 2.29 Silberschatz, Galvin ve Gagne ©2018
Örnek: Tek görevli sistemde süreç kontrolü (Arduino)

■ Tek görev
■ İşletim sistemi yok
■ USB üzerinden flash belleğe
yüklenen programlar (sketch)
■ Tek bellek alanı
■ Önyükleyici programı yükler
■ Program çıkışı ->
kabuk yeniden
yüklendi

Sistem başlangıcındabir
program çalıştırırken

İşletim Sistemi Kavramları - 10. Baskı 2.30 Silberschatz, Galvin ve Gagne ©2018
Örnek: Tek görevli sistemde süreç kontrolü (Arduino)

Sistem başlangıcında bir program m


çalıştırmak

Kaynak : https://www.electronicwings.com/arduino/basics-to-developing-
karduino için bootloader

İşletim Sistemi Kavramları - 10. Baskı 2.31 Silberschatz, Galvin ve Gagne ©2018
Örnek: Çoklu görev sisteminde süreç kontrolü (FreeBSD)

■ Unix varyantı
■ Çoklu Görev
■ Kullanıcı girişi -> kullanıcının seçtiği
kabuğu çağırma
■ Kabuk oluşturmak için fork() sistem çağrısını çalıştırır
süreç
● Programı sürece yüklemek için
exec() işlevini çalıştırır
● Kabuk işlemin sonlanmasını bekler
veya kullanıcı komutlarıyla devam
eder
■ İşlem şu şekilde çıkar:
● kod = 0 - hata yok
● kod > 0 - hata kodu

İşletim Sistemi Kavramları - 10. Baskı 2.32 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrısı Türleri (devam)

■ Dosya yönetimi
● dosya oluştur, dosya sil
● dosya aç, dosya kapat
● okuma, yazma, yeniden konumlandırma
● dosya özniteliklerini alma ve ayarlama
■ Cihaz yönetimi
● talep cihazı, serbest bırakma cihazı
● okuma, yazma, yeniden konumlandırma
● cihaz özniteliklerini alma, cihaz özniteliklerini ayarlama
● cihazları mantıksal olarak bağlama veya ayırma

İşletim Sistemi Kavramları - 10. Baskı 2.33 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrısı Türleri
(Devam)
■ Bilgi bakımı
● saat veya tarih alma, saat veya tarih ayarlama
● sistem verilerini al, sistem verilerini ayarla
● süreç, dosya veya cihaz özniteliklerini alma ve ayarlama
■ İletişim
● iletişim bağlantısı oluşturma, silme
● ana bilgisayar adına veya işlem adına mesaj geçme
modeli varsa mesaj gönderme, alma
İstemciden sunucuya

● Paylaşılan bellek modeli bellek oluşturma ve belleğe erişim
bölgeler
● transfer durum bilgisi
● uzak cihazları takma ve çıkarma

İşletim Sistemi Kavramları - 10. Baskı 2.34 Silberschatz, Galvin ve Gagne ©2018
Sistem Çağrısı Türleri
(Devam)
■ Koruma
● Kaynaklara erişimi kontrol edin
● İzinleri alma ve ayarlama
● Kullanıcı erişimine izin verme ve reddetme

İşletim Sistemi Kavramları - 10. Baskı 2.35 Silberschatz, Galvin ve Gagne ©2018
Windows ve Unix Sistem Çağrılarına Örnekler

İşletim Sistemi Kavramları - 10. Baskı 2.36 Silberschatz, Galvin ve Gagne ©2018
Standart C Kütüphanesi Örneği
■ write() sistem çağrısını çağıran printf() kütüphane çağrısını çağıran C
programı

İşletim Sistemi Kavramları - 10. Baskı 2.37 Silberschatz, Galvin ve Gagne ©2018
Sistem Hizmetleri
■ Sistem programları program için uygun bir ortam sağlar
geliştirme ve yürütme. Bunlar ikiye ayrılabilir:
● Dosya manipülasyonu
● Durum bilgileri bazen bir dosyada saklanır
● Programlama dili desteği
● Program yükleme ve yürütme
● İletişim
● Arka plan hizmetleri
● Uygulama programları
■ Çoğu kullanıcının işletim sistemine bakışı, gerçek sistem
çağrıları tarafından değil, sistem programları tarafından
tanımlanır

İşletim Sistemi Kavramları - 10. Baskı 2.38 Silberschatz, Galvin ve Gagne ©2018
Sistem Hizmetleri (devam)
■ Program geliştirme için uygun bir ortam sağlamak ve
yürütme
● Bunlardan bazıları basitçe sistem çağrılarına yönelik kullanıcı
arayüzleridir; diğerleri ise çok daha karmaşıktır

■ Dosya yönetimi - Oluşturma, silme, kopyalama, yeniden adlandırma,


yazdırma, döküm, liste,
ve genellikle dosya ve dizinleri manipüle eder

■ Durum bilgisi
● Bazıları sistemden bilgi ister - tarih, saat, mevcut miktar
bellek, disk alanı, kullanıcı sayısı
● Diğerleri ayrıntılı performans, günlük kaydı ve hata ayıklama
bilgileri sağlar
● Tipik olarak, bu programlar çıktıyı biçimlendirir ve terminale
veya diğer çıktı aygıtlarına yazdırır
● Bazı sistemler bir kayıt defteri uygular - depolamak ve
yapılandırma bilgilerini alma

İşletim Sistemi Kavramları - 10. Baskı 2.39 Silberschatz, Galvin ve Gagne ©2018
Sistem Hizmetleri
(Devam)
■ Dosya değişikliği
Dosya oluşturmak ve değiştirmek 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, montajcılar,
hata ayıklayıcılar ve yorumlayıcılar bazen sağlanır
■ Program yükleme ve yürütme - Mutlak yükleyiciler, yeniden
yerleştirilebilir yükleyiciler, bağlantı düzenleyicileri ve yer
paylaşımlı yükleyiciler, üst düzey ve makine dili için hata
ayıklama sistemleri
■ İletişim - Sanal iletişim oluşturmak için mekanizma sağlayın
süreçler, kullanıcılar ve bilgisayar sistemleri arasındaki bağlantılar
● Kullanıcıların birbirlerinin ekranlarına mesaj
göndermelerine, web sayfalarında gezinmelerine,
elektronik posta mesajları göndermelerine, uzaktan
oturum açmalarına, dosyaları bir makineden diğerine
aktarmalarına olanak tanır

İşletim Sistemi Kavramları - 10. Baskı 2.40 Silberschatz, Galvin ve Gagne ©2018
Sistem Hizmetleri
(Devam)
■ Arka Plan Hizmetleri
● Önyükleme zamanında başlat
⏵ Bazıları sistem başlangıcı için, sonra sonlandırın
⏵ Bazıları sistem açılışından kapanışa kadar
● Disk denetimi, işlem zamanlama, hata gibi olanaklar sağlayın
günlüğe kaydetme, yazdırma
● Çekirdek bağlamında değil kullanıcı bağlamında çalıştırın
● Hizmetler, alt sistemler, daemonlar olarak bilinir

■ Uygulama programları
● Sistemle ilgili değil
● Kullanıcılar tarafından çalıştırılır
● Genellikle işletim sisteminin bir parçası olarak kabul edilmez
● Komut satırı, fare tıklaması, parmak dürtmesi ile başlatılır

İşletim Sistemi Kavramları - 10. Baskı 2.41 Silberschatz, Galvin ve Gagne ©2018

You might also like