İŞLETİM SİSTEMLERİ DÖNEMİÇİ SINAVI 31 Mart 2011 1) (20 puan) Aşağıdaki soruları kısaca cevaplayınız. a) Bir proses çalışmış ve kısa bir süre sonra sonlanmıştır, bu arada sistemde çalışan başka prosesler olduğuna göre, bu prosesin geri dönüş değerine (sonlanırken gönderdiği tamsayı değer) bakılmaksızın sonlanması ile ilgili hangi senaryolar düşünülebilir? b) Aynı prosesin geri dönüş değerine bakılarak nasıl bir analiz yapılabilir? c) Olası hata durumunda bu hatanın ne olduğu nasıl anlaşılabilir? d) İki çocuklu bir proses forklandığı zaman oluşacak yeni prosesin çocuk sayısı ne olmalıdır? Neden? e) Sonlanan bir prosesin çocuklarından biri sonlandırılmak istenmiyorsa o çocuk ne yapılmalıdır? Neden?
2) (26 puan) Aşağıda verilen okuyucu-yazıcı problemine dengeli bir çözüm oluşturmak için gerekli düzenlemeleri yapınız. Dengeli çözüm kuralları: - Okuyucunun işini bitirmsini bekleyen yazıcı varsa yeni okuyucuya izin verme - Yazıcının işinin bitmesini bekleyen okuyucu varsa önceliği ona ver - Çözümde yazıcı sonsuz ertelenme durumunda kalmamalıdır. int okur = 0; semafor oku_dışla = 1, veri_dışla = 1; proses okuyucu ( ) { while ( true ) { p(oku_dışla); okur = okur + 1; if ( okur = 1 ) p(veri_dışla); v(oku_dışla); --- veri oku --- P(oku_dışla); okur = okur 1; if ( okur = 0 ) v(veri_dışla); v(oku_dışla); proses yazıcı ( ) { while ( true ) { ---- çalış ---- P(veri_dışla); --- yazma erişimi --- V(veri_dışla);
3) (30 puan) Semaforlar için bekleme P ve işaret işlemi V aşağıdaki kodlarla tanımlanmıştır. P(s) if (s > 0) s = s 1; else s_uzerinde_bekle(); V(s) if (s_uzerinde_bekleyen) siradakini_aktive_et(); else s = s + 1; Aşağıdaki sözde kodlara P ve V işlemlerini uygun yerlere yerleştirerek dışlamayı ve senkronizasyonu sağlayınız. Semaforlar : Proses 1: Kod 1 Kod 2 <Senkronizasyon 1> Kod 3 <Kritik Bölge 1 Giriş> Kod 4 Kod 5 <Kritik Bölge 1 Çıkış> <Kritik Bölge 2 Giriş> Kod 6 <Kritik Bölge 2 Çıkış> Kod 7 <Senkronizasyon 2 > Proses 2: Kod 1 <Senkronizasyon 1> Kod 2 <Kritik Bölge 1 Giriş> Kod 3 <Kritik Bölge 1 Çıkış> <Kritik Bölge 2 Giriş> Kod 4 Kod 5 <Kritik Bölge 2 Çıkış> <Senkronizasyon 2 > Kod 6 Çıkış Çıkış
4) (2 puan) Ölümcül kilitlenme ile ilgili ifadelerden hangisi yanlıştır? A) Sonsuz bekleme durumu da ölümcül kilitlenmedir B) Bir veya daha fazla prosesin birbirini bekleme durumudur C) Bir prosesin bir olayın oluşunu beklemesi ölümcül kilitlenme değildir D) Ölümcül kilitlenme olması için paylaşım olması gereklidir E) Hiçbiri 5) (2 puan) İşletim sisteminin fiziksel donanımla olan etkileşimi aşağıdakilerden hangisi tarafından sağlanır? a) Kabuk b) Çekirdek c) Sistem çağrıları d) Trap 6) (2 puan) Yazılan bir program işletim sistemi ile nasıl etkileşimde bulunur? a) Kabuk vasıtasıyla b) Çekirdeğe direkt ulaşır c) Sistem çağrılarıyla d) Ulaşamaz 7) (2 puan) Anne ve çocuk proses hiyerarşisi aşağıdakilerden hangisi ile bulunamaz? a) Anne proses ile çocuk prosesin numarasından b) Proses tablosundan c) Proseslerin başlama ilişkisinden d) Çocuk prosesin adres uzayından 8) (2 puan) Aşağıdakilerden hangisi ölümcül kilitlenmeye neden olmaz? a) Ortak kaynak paylaşımı b) Kritik bölgeye giriş c) Karşılıklı dışlama d) Değişken paylaşımı 9) (2 puan) Bir işletim sisteminin temel görevleri aşağıdakilerden hangisi değildir? a) Zahiri makine arayüzü sağlama b) Kaynak yönetimi c) Kullanıcı paylaşımını düzenlemek d) Kullanıcı programlarını yürütmek e) Fiziksel donanım mikrokodunu içermek 10) (2 puan) İşletim sisteminde kullanıcı programları ile işletim sistemi arasındaki arayüze ne denir? a) Çekirdek b) Kabuk c) Sistem çağrısı d) Pencere arayüzü e) X-istemcisi 11) (2 puan) Kullanıcı ile işletim sistemi arasındaki arayüze ne denir? a) Çekirdek b) Kabuk c) Sistem çağrısı d) Pencere arayüzü e) X-istemcisi
12) (2 puan) Aşağıdakilerden hangisi sistem çağrılarının bir kategorisi değildir? a. Proses yönetim çağrıları b. İşaretleşme çağrıları c. Dosya yönetimi çağrıları d. Zaman yönetimi çağrıları e. BIOS çağrıları 13) (2 puan) Semafor nedir? a. Donanım ve yazılım tarafından desteklenen özel bir değişkendir b. Yalnız donanım tarafından desteklenen özel bir değişkendir c. Yalnız yazılım tarafından desteklenen özel bir değişkendir d. Yazılımcının tipini tanımlayamadığı özel bir değişkendir e. Tamsayı değeri alamayan özel bir değişkendir 14) (2 puan) Bir proseste ölümcül kilitlenme nasıl giderilebilir? a. Prosesi zamana bağlı bekletmekle b. Senkronizasyon ile c. Karşılıklı dışlama ile d. Prosesin birini askıya almakla e. Prosesi anahtarlama zamanını gözönüne alarak yazmakla 15) (2 puan) Aşağıdakilerden hangisi prosesler arası haberleşme problemlerinden değildir? a) Uyuyan berber problemi b) Makarna yiyen düşünürler problemi c) Üretici-tüketici problemi d) Banker problemi Süre : 90 dakika