yazılım mühendisliğine giriş · 2019-11-02 · o zamana kadar geliştirilen makineler onlu...
TRANSCRIPT
Yazılım Mühendisliğine Giriş
2019 GÜZ
1
İlk Bilgisayar Ne zaman Keşfedildi?
1936 yılında Alman Zuse tarafından keşfedildi.
Adı Z1 bilgisayarı idi.
Komutlar delinmiş ikili bilgiye sahip «punched typed» üzerinden okunarak mekanik gerçekleştiriliyordu.
Kısaca mekanik bir bilgisayardı
Dünyanın ilk programlanabilir bilgisayarı idi
Boolean mantığı ve ikili kayan nokta sayıları (floating-point numbers) kullanılıyordu
Sınırlı işlem yapabilmesi nedeni ile güvenilir değildi.
2
Z1 Makinesinin Modern Bilgisayarlara Etkisi Örneğin kayan noktalı sayı olarak (floating-point number)
+12.654 sayısını işlemek mümkün idi .
Burada tamsayı ve kesirli kısım olarak sayıları iki parçadan ifade etmek önemli bir gelişme idi .
Çünkü modern bilgisayarlarda kullanılan içsel sayı formatı (internal number format) ilk defa kullanılmakta idi .
Kayan noktalı sayıların bilgisayarda simgelenişi anlamlı dijitlerin kayıp vermeden simgelenişini gerektirir.
Her sayının simgelenişi 3 kısımdan oluşmakta idi .
Sayının işareti (sign of the number)
İkili tamamlama gösterimindeki sayının üssü (the exponent of the number in twos complement notation
sayının mantisi (onlu parçası)( mantissa of the number) 3
Elektromekanik- (Binary Switch) Z3 bilgisayarı -1941
Hollerith‘in makinesi çizelge yapma (cetvel düzenleme) ile sınırlı idi. Delgi kartları daha karmaşık hesaplamaları
gerçekleştiremiyordu.Konrad Zuse (Alman) karmaşık mühendislik problemlerini
çözebilmek için ilk programlanabilir bilgisayarları tasarladı.Z3 makinesi aynı zamanda ikili sistemde çalışmaktaydı ve
Alman Zuse , Babbage’in çalışmasından haberdar değildi. O zamana kadar geliştirilen makineler onlusayı sisteminde çalışmakta idi.
4
İkili Simgeleme Sistemi (Binary Representation)
İkili sayı sistemi 0 ve 1’lerden oluşur.
Delgi kartında da delik var /yok şeklinde ikili bir sistem bulunmaktadır.
Kart okuyucu tarafından bir delik okunuyor ise 1 olarak simgelenir.
Kartın sütunlarından birinde hiç bir delik yoksa, geçerli sayı 0 olacaktır.
5
Z1 ve Z3 Makinesinin Mimarisi
1.Sayıları depolayabiliyordu (toplamda 64 sayısı) (memory for storing numbers )
2.Hesaplama için işlemcisi vardı (processor for computing)
3.Program komutları tekrar kullanılmak, yani depolamak üzere (for storing) bir «punched tape» üzerine yazılıyordu
4. Aygıtın giriş –çıkış konsolu vardı ( input-output console)
6
Z1 ve Z3 Makinesinin Mimarisi
7
Kayan Noktalı Sayıların Günümüz Bilgisayarlarında Simgelenişi Niçin Önemlidir?
8
Kayan noktalı sayıların simgelenişi tek değildir. 55.66 sayısı 5.566×10^1 olarak
0.5566×10^2 olarak 0.05566×10^3, olarak …………….simgelenebilir.
Kesirli kısmın ( fractional part) normalize edilmesi gerekir.Normalize edildiğinde noktadan önce tek bir sıfırdan farklı dijit bulunur.123.4567 ondalıklı sayı (decimal number) 1.234567×10^2şeklinde normalize edilir.
9
Bilgisayarların Veriyi Simgeleyebilme Kapasitesi
Bilgisayarlar herhangi bir veriyi simgeleyebilmek üzere sabit miktarda bit kullanabilirler.
Bu veri bir sayı , bir karakter ya da başka herhangi bir bir şey olabilir.
N-bit depolama (n-bit storage location) yapabilen bir bilgisayar en fazla 2^n farklı şeyi (entity) simgeleyebilir.
Örneğin: 3-bit bellek yerleşimi 8 ikili örnekten birini tutabilir.
000 , 001 , 010 , 011 , 100 , 101 , 110 , 111 10
İkili Simgeleme Sistemi
İkili sayı sisteminde bir bit sadece 0 veya 1 ‘in olmasıdır.
6 bitten oluşan ikili bir sayı mümkün ise, 64 farklı sayı yazabilmek olasıdır.
İkili betimleme bilgisayarların gelişmesine önemli katkı sağlamıştır.
Kart okuyucular, elektrik devrelerinin on/off durumları gibi iki durumlu aygıtlar olarak düşünülebilir.
Vakum tüpler 11
BİRİNCİ KUŞAK BİLGİSAYARLAR
1940-1956 Vakum Tüpler
12
Birinci Kuşak Bilgisayarlar 1940-1956 Vakum Tüpler
İlk bilgisayarlar oda büyüklüğünde olup vakum tüpler devre elemanları olarak kullanılıyordu.
Bellek olarak ta manyetik dönen silindirler bulunuyordu.
İşletilmeleri çok pahalı olup fazla miktarda elektrik harcanmaktaydı.
Çok fazla ısındıkları için de düzgün çalışmayabiliyorlardı.
İlk kuşak bilgisayarlar işlemlerini makine dilinde gerçekleştiriyorlardı. Bir zaman diliminde sadece tek bir problem çözebiliyorlardı.
Girişler delgi kartları ve kağıt şeritlerle, çıktılar ise basılı sonuçlar olarak görüntülenmekteydi.
Makineye Yönelik Düşük Düzeyli Programlama Dilleri
Bilgisayarların ilk kuşakları için makine ile iletişimin tek yolu belirli bir makine dilinin kullanılması idi.
Makine dilleri sadece bir bilgisayar için tasarlanıyordu
Makine dilleri farklı bir bilgisayarın merkezi işleme biriminde çalışacak şekil kolaylıkla dönüştürülemiyordu.
Bilgisayarın iç çalışma yapısının bilinmesi gerektiği için bu dilleri öğrenmek oldukça zordu.
Her bir makine dilinde komutlar 16, 32 ya da 64 bit uzunluğundaki sıfır ve birlerden oluşmaktadır.
O dönem için olağan olan makine dili problemler genişledikçe günümüzün yüksek düzeyli dillerini doğurmuştur.
Makine Dilinde Çarpma İşlemi
İlk Elektronik Programlanabilen Bilgisayar :
ENIAC
Electronic Numerical Integrator and Computer
J. Presper Eckert ve John V. Mauchly
University of Pennsylvania
ENIAC 1946 -1955ENIAC (Electronic Numerical Integrator And Computer)
2. Dünya savaşına kullanılıyordu.
Askeriyede topçuların ateşleme tablolarına gereksinimleri vardı.
Böylece belli koşullarda
belirlenmiş hedefi
ateşlemek üzere hangi
silahın kullanılacağına
kolaylıkla karar verilebiliyordu.
ENIAC makinesine ait vakum tüpler
ENIAC 1946 -1955 ENIAC‘ ın diğer uygulama alanları: hava tahminlerinin
yapılması, atom-enerjisi ile ilgili hesaplamalar, kozmik ışın incelemeleri, rasgele sayı oluşturulması, rüzgar-tünellerinin tasarımı ve diğer pek çok bilimsel kullanımlar …
19,000 vakum tübün eşzamanlı olarak çalışmak üzere tasarlanması gerekiyordu. Bu sayıdaki vakum tüp sayıları ancak 2 saat tutabilme gücüne sahipti .
ENIAC’dan önce Hesaplama yapılabiliyor muydu?
ENIAC makinesinden önce bilgisayarlar sadece matematiksel tabloları oluşturan cihazlar özelliğine sahiplerdi.
ENIAC ise gerçek hesaplamalar yapmak üzere programlanmış ilk bilgisayardı .
ENIAC ile problemler analitik olarak çözümlendi. İşlemler fonksiyonlar kullanarak
gerçekleşmekteydi.
Her bir değişkenin değeri ise, önceden hesaplanmış tablolardan alınmaktaydı.
ENIAC Makinesinin Problemleri
ENIAC bilgisayarda programlama yapmak çok güçtü.
Bugünkü programların aksine, mevcut bir program üzerinde değişiklik yapmak için yüzlerce devrenin değişimi gerekiyordu
Programlama süreci günlerce devam ediyor; ama problemin çözümü birkaç dakikada gerçekleşiyordu.
«hacker» sözcüğünün ortaya çıkışının ENIAC bilgisayarların kullanımına dayandığı söylenir.
Colossus Bilgisayar Colossus makineleri tarafından 2. Dünya savaşı sırasında
Alman mesajlarını okumak üzere İngiliz kod kırıcılarının kullandıkları elektronik hesaplama aygıtlarıydı.
Kısaca yüksek düzeyli Alman haberleşmelerinin kripto işlemleri için kullanılıyordu.
Mesajlar Lorenz SZ 40/42 şifre makinesi ile çözümlenmekteydi.
Mesajın çözümü için metin beşli olarak gruplanmış bitlerden oluşan bir dizi ile birleştiriliyordu.
Lorenz makinesi Almanlar tarafından yüksek-düzeyli teleyazıcı haberleşmeleri şifrelemede kullanılmaktaydı.
Colossus Bilgisayar
Dünyanın ilk programlanabilir, dijital, elektronik hesaplama aygıtında hesaplamalar vakum tüpler yardımı ile yapılmaktaydı.
İngilizlerin Colossus kod kırma makinesi
Tele yazıcı kodu
Delgi kartı tele yazıcı kodunda COLOSSUS harflerini içeriyor.
Alan Turing Kullandığımız Hesaplama kavramını
1936 yılında makalesinde ifade eden İngiliz matematikçidir.
Turing, ENIAC projesinin bir üyesiydi ve İngiliz Colossus makinesinin geliştirilmesine katkıda bulunmuştur.
Başarılı olan Colossus projesi savaş sırasında oldukça katkı sağladı.
Colossus makinesi dünyanın ilk programlanabilen makinesiydi.
Günümüzde bilgisayarın tasarımı ile ilgili olarak Turing‘in tanımlamaları kullanılmaktadır.
Enigma Makinesi
Enigma Makinesi elektro-mekanik makinelerin sınıfında olan aygıtlar ailesindendir ve gizli mesajların şifrelenmesi ve şifre kırılmasında kullanılmaktaydı.
Bu makine 2. Dünya savaşında İngiliz kod kırıcılar tarafından şifrelenen çok fazla sayıda mesajı kırabilecek düzeyde yeniden tasarlanmış ve ünlenmiştir.
Programlanmış ve Depolanmış Bilgisayarlar
1945 yılında «Electronic Discrete Variable Automatic Computer» EDVAC isimli depolanmış program kavramı ortaya atılmıştır.
EDVAC ilk Amerikan bilgisayarlarından biridir.
Colossus ve ENIAC gibi program kontrollü bilgisayarlardan sonra, 1940’ lı yıllardaki depolanmış- program içeren bilgisayar düşüncesi çok büyük bir gelişme idi.
Bellek (memory), cıvalı tüplerin kullanımı ile sağlanıyordu.
EDVAC - 1947Electronic Discrete Variable Automatic Computer
Cıvalı tüpün kullanılmasının nedeni elektronik akımın 0 ve 1 ‘leri iki durumlu bir durum aygıtı olarak depolayarak ileri -geri geçişleri (akımları) gerçekleşebilecekti.
EDVAC ayrıca onlu sistemi değil de ikili sayı sistemini kullanması nedeni ile belleğin on/offdevre yapısı aritmetik birimlerin oluşturulmasını kolaylaştırabilmekteydi.
Böylece ilk mainframe bilgisayar kavramı ortaaatılmış oldu.
John von Neumannvon Neumann’ın 1945 yılında yaptığı öneri
oldukça köklü bir fikirdi.von Neumann yapısındaki bilgisayarların temel
özelliği program ve datanın birlikte depolanmasıydı . Bunun için: Hard disk denilen daha yavaş erişebilecek
bir depolama ortamının oluşturulması gerekiyordu.
RAM adı verilen geçici bir depolama ortamında bilgi iletişimin daha hızlı olmasını sağlayacaktı
CPU (central processing unit ) merkezi işleme birimi tarafından programın çalıştırılması ve işlemler gerçekleştirilecekti.
von Neumann Mimarisi