PROGRAMLAMA TEMELLERİ - ÜNİTE 1 GİRİŞ Bilginin günden güne çığ gibi büyümesi, bilginin anlaşılabilirliğini ve analizini güçleştirmiş ve bilginin daha etkin işlenmesi ve istenildiği sürece saklanması gereğini ortaya çıkarmıştır. Yığın haldeki bilgilerle baş edebilmek için önceleri çok ilkel yöntemlerle yapılan kayıt işlemleri yeterli olmayınca, bilgisayar kullanım ihtiyacı oluşmuştur. Bilgisayarların kullanılmaya başlanmasından itibaren yakın geçmişte yaşayanların bile hayal edemeyeceği oranda, akla gelebilecek bütün işlemler artık bilgisayarlar tarafından gerçekleştirilmektedir. Bilgisayarlar yapısal olarak, bilgilerin girilmesi, girilen bilgilerin işlenmesi ve işlem sonuçlarının alınması şeklinde üç işlevi yerine getirecek şekilde Donanım ve Yazılım olarak adlandırılan iki ana bileşenden oluşmaktadırlar. Şekil 1.1. Bilgisayarın Genel Görünümü BİLGİSAYAR Genel anlamda bir bilgisayar aşağıdaki şekilde tanımlanabilir; “Yığın haldeki veri ve bilgileri alarak mantıksal ve matematiksel işlemlerden geçiren, söz konusu veri ve bilgileri istenildiği sürece saklayabilen ve istenildiğinde sonuçları kullanıcı veya programcılara aktarabilen donanım ve yazılım şeklinde iki ana bölümden oluşan elektronik bir makine.” Elbette bilgisayar tanımı çok farklı şekillerde yapılabilir. Ancak önemli olan elektronik bir yapısının olduğunu, veri ve bilgiler üzerinde işlemler gerçekleştirebilme özelliğinin olduğunu ve veri bilgileri saklama gibi önemli bir donanım özelliğine sahip olduğunu bilmek ve vurgulamaktır. ÜNİTE Bileşenler 1 Bilgisayarlar iki ana bileşenden oluşur; 1. Donanım (Hardware) 2. Yazılım (Software) ÜNİT E 4 1 Donanım Yazılım Şekil 1.2. Bilgisayarın Bileşenleri Donanım Bilgisayarın elektronik yapısından oluşan, gözle görülüp elle tutulabilen bütün fiziksel parçalarına denir. Donanım ana ve çevre birimler olmak üzere iki alt bölüme ayrılabilir. Bilgisayar kasası, mainboard (anakart), harddisk, ekran kartı, ekran, klavye, mouse vb. donanım birimlerine örnek olarak verilebilir. Bir bilgisayarın donanım yapısı aşağıdaki şekilde şematize edilebilir. Merkezi İşlem Birimi Giriş Birimleri Aritmetik ve Mantık Birimi Kontrol Birimi Çıkış Birimleri Bellek Birimleri Şekil 1.3. Bilgisayarın Donanım Yapısı 2 Giriş birimleri Bilgisayarda veri girişi yapmak için kullanılan birimleri Giriş birimleri denir. Klavye, fare, mikrofon, kamera, CD, DVD, tarayıcı ve barkod okuyucu gibi birimler ilk akla gelen giriş birimlerindendir. Merkezi işlem birimi Merkezi işlem birimi (Central Processing Unit-CPU) bir bilgisayar sisteminin beyni olarak düşünülür. Merkezi işlem biriminin iki temel bileşeni vardır. Aritmetik ve mantık birimi Kontrol birimi Ana bellekte saklı bilgiler kontrol birimi tarafından okunur ve merkezi işlemci saklayıcılarına (register) aktarılır. Ana bellekten okunan komutların anlamlarının çözülmesi de yine kontrol birimince yerine getirilir. CPU’lar mikroişlemci denilen yarı iletken yongalar kullanırlar. Bu mikroişlemciler belleği, aritmetik-mantık ve kontrol devrelerini tek bir yonga üzerinde birleştirir. Çıkış birimleri Bilgisayar ortamında işlenen veri ve bilgilerin programcı veya kullanıcılara aktarılmasını sağlayan birimlere çıkış birimleri denir. Ekran, yazıcı, çizici, Hoperlör, disketler, diskler, CD ve DVD an başta sayabileceğimiz çıkış birimlerindendir. Bellek birimleri Veri veya bilgilerin kalıcı veya geçici bir süre için saklandığı birimlerdir. Hard diskler, flash bellekler, Cd ve DVD bellek birimlerinden birkaçıdır. Yazılım Bilgisayarda işlemler gerçekleştirmek ve bilgisayarın çalışmasını sağlamak amacıyla, belirli kurallara göre oluşturulmuş her türlü kodlamaya yazılım denir. Yazılım veri ve bilgileri kullanarak geliştirilmiş programlardan oluşur. Yazılım soyut bir kavramdır, fiziksel bir yapısı yoktur. Yazılım, çözülmek istenilen herhangi bir problemin çözüm yollarının kod yazılarak sağlanmasıdır. Yazılım, bilgisayarın çalışmasını sağlayan sistem yazılımları ve bilgisayarda işlem yapılmasını sağlayan uygulama yazılımları şeklinde gruplandırılabilir. Sistem yazılımları bilgisayarı yöneten işletim sistemlerinden oluşan yazılımlar iken uygulama yazılımları kullanıcıların bilgisayarda istedikleri işlemleri gerçekleştirmeleri amacıyla programlama dilleri kullanılarak gerçekleştirilen yazılımlardır. 3 Şekil 1.4. Yazılım örneği Uygulama Yazılımları Uygulama yazılımları kullanıcıların belli başlı bazı işlemleri icra etmelerine imkan veren yazılımlardır. Uygulama yazılımlarının geliştirilmesi için programlama dilleri ve diğer bazı uygulama geliştirme araçları kullanılır. Uygulama yazılımları belli bir işletim sistemi altında çalıştırılmak üzere hazırlanır. Örneğin, Macintosh işletim sistemi altında çalışmak üzere hazırlanan bir kelime işlem programı DOS veya WINDOWS işletim sistemini kullanan kişisel bilgisayarlarda çalışmayacaktır. Bununla birlikte, çoğu durumlarda ticari uygulamalar diğer birçok işletim sistemi altında da çalışabilecek şekillerde hazırlanmaktadır. Genel Amaçlı Uygulama Yazılımları Günümüzde bilgisayar sistemleri için çok sayıda genel amaçlı uygulama yazılımı mevcuttur ve bunların sayısı her geçen gün hızla artmaktadır. Bu yazılımlardan kişi ve kurumlarca en yaygın olarak kullanılanları kelime işlem programları, elektronik hesap tablosu programları ve dosya/veri tabanı yönetim sistemleridir. Kelime işlem programları: Kelime işlem programları bilgisayar sisteminin, çok güçlü özellikleri olan bir daktilo makinesi olarak kullanılmasına imkan veren programlardır. Bu programlar diğer genel amaçlı uygulama yazılımlarına oranla çok daha yaygın bir şekilde kullanılmaktadır. Bazı kelime işlemciler, masaüstü yayıncılık, elektronik takvim ve elektronik posta gibi özelliklere sahip olan entegre ofis sistemlerinin temelidir. Hesap Tablosu Programları: Hesap tablosu programları bilgisayar sistemini son derece kabiliyetli bir elektronik hesap makinesine dönüştüren programlardır. Bu programların çoğu, verileri alıp çeşitli türlerde grafiklere dönüştürme kabiliyetine de sahiptir Dosya yöneticisi ve veri tabanı yönetim sistemleri: Dosya yöneticileri ve veri tabanı yönetim sistemleri büyük miktarlardaki verileri depolayıp bu verilere hızlı 4 bir erişim sağlanmasına ve bu verilerden raporlar hazırlanmasına imkan veren programlardır. Özel Amaçlı Uygulama Yazılımları Özel amaçlı uygulama yazılımları belirli bazı işleri icra etmek için geliştirilen dolayısıyla sınırlı amaçları olan yazılımlardır. Aşağıda belli bazı özel amaçlı yazılım türleri kısaca izah edilmiştir. Analiz ve karar verme: Bu tür yazılımlardan birisi karar destek sistemleridir. Bir karar destek sistemi belli işlemleri yapmaktan çok problemlerin çözümünde yöneticilere yardımcı olmak amacıyla geliştirilmiş olan bir sistemdir. Birçok karar destek sistemi matematiksel modellerden faydalanmak üzere istatistik ve yönetim bilimi yazılımlarını birleştirir. Karar vermede kullanılan bir diğer yazılım çeşidi ise uzman sistem yazılımlarıdır. Uzman sistemler, insan uzmanların bir sonuç çıkarmak üzere kullandıkları metodolojiyi taklit ederek normal olarak insan uzmanlardan alınabilecek tavsiyeleri karar vericilere sağlamak amacıyla kullanılan yazılımlardır. Planlama, programlama, koordinasyon ve organizasyon: Finansal planlama, bütçe, masraf ve satış raporları hazırlama, toplantı gündemlerinin hazırlanması ve randevuların ayarlanması gibi işler yine uygulama yazılımları yardımıyla yapılır. Bu tür yazılımlara masaüstü düzenleyici yazılımlar denir. Ayrıca yöneticilerin Gant şemaları, PERT, CPM ve diğer proje yönetim araçlarını kullanmasını kolaylaştıran yazılımlar da vardır. Bu yazılımlara ise proje yönetimi yazılımları denir. Raporlama: Bu uygulamalar verilerin sıralanması, sınıflandırılması, özetlenmesi ve güzel görünümlü bir duruma getirilmesi amacıyla kullanılan yazılımlardır. Sunum: Sunum uygulamaları belli bir konuda yapılan araştırmanın veya hazırlanan raporların sonuçlarını bilgisayar yardımıyla diğer kişilere anlatmak için kullanılırlar. Sunum genellikle bilgisayara bağlı bulunan bir projeksiyon cihazı yardımıyla yapılır. Bu uygulamalar her türlü grafik, ses ve video görüntülerinin kullanılmasına imkan verir. İletişim: İletişim programları bilgisayar ağları arasında iletişim kurulmasına imkan veren programlardır. Günümüzde yaygın bir şekilde kullanılan Internet hizmetlerinden yararlanmak için geliştirilmiş olan her türlü program iletişim programları içerisinde düşünülebilir. Eğitim: Artık bilgisayarlar eğitimde her geçen gün gittikçe artan bir oranda kullanılmaktadır. Bugün piyasada mevcut olan hemen hemen tüm uygulamalar öğreticileriyle birlikte gelmektedir. Ansiklopediler, belli bir yer veya konuda hazırlanmış olan tanıtıcı programlar ve yabancı dil veya herhangi bir dersle ilgili olarak yardımcı olmak üzere hazırlanmış programlar eğitim amaçlı programlardır. Sistem Yazılımları Sistem yazılımları, uygulama yazılımları ile bilgisayar donanımı arasında aracılık eden yani bilgisayar sisteminin pürüzsüz bir şekilde çalışmasını sağlayan yazılımlardır. Sistem yazılımlarını işletim sistemi (Operating System)yazılımları ve 5 programlama dilleri şeklinde gruplandırdıktan sonra programlama dilleri hakkında detaylı bilgi verilecektir. Programlama Dilleri Genel amaçlı olsun özel amaçlı olsun tüm uygulama yazılımları programlama dilleriyle yazılır. Bir programlama dili, insanların bilgisayara çeşitli işlemler yaptırmasına imkan veren her türlü sembol, karakter ve kurallar grubudur. Programlama dilleri insanlarla bilgisayarlar arasında tercümanlık görevi yapar. Programlama dilleri, bilgisayara neyi ne zaman yapacağını belirten deyim ve komutlar içerir. Programlama dilleri zaman içerisinde gelişerek günümüzde çok kabiliyetli bir duruma gelmiştir. Bu kesimde programlama dillerinin gelişme süreci kısaca incelenecektir. Programlama dillerinin tarihi gelişimi aşağıdaki tabloda verilmiştir. Kuşak 1 2 3 4 Programlama Dili Makine dili Assembly dili Yüksek seviyeli diller Çok yüksek seviyeli diller Periyod 1940’lı ve 1950’li yıllar arası 1950’li yıllardan itibaren 1960’lı yıllardan itibaren 1970’li yıllardan itibaren 5 Yapay zekaya yönelik diller, nesneye yönelik diller ve paralel 1980’li yıllardan itibaren Düşük seviyeli diller: Bilgisayarların ilk dönemlerindeki programlama dilleri, kullanımı çok zor olan makine dili ve assembly dilleriydi. Makine dili, geliştirilen ilk programlama dilidir ve ilk kuşağı temsil eder. Makine dilinde yazılan tüm komutlar 0 ve 1’lerden oluşur. Bütün talimatlar en detaylı bir şekilde tanımlanır ve iki tabanlı sayı sistemi kullanılarak kodlama yapılır. Assembly dilleri: Assembly dilleri ikinci kuşak dillerdir ve geliştirilmesine 1950’li yılların başlarında Grace Hopper tarafından öncülük edilmiştir. Bu dillerde makine dili talimatları daha kolay bir şekilde anlaşılabilecek ve hatırlanabilecek olan sembollerle ifade edilir. Düşük seviyeli diller grubundan sayılmasına rağmen, makine diline göre bir adım daha ileride olan assembly dilleri günümüzde bile programcılar tarafından yaygın bir şekilde kullanılmaktadır. Çünkü bu dillerle yazılan programlar genellikle çok hızlı çalışır ve daha az depolama yüzeyi gerektirirler. Bununla birlikte bu dillerle programlama yapmak çok yorucu, sıkıcı ve zaman alıcı olduğundan cazibesini kaybetmektedir. Yüksek seviyeli diller: Üçüncü kuşak da denilen yüksek seviyeli programlama dilleri öğrenilmesi daha kolay, program yazılması daha az zaman alan, daha iyi sonuçlar temin eden programlama dilleridir. Yüksek seviyeli dillerden birinde yazılan bir kaynak program makine diline çevrilmek zorundadır. Dönüştürme işlemini gerçekleştiren programa derleyici (compiler) denir. BASIC, COBOL, 6 FORTRAN, Pascal, PL/I ve Ada dilleri bu kategorideki programlama dillerine sadece bir kaç örnek oluşturur. Çok yüksek seviyeli diller: Dördüncü kuşak diller olarak da isimlendirilen çok yüksek seviyeli diller programlama işini çok daha kolaylaştırmıştır. Bu dillerin ardındaki temel felsefe kullanıcıların bilgisayara bir şeyin nasıl yapılacağını değil ne yapılacağını ifade edebilmelerine imkan vermesidir. Örneğin, sayıların sıraya dizdirilmesi işlemini yapabilmek için bir yüksek seviyeli dil ile karmaşık bir mantık kullanarak 15-20 satırlık bir program yazmak gerekir. Bunun aksine bir dördüncü kuşak dil ile bir kullanıcının yapacağı iş sıraya dizilecek alanı belirlemek, sıralama işleminin büyükten küçüğe mi yoksa küçükten büyüğe mi yapılacağını belirlemek ve ekrandaki bir ikona tıklayarak ya da bir menüden “sırala” komutunu seçerek sıralama işlemini gerçekleştirmektir. İlk geliştirilen dördüncü kuşak diller ile daha sonraları geliştirilen diller arasında bile takip edilen prosedürler ve kullanılan metotlar bakımından büyük farklılıklar vardır. Yeni geliştirilen diller çok daha karmaşık işleri çok daha kolay bir şekilde yapmaya imkan vermektedir. Yapay zeka dilleri: Bu diller insan davranışını taklit etmeye yönelik yapay zeka içeren programların yazımında kullanılan mantıksal dillerdir. Çok Kullanılan Bazı Diller ve Özellikleri Dil Türü Açıklama ALGOL YS FORTRAN’a benzer ama daha kapsamlı ve esnek bir dil APL YS Fen bilimleri uygulamalarında yaygın kullanımı olan bir dil BASIC YS Çok kullanılan ve öğrenilmesi kolay olan bir dil C++ ÇYS Nesneye yönelik popüler bir dil COBOL YS Daha çok işletme uygulamalarında kullanımı olan bir dil FORTH DS/YS Assembly dilleri ve yüksek seviyeli diller arasında bir dil FORTRAN YS Fen bilimleri uygulamalarında kullanılan en eski yüksek seviyeli dil LISP YS Yapay zeka uygulamalarında çok kullanılan dillerden biri Modula-2 YS Sistem yazılımları geliştirmekte kullanılan ve özel kabiliyetleri olan bir dil PL/1 YS Hem işletme uygulamalarını hem de fen bilimleri uygulamalarını destekleyen yüksek kabiliyetli bir dil Prolog YS Yapay zeka uygulamalarında çok kullanılan dillerden biri RPG ÇYS Rapor oluşturma dili Smalltalk ÇYS İlk nesneye yönelik dil ve kullanımı hala yaygın SQL ÇYS İlişkisel veri tabanlarıyla birlikte en çok kullanılan yapısal sorgulama dili * DS=Düşük Seviyeli, YS=Yüksek Seviyeli, ÇYS=Çok Yüksek Seviyeli 7 BİLGİSAYARIN TEMEL FONKSİYONLARI Bir bilgisayarla yapılan işlemler üç temel faaliyetten ibarettir. Giriş/çıkış işlemleri Veriler ve bilgiler üzerinde yapılan işlemler Veri ya da bilgilerin saklanması ve nakli işlemleri Giriş/çıkış işlemleri Bir bilgisayar, yukarıda Bilgisayarın bileşenleri bölümünde bahsedilen çeşitli giriş ve çıkış cihazları vasıtasıyla toplanan verileri alma ve işlenen verileri de sunma kabiliyetine sahiptir. Klavye, terminal ve yazıcı gibi yaygın giriş/çıkış cihazları insan/makine iletişimini mümkün kılar. Veriler ve bilgiler üzerinde yapılan işlemler Veriler ve bilgiler üzerinde yapılabilecek işlemleri açıklamadan önce veri ve bilgi kavramlarının tanımlarını verelim. Veri: Tek başlarına anlam taşımayan sayılar, rakamlar, sözcükler, metinler, resimler, olaylar vb. biçiminde temsil edilen ham gerçekliklerdir. İşlenmemiş bilgi olarak kabul edilir. Bilgi: Bilgi, olguları ve olayları tanıma, anlama ve özellikle açıklamaya yönelik, eğitim, gözlem, araştırma veya deneyim yoluyla elde edilen ve bütün bunların insanın zihinsel değerlendirmesi neticesinde ortaya çıkan olgular veya fikirlerdir. Verilere bilgisayar tarafından matematiksel veya mantıksal işlemler uygulanması sonucu elde edilen değerlerdir. Merkezi işlem biriminde veriler ve bilgiler üzerinde gerçekleştirilen işlemler aşağıdaki şekilde gruplandırılabilir. Sınıflandırma Benzer birimlerin gruplara veya sınıflara bölünmesi sınıflandırma olarak isimlendirilir. Sınıflandırma genellikle veriler için önceden tespit edilmiş kısaltma veya kodlar vasıtasıyla yapılır. Kod türleri nümerik (111, 112, 113 gibi), alfabetik (A,B,C gibi) ya da alfanümerik (A1, B1, C1 gibi rakam ve harflerin karışımı şeklinde) olabilir. 8 Aritmetik ve mantıksal işlemler Aritmetik işlemler verilerin toplama, çıkarma, çarpma ve bölme gibi işlemlere tabi tutulmasıdır. Bilgisayar ayrıca mantıksal karşılaştırmalar yapma kabiliyetine de sahiptir. Örneğin, A ve B şeklinde ifade edilen iki veri birimi karşılaştırıldığında sadece üç muhtemel sonuç söz konusudur. (1) A, B’ den küçüktür (A<B); (2) A, B’ ye eşittir (A=B); (3) A, B’ den büyüktür (A>B). Bu karşılaştırma kabiliyeti bilgisayarı önemli bir özelliğidir. Çünkü çoğu karmaşık problemler karşılaştırmalar yapmak suretiyle çözülebilir. Sıralama Veriler mantıksal bir sıra içerisinde düzenlenmişse bunlarla çalışmak ve analiz etmek daha kolay olur. Mesela nümerik veriler küçükten büyüğe veya büyükten küçüğe, alfanümerik veriler ise A’dan Z’ye veya Z’den A’ya şeklinde düzenlenebilir. Bilgisayarın mantıksal karşılaştırmalar yapmak suretiyle gerçekleştirdiği bu düzenlemeye sıralama denir. Özetleme Veri yığınlarının daha kısa ve kullanılabilir şekle indirgenmesine özetleme adı verilir. Bilgisayarın çeşitli grafik programları yardımıyla verilerden pasta veya sütün grafikler çıkarması özetlemeye bir örnek oluşturur. Saklama ve nakletme işlemleri Saklama, veri ve bilgilerin daha sonraki kullanım için bellek birimlerinde saklanmasıdır. İstenildiğinde bu veri ve bilgilere çabucak ulaşılabilir ve kullanılabilir. Ayrıca, bilgisayarlar veri ve bilgileri bir yerden başka bir yere transfer etme kabiliyetine sahiptir. İletişim, herhangi bir elektronik iletişim aracı ile yapılabilir. BİLGİSAYARLARIN SINIFLANDIRILMASI Bilgisayarları amaçlarına ve kapasitelerine göre alt gruplara ayırmak mümkündür. Amaçlarına Göre Bilgisayarlar Amaçlarına göre bilgisayarlar Dijital, Analog ve Hibrit bilgisayarlar olarak üç başlık altında incelenebilir 9 Dijital (sayısal) bilgisayarlar Dijital bilgisayarlar iki tabanlı sayı sistemine göre yani, 0 ve 1 dijitleriyle işlem yapan ve sonuçları rakamlar, harfler ve diğer sembollerle gösteren bilgisayarlardır. Dijital bilgisayarlar da, özel amaçlı ve genel amaçlı olmak üzere iki gruba ayrılabilir. Özel amaçlı dijital bilgisayarlar: Özel amaçlı dijital bilgisayarlar yalnızca spesifik bir fonksiyonu icra etmek için tasarlanırlar. Bir özel amaçlı dijital bilgisayarda talimatlar makinede kalıcı bir şekilde kaydedilir. Otomobillerdeki yakıt, ateşleme ve fren sistemini kontrol etmek üzere kullanılan işlemciler bu tür bilgisayarlara bir örnek teşkil eder. Genel amaçlı dijital bilgisayarlar Genel amaçlı dijital bilgisayarlar, farklı programları saklayabilen ve böylece sayısız uygulamada kullanılabilen bilgisayarlardır. Böyle bir bilgisayar, bir kaç saniyede büyük bir ücret bordrosunu hesaplayabilir, güzel görünümlü grafikler çizebilir veya çok karmaşık matematik hesaplamalar yapabilir. Bundan sonraki bölümlerde kullanacağımız bilgisayar terimiyle genel amaçlı dijital bilgisayarlar kastedilecektir. Analog (örneksel) bilgisayarlar Analog bilgisayarlar fiziksel değerleri ölçen bilgisayarlardır. Örneğin, bir benzin istasyonundaki benzin pompası benzin akışını miktar ve fiyat cinsinden değerlere dönüştüren bir analog işlemci ihtiva eder. Ya da bir postanede gönderilecek paketleri tartarak bu paketlerin ağırlıklarını ve gönderme ücretini hesaplayan cihazlar bir başka analog bilgisayar örneğidir. Hibrid(melez) bilgisayarlar Hibrid bilgisayarlar analog ve dijital bilgisayarların özelliklerinin bir araya getirildiği bilgisayarlardır. Örneğin, bir hastanenin yoğun bakım ünitesinde analog cihazlarla bir hastanın kalp atışı, ateşi veya tansiyonu gibi hayati fonksiyonları ölçülerek, bu değerler daha sonra rakamlara dönüştürülür ve dijital bir cihazda görüntülenir. Hacimlerine göre bilgisayarlar Hacimlerine göre bilgisayarlar üç kategoriye ayrılabilir: büyük-sistemler (merkezi bilgisayarlar), müstakil mikrobilgisayarlar ve ağ (network) sistemleri. Merkezi bilgisayar sistemleri Bu sistemlerde yapılması gereken işlemler tek bir merkezi bilgisayarda yapılır. Merkezi bilgisayar çoğu kez bir ana bilgisayar (mainframe) veya bir mini bilgisayardır. 1950’li yıllar ve 1960’ların başlarında bu sistemler, veri girişi ve kaydı için delikli kartları ve manyetik bantları kullanarak yığın işletim modunda faaliyet gösterirlerdi. Daha sonra çok sayıda kullanıcının aynı anda terminaller vasıtasıyla faaliyetlerini icra etmelerini mümkün kılan on-line işlem mümkün hale geldi. Bu, bütün girdilerin terminaller aracılığıyla işlenmek üzere direkt olarak merkezi bilgisayara iletilmesi ve girdiler işlendikten sonra elde edilen çıktıların merkezi 10 bilgisayardan kullanıcıya dönmesi anlamına gelir. Merkezi sistemlerde kullanılan terminallerin çoğu akılsız (dumb) terminallerdir. Bu terminaller sadece görüntü amacıyla kullanılır ve herhangi bir işlem icra edemezler. Zamanla, büyük merkezi sistemler ve destek donanımı daha etkin ve kabiliyetli bir hale geldi. Akılsız terminallerin yerini akıllı (intelligent) terminaller almaya başladı. Akılsız terminallerin aksine, akıllı terminaller kendi başlarına bazı işlemleri gerçekleştirebilecekleri işlemcilere sahiptir. Merkezi sistemlerin bir kusuru tek bir bilgisayar üzerinden kullanıcılara hizmet verilmesidir. Merkezdeki bilgisayarda veya bilgisayarı terminallere bağlayan hatlarda meydana gelebilecek bir hasar ya da uyumsuzluk durumunda işlemler icra edilemez veya çok sayıda kullanıcı aynı anda sisteme bağlandığında sistem çok yavaş çalışabilir. Mikrobilgisayar sistemleri Mikrobilgisayar sistemleri, ilk olarak 1970’lı yıllarda üretilmiş, fakat kullanımı 1980’li yıllarda yaygınlaşmıştır. Mikrobilgisayarların ardındaki felsefe, bir kimsenin işini istediği anda icra etmesine yardım etmek üzere bir bilgisayarın hazır bulundurulmasıdır. Örneğin, bir yazının yazılması, grafikler hazırlanması, hesaplamalar yapılması ve kişisel takvimler tutulması gibi birçok iş, yapıları itibariyle bireyseldir. Bugün, yüksek kaliteli yazılımlar sebebiyle, mikrobilgisayarlarla yapılan işler inanılmaz ölçüde artmıştır. Bir kısım işletmeler muhasebe, envanter ve müşteri veri tabanı gibi işler için sadece mikrobilgisayarları kullanmaktadır. Mikrobilgisayarlar, kendi başlarına kullanılabilecekleri gibi, birbirlerine bağlanarak bir ağ teşekkül ettirilebilir veya daha büyük bilgisayar sistemlerine bağlanabilirler. Ağ sistemleri Bir bilgisayar ağı, iki veya daha fazla bilgisayarın bir iletişim aracı üzerinden, tüm iletişim, yazılım ve donanım bileşenleri ile birlikte bağlanarak meydana getirilen sistem olarak tanımlanabilir. Bilgisayar ağı en az bir sunucu bilgisayar ve işlemci, buna bağlı terminaller, modem, iletişim protokolü ve benzeri iletişim araçlarını bünyesinde bulundurur. Böyle bir çevrede kullanıcılar birçok yazılım ve donanımı paylaşabilirler. Bir yerel alan ağı (Local Area Network-LAN) tüm bileşenlerinin birkaç kilometrelik alana yayıldığı, genellikle saniyede bir milyon bit veya daha fazla bilgi nakletme hızını gerçekleştirebilen bir iletişim ağıdır. Tanımdan da anlaşılacağı gibi yerel alan ağları küçük bir coğrafik alanla sınırlıdır. Sınırlı bir mesafe içerisindeki yüksek hız, yerel alan ağlarının bir bina veya bir bina kompleksi içerisinde kurulmasını mümkün kılar. Genellikle, yerel alan ağları 10 Mbps veya daha hızlıdır. Günümüzde yaygın olarak kullanılan hız 10/100/1000 Mbps düzeyindedir. Geniş alan ağları (Wide Area Networks-WAN) coğrafik olarak daha geniş bir alana hizmet eden ve telefon hatlarını, mikro dalgaları, uyduları veya bu iletişim kanallarının bir kombinasyonunu kullanan büyük ağlardır. Bir WAN’i LAN’den ayıran temel fark mesafedir. WAN, çok büyük bir coğrafi alanı içine alabileceği gibi küçük bir alanı kapsayacak şekilde de kurulabilir. Diğer ayırıcı özellikler hız, kullanılan donanım ve mimaridir. İkisi arasındaki farkta anahtar nokta, WAN’in aynı teknolojileri kullanarak uzak mesafeleri içine alacak şekilde kolaylıkla genişleyebilmesi, LAN’in ise buna imkan vermemesidir. Bir metropol alanını kapsayan WAN’ler bazen ayrı bir kategoriye konulur ve metropol alan ağları (Metropolitan Area Networks- MAN) diye isimlendirilir. 11