BIM404_Sistem_Programlama_Ch1_Giris.pdf

Document Details

RetractableParrot

Uploaded by RetractableParrot

Yıldız Technical University

Tags

computer science programming system programming

Full Transcript

BIM404 Sistem Programlama SİSTEM PROGRAMLAMAYA GİRİŞ Dr. Öğr. Üys. Abdullah Sönmez Ders Hakkında… Temel Kaynaklar: ▪ Advanced Programming in the UNIX Environment, Richard Stevens. Addison Wesley Press ▪ Jonathan Corbet, Alessandro Rubini, Greg-Koah Hartman, "Linux Device Drivers", O'Reilly, 2005, IS...

BIM404 Sistem Programlama SİSTEM PROGRAMLAMAYA GİRİŞ Dr. Öğr. Üys. Abdullah Sönmez Ders Hakkında… Temel Kaynaklar: ▪ Advanced Programming in the UNIX Environment, Richard Stevens. Addison Wesley Press ▪ Jonathan Corbet, Alessandro Rubini, Greg-Koah Hartman, "Linux Device Drivers", O'Reilly, 2005, ISBN 0-596-00590-3. (http://lwn.net/Kernel/LDD3/) ▪ John R. Levine, "Linkers and Loaders", Morgan-Kaufmann, 1999, ISBN 1-55860-496-0. ▪ System Programming with C and UNIX, Adam Hoover, Pearson. ▪ Paul Carter, "PC Assembly Tutorial". (http://pacman128.github.io/static/pcasm-book.pdf) ▪ Renesas M16C/62P Group Hardware Manual ▪ Jean J. Labrosse, MicroC/OS-II The Real-Time Kernel User’s Manual, Second Edition ▪ Jean J. Labrosse, MicroC/OS-III The Real-Time Kernel User’s Manual Yardımcı Kaynak(lar): ▪ C ve Sistem Programcılar Derneği Ders Notları Sistem Programlama 2 Değerlendirme YARIYIL İÇİ ÇALIŞMALARI Sayı KATKI YÜZDESİ Ara Sınav 1 30 Ödev 2 20 (Her biri %10) Toplam 50 Finalin Başarıya Oranı 50 Yıl içinin Başarıya Oranı 50 Toplam Sistem Programlama 100 3 Sistem Programlama Nedir? ▪ Sistem programlarının temelde iki amacı vardır: 1. Bilgisayar sistemlerinin kullanımını uzman olmayan kişiler için kolaylaştırır. 2. Sistemin kaynaklarının etkin ve verimli bir biçimde kullanılabilmesini sağlar. ▪ Sistem programlarının bir kısmı bilgisayar sistemi satın alındığında üzerinde yüklü olarak gelmekte, bir kısmı ise gerektikçe sonradan yüklenmektedir. Sistem Programlama 4 Bazı Örnekler ▪ Giriş / çıkış altprogramları paketi (Input / output subroutine packages) ▪ Monitörler ve Zamanlayıcılar (Monitors and schedulers) ▪ İşletim Sistemleri (Operating systems) ▪ Çeviriciler (Assemblers) ▪ Makroişlemciler (Macroprocessors) ▪ Yorumlayıcılar (Interpreters) ▪ Derleyiciler (Compilers) ▪ Bağlayıcı yükleyiciler (Linking loaders) ▪ Editörler (Editors) ▪ Hata ayıklayıcılar (Debuggers) ▪ Veri tabanı yönetim sistemleri (DBMS) ▪ Haberleşme yazılımları (Communications software) Sistem Programlama 5 Sistem Yazılımı Katmanları Sistem Programlama 6 Sistem Yazılımlarının Gelişimi ▪ Temel Fikir: Komutların saklanması ve tekrarlanabilmesi ▪ 1939’da Harvard’da Howard Aiken liderliğindeki bir grup tarafından saklanabilir programlı bilgisayar yapımı IBM’in de desteği ile başlatılmış. ▪ Mark I’in yapımı 1944’te tamamlanmış. ▪ Elektronik olarak komutları işleyebilip, tekrarlayabiliyormuş. ▪ Bilgi, elektromekanik rölelerde saklanıyormuş. ▪ Komutlar donanımsal olarak gerçeklenmiş. ▪ Çok yavaş olan bu makinede, çözmesi gereken problem tipi değiştiğinde tesisatın tekrar değiştirilmesi gerekiyormuş. ▪ Tekrar tesisatı değiştirmek ise birkaç hafta alıyormuş. Sistem Programlama 7 Sistem Yazılımlarının Gelişimi ▪ Bir sonraki adım: Probleme göre tekrar tesisatın döşenmesi önlemek. ▪ 1940’ların sonunda modern bilgisayarların atası olarak sayılan ENIAC’ın tasarımını yaparken John Von Neumann tarafından: ▪ «Hem verinin hem de komutların makinenin belleğinde nümerik kodlar şeklinde saklanması gerektiği» düşüncesi ortaya atılmış. ▪ ENIAC ile birlikte yeni bir problem için çözüm oluşturmak için makineyi kontrol eden nümerik kodlar (makine kodu) dizisi oluşturmak yeterli hale gelmiş durumda idi. ▪ Günümüzün modern bilgisayarları da genellikle Neumann mimarisinde üretilmektedir. Sistem Programlama 8 Sistem Yazılımlarının Gelişimi ENIAC Sistem Programlama 9 Sistem Yazılımlarının Gelişimi ▪ 2 tip veri girişi: ▪ Kısa programlar: Makine üzerindeki anahtarlar ile. ▪ Uzun programlar: Delikli kartlar ile Sistem Programlama 10 Sistem Yazılımlarının Gelişimi ▪ Programdaki hatayı düzeltecekseniz, ne yapacaksınız? ▪ Çok zahmetli, tekrar kart hazırlanması gerekli. ▪ Devrim niteliğinde bir çözüm: ▪ Bilgisayar neden kendi programlarının hazırlanmasında kullanılmasın? ▪ Buna çözüm: Çeviriciler (Assemblers) ve Monitörler ▪ Çevirici (Assembler) ▪ Makine kodları ile program geliştirmeye göre çok daha hızlı ve doğru bir şekilde program geliştirmeyi sağlayan bir sistem yazılımıdır. ▪ Makine kodu ile program geliştirmeye göre iki temel avantajı vardır: 1. Makine koduna göre çevirici kodunda düşünmek daha kolaydır. 2. Bir komutta ufak bir değişiklik yapıldığında bütün programı bozmaz, çünkü çeviriciler sembolik adreslemeyi kullanmaktadır. Sistem Programlama 11 Sistem Yazılımlarının Gelişimi ▪ Monitör ▪ Günümüzdeki işletim sistemlerinin temellerini oluşturan yazılımdır. ▪ Sistemi kontrol etmek amacı ile kullanılan elektromekanik bir terminal. ▪ Monitör yazılımı birkaç basit fakat faydalı komutları gerçeklemekte: ▪ Klavyeden program girişi ▪ Bilgisayar belleğinin içeriğinin görüntülenmesi ▪ Bir programın çalıştırılması. ▪ Bellekte istenilen bir bölümün değiştirilmesi ▪ Harici bir ortamdan programın yüklenmesi ▪ Harici bir ortama programın saklanması Sistem Programlama 12 Sistem Yazılımlarının Gelişimi ▪ Sonraki aşamalar: Makroişlemciler, bağlayıcı yazılımlar, derleyiciler, yorumlayıcılar, editörler, işletim sistemleri, çoklu-görev işletim sistemleri. ▪ Makroişlemciler ▪ Belirli kod parçaları için programcının kısaltmaları kullanabileceği metin işleme yazılımlarıdır. ▪ Sistematik bir şekilde değişiklikleri gerçekleştirir. ▪ Bağlayıcı yazılımlar ▪ Birden fazla kişi tarafından geliştirilen bir programın farklı kısımlarının yeniden yerleştirilebilir kod yardımı ile birleştirilmesi için kullanılır. ▪ Yeniden yerleştirilebilir (Relocatable) kod ▪ Derleme esnasında bilinmeyen sadece adresleri bilinen ancak kendileri bilinmeyen kod parçaları Sistem Programlama 13 Sistem Yazılımlarının Gelişimi ▪ Derleyici ▪ İnsanoğluna daha yakın yüksek seviyedeki bir dilde yazılmış programı makine diline çeviren dil işleme sistem yazılımıdır. ▪ Yorumlayıcılar ▪ Programcı tarafından başlangıçta program metni nasıl yazıldıysa o şekliyle programı çalıştırır. ▪ Makine koduna çevrim için ara bir katman yoktur. ▪ Yorumlayıcı o anda programın o satırında ne yapılmak istenildiğini analiz eder ve onu o anda gerçekleştirir. ▪ İşletim sistemleri ▪ Sistem kontrol yazılımlarıdır. ▪ Çoklu-görev işletim sistemleri ▪ Birçok kullanıcının eş zamanlı olarak sistem kaynaklarını kullanabilmesini sağlar. Sistem Programlama 14 Mikroişlemcilerin Gelişimi 1. 1971, dünyadaki ilk mikroişlemci: Intel 4004, 4 bit, 45 komut. 2. 1971 sonları, Intel’in 8 bitlik işlemcisi 8008, 128 K genişletilebilir bellek, 48 komut, toplama 20 µs. 3. 1973, Intel 8080, toplama 2 µs. 4. 1977, Intel 8085, dahili saat üreteci ve sistem kontrolörü, toplama 1.8 µs. 5. 1978, Intel 8086, 16 bit veri yolu, 20 bit adresleme  1M. adresleme, komut çalıştırma süresi: 400 ns., birçok saklayıcı içermekte ve erişim süresi 0.2 ns. 6. 1979, 8088, tek farkı 8 bitlik veri yolu. Sistem Programlama 15 Mikroişlemcilerin Gelişimi Sistem Programlama Yıl Mikroişlemci Fiziksel Bellek Alanı Yazmaç Uzunluğu 1974 8080 64K 8 1977 8085 64K 8 1978 8086 1 MB 16 1979 8088 1 MB 16 1980 8096 8K (İçsel) 16 1981 80186 1 MB 16 1981 80188 1 MB 16 1982 80286 16 MB 16 1985 80386 DX 4 GB 32 1987 80386 SL 32 MB 32 1988 80386SX 16 MB 32 1989 80486DX 4GB 32 1991 80486SX 4 GB 32 1994 Pentium 4 GB 32 16

Use Quizgecko on...
Browser
Browser