Bilgisayar Organizasyonu Ve Mimarisi Doktora Yeterlik Soruları 400 MHz'lik bir işlemcide 2 milyon talimatın yürütülmesiyle sonuçlanan bir programın yürütülmesini düşünün. Program dört ana talimat türünden oluşmaktadır. Bir program izleme deneyinin sonucuna dayalı olarak, her komut türü için komut karışımı ve CPI aşağıdaki tabloda verilmiştir. Buna göre Komut Tipi CPI Aritmetik ve Mantık Önbellek darbesi(vuruşu ile) yükle/sakla Dal Önbellek eksikliği olan bellek referansı(Memory reference with cache miss) 1 2 Instruction Mix (Komut Karışımı (%) 60 18 4 8 12 10 a)CPI b) MIPS oranları nelerdir? MIPS rate = Ic /(T * 106) = f /(CPI * 106 ) SORU 2. )Bilgisayar Bileşenleri ve birbirlerine bağlantılarını a) Bilgisayar Bileşenleri (Companents) b) Bilgisayar İşlev Komutu Kesmeleri Getirme ve Yürütme (Computer Function Instruction Fetch and Execute Interrupts I/O Function ) c) Arabağlantı (Interconnection Structures) yapılarını d) Bus Interconnection e) Noktadan Noktaya (Point-to-Point Interconnect) QPI Physical Layer QPI Link Layer QPI Routing yapılarını QPI Protocol Layer g) PCI Express PCI Physical and Logical Architecture PCIe Physical Layer PCIe Transaction Layer PCIe Data Link Layer ile açıklayınız. Bilişim Sistemleri Analizi ve Tasarımı Soru 1. Sistem Analizi ve Tasarımı nedir? Hangi aşamalardan oluşur? Detaylı olarak açıklayınız. Soru 2. Bilgisayara dayalı bilgi sistem tipleri nelerdir? Örnekle açıklayınız. İLETİŞİM AĞLARI SORU 1 TCP/IP başvuru modelindeki tüm katmanlarda yapılan işleri aşağıdan yukarıya doğru sırasıyla detaylı açıklayınız. SORU 2 Paket anahtarlamalı ağlarda uçtan uca gecikmeyi detaylı açıklayarak anlatınız. 1 1. Soyutlama (abstraction) ve Arayüz(Interface) kavramları tanımlayınız. Soyut Sınıf (Abstract Class) ve Arayüz Arasındaki Farkları bir örnek ile açıklayınız. Farklı tip elemanlar olduğu için karşılaştırılması yersiz gibi düşünülse de iki kavram da birer soyutlama tekniği olduğundan ve birbirlerinin yerine kullanılması mümkün olduğundan dolayı böyle bir karşılaştırma yapılmalıdır. Soyutlama (Abstraction): Seçilen temel özelliklerin karmaşıklıklarının ve fonksiyonelliklerin arka planlarının göz ardı edilerek sunulmasıdır. Seçilen seviyedeki ele alış biçimi aynı ama o seviyenin altında arka planında kalan özellik veya işlevselliklerin farklı olduğu hiyerarşide kök olur. Yazılımın tasarımındaki ve entegrasyonundaki karmaşıklığın azalmasını sağlar. Arayüz (Interface): Arayüz de soyutlamanın bir parçasıdır. Soyutlaştırılmış işlevselliğin veya sadeleştirilmiş bilginin sunum şeklidir. Hiyerarşinin köküne soyutlama dediysek, o kökün dışa bakan ucuna veya uçlarından birine de arayüz diyebiliriz. Abstract Class vs Interface Abstract class; statik metotlar içerebilir. Interface; override edilebilir statik metot içeremez. Abstract class’da metotların gövdeleri (yani implementasyonları) olabilir. Interface’de metotların ancak imzaları bulunabilir. Abstract class; kurucu (constructor) ve yıkıcı (destructor) içerebilir. Interface; kurucu (constructor) veya yıkıcı (destructor) içeremez. Ancak imzalarını içerebilir. Abstract class’ın her access modifier’a (private, protected, public gibi) sahip metodu bulunabilir. Interface’in metot imzaları ancak ‘public’ access modifier’ına sahip olabilir. Abstract class -genel olarak- ancak bir sınıftan inheritance alabilir. Veya bir sınıf -genel olarakancak bir abstract sınıftan inheritance alabilir. Interface birden fazla interface’den inheritance alabilir. Abstract class, sınıfın neyden türediğini ifade edebilir (… is a …). Interface, sınıfın hangi yeteneklere sahip olduğunu ifade edebilir (… can do …). Ortak sınıf davranışı kazandırma için abstract class kullanılmalıdır. Ortak yetenek metodu kazandırma için interface kullanılmalıdır. Abstract class, nesnenin ne yapması gerektiğini belirlemek ile beraber nasıl yapması gerektiğini de belirleyebilir. Interface, nesnenin ne yapması gerektiğini belirler ama nasıl yapması gerektiğini belirlemez. 2. Kalıtım (Inheritance) nedir, her alt sınıf üst sınıfın yarısı kadar anlık değişken içerecek şekilde 3 katmanlı kalıtım ilişkisini bildiğiniz bir nesne tabanlı dilde kodlayınız En basit tanımıyla atadan oğula bırakılan mirastır. Nesne Tabanlı Programlama açısından bir sınıfın başka bir sınıftan özellikleri miras almasıdır. Java dilinde bir oğulun yalnızca bir ata sınıfı olabilir. Kalıtım ile mümkün olan miras alma sınırı birdir. Kalıtım, sınıfların birbirinden miras alarak ortak metot ve özellikleri kullanmasını sağlamak için kullanılır. Aşağıdaki şemadan görüldüğü üzere Araç sınıfının özelliklerinden 3 farklı sınıf faydalanabilmiştir. Bu sayede kod yükü azalmış ve tekrar tekrar aynı şeyleri yazmaya gerek kalmamıştır. SORU 1. public class A { public string Alan1; protected string Alan2; private string Alan3; string Alan4; } public class B : A { public void Test() { } } Yukarıdaki aynı namespace içerisindeki C# kod bloğunda, B sınıfı içerisindeki Test metodundan, A sınıfındaki hangi alanlara erişilebilir, açıklayınız. CEVAP : Alan1, Alan2 Açıklama : public ve protected erişim belirleyicileri (access modifiers) bir sınıfın alt sınıflarından (subclass) erişilmesine izin verirken private alana erişilemez. Bir C# sınıfında bir erişim belirleyicisi belirlememişse o sınıftaki en sınırlı özellik verilir ve bu durumda erişilemez. Kaynak : Craig, I. D. (2007). Object-Oriented Programming Languages: Interpretation. Springer London. s. 8, 204 SORU 2. Abstract Class ve Interface arasındaki fark/farkları açıklayınız. CEVAP: Bir sınıf birden fazla interface’i kalıtım yoluyla alabilir ama bir sınıfa bir tane abstract class kalıtım yoluyla alınabilir. Interface içerisinde boş metodlar tanımlanabilir ama abstract class’larda hem boş metodlar tanımlanabilir hem de içi dolu metodlar tanımlanabilir. Interface içerisindeki tüm nesnelerin “public” olması gerekirken Abstract classlarda tüm öğelerin “public” olması zorunlu değildir. Interface yapıcı metodlar(constructor) içermez. Abstract class yapıcı metodlar içerebilir. Kaynak: Deitel, P. J., & Deitel, H. (2017). Java How to Program, Early Objects, Student Value Edition. Pearson. s. 466, 484, 485 SORU 1. public class A { public string Alan1; protected string Alan2; private string Alan3; string Alan4; } public class B : A { public void Test() { } } Yukarıdaki aynı namespace içerisindeki C# kod bloğunda, B sınıfı içerisindeki Test metodundan, A sınıfındaki hangi alanlara erişilebilir, açıklayınız. SORU 2. Abstract Class ve Interface arasındaki fark/farkları açıklayınız. Gazi Üniversitesi Doktora Yeterlilik Veri Yapıları Sınav Soruları 1) a ) İkili bir arama ağacına veri ekleme için kullanılabilecek bir fonksiyon tasarlayıp sözdekod veya C kodu olarak yazınız. Fonksiyondaki koşulları kısaca açıklayınız. b) Bu fonksiyonun algoritmik karmaşıklığı(algorithmic complexity) nedir, neden? 2) a) Bir diziyi “insertion sort” (araya kaydrımalı) sıralama algoritması ile sıralayan fonksiyonu tasarlayıp sözdekod veya C kodu olarak yazınız. Fonksiyondaki koşulları kısaca açıklayınız. b) Bu fonksiyonun algoritmik karmaşıklığı(algorithmic complexity) nedir, neden?