Professional Documents
Culture Documents
İş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
İş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
İş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
İş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ı
İş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ı
İş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
İş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)
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
■ 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