2023-2024 Vize Sınavı
Cevap:
İşletim sisteminin temel fonksiyonları, sistem kaynaklarını yönetmek, kullanıcı ile donanım arasında arayüz sağlamak ve uygulama yazılımlarının çalışmasını desteklemektir. Aşağıda temel fonksiyonlar detaylı bir şekilde birer cümle ile listelenmiştir:
Örnek: Bir işletim sistemi, bir metin editörünün (süreç) çalışmasını başlatır, belleği tahsis eder, kullanıcının yazdığı verileri diske kaydeder ve yalnızca yetkili kullanıcıların bu dosyaya erişmesine izin verir.
Analitik Perspektif: İşletim sistemi, donanım ve yazılım arasında bir köprü görevi görerek kaynak kullanımını optimize eder, sistem performansını artırır ve kullanıcı deneyimini basitleştirir; ancak her fonksiyonun etkinliği, sistem tasarımı ve donanım kapasitesine bağlıdır.
Cevap:
İşlemci ile ana bellek arasındaki veri erişimini hızlandırmak için çeşitli teknikler kullanılır; bu teknikler, bellek erişim süresini azaltarak sistem performansını artırır ve CPU’nun verimli çalışmasını sağlar:
Örnek: Bir oyun, grafik verilerini L1 önbelleğinde tutar, TLB sanal adresleri çevirir ve önceden getirme, sonraki kareleri önbelleğe yükler, böylece oyun akıcı çalışır.
Analitik Perspektif: Önbellek ve TLB, lokalite ilkelerine dayanarak erişim hızını artırır; ancak önbellek isabetsizliği, yanlış önceden getirme veya sınırlı bant genişliği performansı düşürebilir. Modern sistemler, bu teknikleri birleştirerek en iyi performansı hedefler.
Cevap:
Kabuk (shell), kullanıcı ile işletim sistemi arasında bir arayüz sağlayarak komutların girilmesini, yorumlanmasını ve yürütülmesini sağlar, böylece kullanıcıların sistemle etkileşimini kolaylaştırır.
ls
, cd
) algılar, işletim sistemine uygun sistem çağrılarına çevirir ve yürütür.ls | grep txt
).command &
).PATH
).bash
kabuğu, grep "error" log.txt
komutuyla log dosyalarında hata arar veya bir betikle sistem güncellemelerini otomatikleştirir.Örnek: Kullanıcı, bash
kabuğunda find / -name "*.txt" | xargs rm
komutunu çalıştırarak tüm metin dosyalarını siler; kabuk, komutları sırayla işler ve yönlendirme yapar.
Analitik Perspektif: Kabuk, kullanıcı dostu bir arayüz sunarak sistemin karmaşıklığını soyutlar ve otomasyonu kolaylaştırır; ancak yanlış veya kötü niyetli komutlar sistem hatalarına veya güvenlik açıklarına yol açabilir.
Cevap:
Sistem çağrısı, kullanıcı seviyesindeki bir programın işletim sisteminden donanım veya sistem kaynaklarına erişim gibi hizmetler talep etmesini sağlayan bir mekanizmadır.
open()
, fork()
) yapar.write()
: Bir dosyaya veri yazmak.fork()
: Yeni bir süreç oluşturmak.getpid()
: Süreç kimliğini almak.write()
sistem çağrısıyla kullanıcının yazdığı verileri diske kaydeder.Örnek: Bir C programı, open("file.txt", O_RDONLY)
çağrısı yaparak bir dosyayı okumak için işletim sisteminden izin alır; işletim sistemi, dosya erişim yetkilerini kontrol eder ve dosyayı açar.
Analitik Perspektif: Sistem çağrıları, güvenlik ve soyutlama sağlar, ancak sık çağrılar bağlam değiştirme maliyeti nedeniyle performansı etkileyebilir; bu nedenle, modern sistemler sistem çağrılarını optimize etmeye çalışır.
Cevap:
İşletim sistemlerinde soyutlama, karmaşık donanım ve sistem kaynaklarını kullanıcılar ve uygulamalar için daha basit, anlaşılır ve yönetilebilir bir arayüz olarak sunma işlemidir, böylece düşük seviyeli detaylar gizlenir.
fopen()
ile bir dosyayı açar; işletim sistemi, diskin fiziksel sektörlerini yönetir ve program bu detayları bilmez.Örnek: Bir kullanıcı, bir USB sürücüsüne dosya kaydeder; işletim sistemi, dosya sistemini ve USB protokolünü soyutlayarak kullanıcıya yalnızca bir “kaydet” arayüzü sunar.
Analitik Perspektif: Soyutlama, kullanım kolaylığı, taşınabilirlik ve güvenlik sağlar, ancak ek soyutlama katmanları performans ek yükü getirebilir; bu nedenle, soyutlama seviyesi sistem tasarımıyla dengelenmelidir.
Cevap:
Eşzamanlılık (concurrency), birden fazla sürecin veya iş parçacığının aynı anda yürütülüyormuş gibi görünmesini sağlayan işletim sistemi özelliğidir, böylece sistem kaynaklarının verimli kullanımı sağlanır.
Örnek: Bir kullanıcı, bir metin editöründe yazı yazarken aynı anda bir tarayıcıda video izler; işletim sistemi, CPU’yu süreçler arasında paylaştırır ve senkronizasyonla çakışmaları önler.
Analitik Perspektif: Eşzamanlılık, sistem kaynaklarının verimli kullanımını sağlar ve kullanıcı deneyimini iyileştirir; ancak yanlış senkronizasyon kilitlenme veya yarış koşullarına yol açabilir, bu nedenle dikkatli tasarım gereklidir.
Cevap:
Linux’ta /proc
dizini, çalışan sistemin ve süreçlerin dinamik durum bilgilerini sağlayan sanal bir dosya sistemidir, sistem izleme ve hata ayıklamayı kolaylaştırır.
/proc/[pid]
) bulunur ve şunları içerir:
stat
: Süreç durumu, CPU kullanımı, öncelik.cmdline
: Sürecin komut satırı argümanları.mem
: Bellek kullanımı ve adres alanı bilgileri.fd
: Açık dosya tanımlayıcıları./proc/cpuinfo
: İşlemci modeli, hızı, çekirdek sayısı./proc/meminfo
: Toplam ve kullanılan bellek, takas alanı./proc/uptime
: Sistem çalışma süresi ve boşta kalma süresi./proc/devices
: Kullanılan aygıt sürücüleri./proc/interrupts
: Kesme (interrupt) istatistikleri.cat /proc/cpuinfo
komutu, CPU modelini, hızını ve çekirdek sayısını gösterir; cat /proc/[pid]/status
, bir sürecin bellek ve CPU kullanımını listeler.Örnek: Bir sistem yöneticisi, top
komutunun /proc/meminfo
ve /proc/stat
dosyalarını okuyarak sistemin bellek ve CPU kullanımını izler.
Analitik Perspektif: /proc
, sistem şeffaflığı ve hata ayıklama için güçlü bir araçtır, ancak yanlış okuma/yazma işlemleri sistem kararsızlığına neden olabilir; bu nedenle dikkatli kullanım gereklidir.
Cevap:
Von Neumann mimarisinin en önemli özelliği, program talimatlarının ve verilerin aynı bellek alanında saklanmasıdır (stored-program concept), bu da bilgisayarların esnek ve yeniden programlanabilir olmasını sağlar.
Örnek: Bir hesap makinesi programı, toplama talimatlarını ve sayısal verileri RAM’de saklar; CPU, bu talimatları okuyarak toplama işlemini gerçekleştirir.
Analitik Perspektif: Von Neumann mimarisi, modern bilgisayarların temelini oluşturur ve esneklik sağlar; ancak performans sınırlamaları nedeniyle Harvard mimarisi (ayrık kod ve veri belleği) gibi alternatifler, özellikle gömülü sistemlerde tercih edilir.
Cevap:
Mikro çekirdek ve monolitik mimari, işletim sistemi tasarımında iki farklı yaklaşımdır; her biri farklı avantajlar ve dezavantajlar sunar. Aşağıda detaylı bir karşılaştırma yapılmıştır:
Özellik | Mikro Çekirdek | Monolitik Mimari |
---|---|---|
Tanım | Çekirdek, yalnızca temel işlevleri (süreç yönetimi, iş parçacığı yönetimi, süreçler arası iletişim) içerir; dosya sistemi, sürücüler ve ağ gibi hizmetler kullanıcı modunda ayrı süreçler olarak çalışır. | Çekirdek, tüm işletim sistemi hizmetlerini (süreç yönetimi, bellek yönetimi, dosya sistemi, sürücüler, ağ) tek bir büyük modülde içerir ve çekirdek modunda çalışır. |
Örnek | Minix, QNX, Mach (macOS’un bazı bileşenleri). | Linux, Windows (eski sürümler), Unix. |
Avantajlar |
|
|
Dezavantajlar |
|
|
Kullanım | Gömülü sistemler, gerçek zamanlı sistemler ve yüksek güvenilirlik gereken ortamlar (örneğin, otomotiv, havacılık). | Genel amaçlı sistemler, masaüstü ve sunucu ortamları, yüksek performans gereken yerler. |
Örnek: QNX (mikro çekirdek), bir arabanın kontrol sisteminde modülerlik ve güvenilirlik için kullanılırken; Linux (monolitik), bir web sunucusunda yüksek performans için tercih edilir.
Analitik Perspektif: Mikro çekirdek, modülerlik ve güvenilirlik için uygundur, ancak performans maliyeti yüksektir; monolitik mimari, yüksek performans sunar, ancak bakım ve güvenilirlik açısından zorluklar yaratabilir. Seçim, sistem ihtiyaçlarına ve uygulama alanına bağlıdır.
Cevap:
Kesme tabanlı (preemptive) ve kesme tabanlı olmayan (non-preemptive) çizelgeleme algoritmaları, süreçlerin CPU’ya erişimini düzenleme yöntemlerinde farklılık gösterir; bu farklar, sistem performansı ve yanıt sürelerini etkiler:
Özellik | Kesme Tabanlı (Preemptive) | Kesme Tabanlı Olmayan (Non-Preemptive) |
---|---|---|
Tanım | İşletim sistemi, çalışan süreci zaman dilimi dolduğunda veya daha yüksek öncelikli bir süreç hazır olduğunda keser ve CPU’yu başka bir sürece atar. | Süreç, CPU’yu gönüllü olarak bırakana (örneğin, I/O isteği veya tamamlanma) veya tamamlanana kadar çalışır; işletim sistemi zorla kesmez. |
Örnek Algoritmalar | Round Robin, Öncelik Tabanlı Çizelgeleme, Çok Seviyeli Kuyruk. | İlk Gelen İlk Hizmet (FCFS), En Kısa İş Önce (SJF), En Kısa Kalan Süre Önce (SRTF). |
Avantajlar |
|
|
Dezavantajlar |
|
|
Örnek | Round Robin’de bir süreç 10 ms çalışır, zamanlayıcı kesmesiyle durdurulur ve başka bir süreç çalışır. | FCFS’de bir süreç, tamamlanana veya I/O isteği yapana kadar CPU’yu tutar. |
Örnek: Bir sistemde Round Robin (preemptive) ile bir metin editörü 10 ms çalışır, ardından tarayıcıya geçilir; FCFS (non-preemptive) ile tarayıcı tamamlanana kadar editör bekler.
Analitik Perspektif: Kesme tabanlı algoritmalar, dinamik ve adaletli sistemler için uygundur, özellikle kullanıcı etkileşimli veya gerçek zamanlı sistemlerde; kesme tabanlı olmayanlar ise basitlik ve düşük ek yük gerektiren toplu iş sistemlerinde tercih edilir. Seçim, sistem ihtiyaçlarına ve süreç özelliklerine bağlıdır.
Cevap:
Doğru cevap: b) Bağlam değiştirme (context switch) masrafı artar ve sistem verimliliği azalır.
Açıklama:
Örnek: Bir sistemde 5 süreç, 1 ms quantum ile çalışıyorsa, CPU her milisaniyede bağlam değiştirir; bu, bir sürecin 100 ms’lik işini tamamlaması için 500 ms’lik toplam sürede ek yük yaratır.
Analitik Perspektif: Zaman dilimi seçimi, adalet ve performans arasında bir dengedir; çok küçük quantum, bağlam değiştirme ek yükünü artırır, çok büyük quantum ise kesme tabanlı olmayan çizelgelemeye yaklaşarak adaleti azaltır. Optimal quantum, sistem yüküne ve süreç sayısına bağlıdır.
Cevap:
Doğru cevap: c) Döngüsel Kilit (Spinlock)
Açıklama:
while(lock)
), bu da meşgul beklemeye örnektir.Örnek: Çok çekirdekli bir sistemde, bir iş parçacığı spinlock ile bir veritabanı kilidini kontrol eder; kilit serbest olana kadar döngüde bekler, bu da CPU’yu kısa süreli meşgul tutar.
Analitik Perspektif: Spinlock, kısa süreli kilitler için uygundur ve bağlam değiştirme maliyetini azaltır; ancak uzun beklemelerde CPU israfına yol açar, bu nedenle semafor veya monitör gibi mekanizmalar uzun süreli senkronizasyon için daha verimlidir.
Cevap:
Doğru cevap: c) Her iki süreç de okuma yapıyorsa
Açıklama:
Örnek: Bir veri analizi uygulaması, iki sürecin paylaşılan bir bellek bölgesindeki sabit bir veri setini okumasını sağlar; süreçler veri değiştirmediği için senkronizasyona gerek yoktur.
Analitik Perspektif: Salt okuma senaryoları, senkronizasyon ek yükünü ortadan kaldırır ve performansı artırır; ancak yazma içeren durumlarda kilitler, semaforlar veya monitörler gibi senkronizasyon mekanizmaları veri tutarlılığı için zorunludur.
Cevap:
Doğru cevap: a) Düşük öncelikli bir iş parçacığının, yüksek öncelikli bir iş parçacığını engellemesi; paylaşılan bir kaynak kilitlendiğinde
Açıklama:
Örnek: Bir otonom araçta, düşük öncelikli bir veri güncelleme görevi bir sensör kilidini tutar; yüksek öncelikli bir çarpışma önleme görevi bu kilidi beklerken, orta öncelikli bir navigasyon görevi CPU’yu alarak gecikmeye neden olur.
Analitik Perspektif: Öncelik tersine dönmesi, özellikle gerçek zamanlı sistemlerde ciddi gecikmelere yol açar; öncelik mirası veya tavanı gibi protokoller bu sorunu azaltır, ancak ek karmaşıklık getirir.
Cevap:
Doğru cevap: b) Engellenmiş (blocked)
Açıklama:
read()
gibi bir sistem çağrısı yapar.read()
sistem çağrısı yapar; disk işlemi bitene kadar engellenir, CPU başka bir sürece tahsis edilir.Örnek: Bir veritabanı uygulaması, diskten büyük bir tabloyu okumak için read()
çağrısı yapar; süreç engellenir, CPU ise bir web tarayıcı sürecine tahsis edilir.
Analitik Perspektif: Engellenmiş durum, CPU’nun verimli kullanımını sağlar, çünkü I/O bekleyen süreçler CPU’yu serbest bırakır; bu, çoklu görev sistemlerinde kaynak paylaşımını optimize eder.
Cevap:
Doğru cevap: c) Bir sürecin durumu ve özellikleri hakkındaki bilgileri korumak
Açıklama:
Örnek: Bir metin editörü süreci kesildiğinde, PCB’sine mevcut belge konumu ve yazmaçlar kaydedilir; CPU, bir tarayıcı sürecine geçer ve editörün durumu PCB’den geri yüklenir.
Analitik Perspektif: PCB, süreç yönetiminin temel taşıdır; eksik veya hatalı PCB, bağlam anahtarlamasını bozar ve sistem kararlılığını tehdit eder; bu nedenle PCB’nin doğru ve hızlı yönetimi kritik öneme sahiptir.