Tez No İndirme Tez Künye Durumu
100765 Bu tezin, veri tabanı üzerinden yayınlanma izni bulunmamaktadır. Yayınlanma izni olmayan tezlerin basılı kopyalarına Üniversite kütüphaneniz aracılığıyla (TÜBESS üzerinden) erişebilirsiniz.
Design and implementation of a concurrent, object-oriented, real-time and distributed programming language with its supportive run-time system / Eşzamanlı, nesneye yönelik, gerçek zamanlı ve dağıtık bir programlama dili ile destek sisteminin tasarımı ve gerçekleştirilmesi
Yazar:MUSTAFA ERHAN SARIDOĞAN
Danışman: DOÇ.DR. NADİA ERDOĞAN
Yer Bilgisi: İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin:Dağıtık bilgisayar sistemi = Distributed computer system ; Eş zamanlılık = Concurrency ; Programlama dilleri = Programming languages ; Taşıyıcı sistemler = Supporting systems
Onaylandı
Doktora
İngilizce
2000
323 s.
EŞANLI, NESNEYE YÖNELİK, GERÇEK ZAMANLI VE DAĞITIK BİR PROGRAMLAMA DİLİ ELE DESTEK SİSTEMİNİN TASARIMI VE GERÇEKLEŞTİRİLMESİ ÖZET Günümüzde kullanılan bilgisayar sistemlerinin bilgi işleme ve zaman gereksinimleri tek işlemcili mimarilerin sınırlarını aştıkça ilave gerçek zamanlılık kabiliyetleriyle donatılmış dağıtık bilgi işleme yöntemleri daha çekici hale gelmeye başlamıştır. Gerçek zamanlı komuta kontrol uygulamaları ve dağıtık bilgi işleme gibi birçok alanda güvenilirlik, doğruluk, sağlamlık, tasarım, geliştirme, test ve bakım kolaylığı göz önüne alındığında geleneksel programlama dilleri yetersiz kalmaktadır. Nesneye yönelim kavramı program modülleri için yüksek düzeyli bir soyutlama sağlayarak uygulama tasarımını ve geliştirmesini kolaylaştırmaktadır. Fakat, klasik nesneye yönelik programlama dilleri dağıtık gerçek zamanlı programlama için yeterli destek sağlayamamaktadır. Bu nedenle, C++ dilinin bir uzantısı olarak, özel bir çalıştırma sisteminin desteği ile birlikte CPL programlama dilini tasarlayıp geliştirdik. Bu çalıştırma sistemine Concurrent Object-oriented Real-time Distribution sözcüklerinin baş harflerinden oluşan, İngilizce'de birleştirme, bitiştirme, sağlamlaştırma, bağlama anlamına gelen "CORD" adı verilmiş olup gerçekleştirme ve çalıştırma ortamıyla birlikte tüm sistem CORD Sistemi olarak adlandırılmıştır. Yeni geliştirilen dile de CORD Programming Language anlamına gelen CPL adı verilmiştir. Bu çalışmanın temel amacı, gevşek gerçek zamanlılık gereksinimlerine sahip dağıtık sistemleri özel bir donanım kullanmadan etkin ve düşük maliyetli olarak geliştirebilmeye imkan sağlamaktır. Komuta kontrol sistemleri bu dil ve destek sisteminin kullanımı için hedef alan olarak seçilmiştir. Bu alan endüstriyel ve askeri komuta kontrol uygulamalarını kapsamaktadır. Bu sistemlerin ortak gereksinimleri araştırma çalışmalarında, dil ve destek sisteminin tasarımında ve gerçekleştirilmesinde vurgulanarak ortaya konmuştur. Sistemin doğasma ve iletişim ihtiyaçlarına bağlı olarak, sıkı bağlı veya gevşek bağlı bilgisayar sistemleri kullanılabilmektedir. Her iki durumda da, çok miktarda giriş çıkış işlemi ile farklı düğümler üzerinde bilgi işleme gerektiren gerçek zamanlı sistemleri tasarlayıp geliştirmek oldukça güçtür. Birçok uygulama gevşek bağlı sistemler gerektirirken aynı zamanda ölçeklenebilirlik, genişleyebilirlik, taşınabilirlik, bakım- tutum kolaylığı, yüksek güvenilirlik ve etkinlik gibi önemli özelliklere de ihtiyaç duyarlar. Herhangi bir sistem iletişim karmaşıklığım en aza indirgemek için kullanılan kütüphanelerle birlikte klasik bir programlama dili ile gerçekleştirilebilir. Ancak, çeşitli yazılım geliştirme aşamaları sonrasında üretilen bilgisayar programlan öylesine hızlı gelişmiştir ki, dağıtık bilgi işleme özellikleri dikkate alındığında klasik programlama dillerinin veriminin düştüğü görülmektedir. XXIVGünümüzdeki komuta kontrol sistemlerinin çoğu, genellikle ara katman adı verilen özel bir yazılım aracılığıyla birbirine bağlanmış gevşek bağlı bilgisayar mimarisi kullanmaktadırlar. Önerilen dil dağıtık ve gerçek zamanlı çalışabilme özelliklerini bir ara katman yaklaşımı kullanmaksızın kendi içine alarak gerçekleştirme ayrıntılarını programcıdan gizlemektedir. CPL, işletim sistemi üzerinde çalışan ve bir tür iletişim ve yönetim mekanizması olan CORD Çalıştırma Sistemi (CORD-RTS) ile beraber çalışmak üzere tasarlanmıştır. RTS, bir grup Yöneticiden oluşmaktadır. Bunlar, dağıtık nesne veritabanı aracılığıyla nesneler arası haberleşmeyi sağlayan Nesne Yöneticisi, düğümler arası haberleşmeyi sağlayan Ağ Yöneticisi, yerel veya uzaktan aygıt erişimini ve kontrolünü sağlayan Aygıt Yöneticisi ve tüm birimlerden gelen hata mesaj lannı toplayan ve saklayan Hata Yöneticisi 'dir. Bu RTS elemalanna ilaveten, her bir CPL programı için bir adet ana program ve aktif nesnelerin yaratıldığı her bir aktif sınıf için her düğümde birer adet bulunan bir dizi Sınıf Sunumcu bulunmaktadır. Aktif nesneler bilgi işleme yeteneğine sahip birer süreç olup pasif nesneler birer bellek parçasıdırlar. Aygıt nesneleri ise Aygıt Yöneticisi içinde tutulan birer temsilcidirler. CORD Sistemi, abonelik kavramı ile nesneye yönelik yaklaşımı birleştirerek nesnelerarası iletişimi oldukça etkin bir hale getirmektedir. CPL modülleri ilave birkaç kuralın uygulandığı klasik bir C++ programı yazıyormuş gibi hazırlanabilmektedir. CPL derleyicisi, RTS elemanlarıyla iletişimi sağlayan taşınabilir C++ kodu üretmektedir. Üretilen tüm kod hedef sistemin C++ derleyicisi ile derlenmekte ve çalıştırılabilir kod üretilmektedir. Bu tezde, dağıtık sistemlerle ilgili konulara değinilmiş, diğer dil ve sistemler karşılaştırılmış, dağıtık gerçek zamanlı sistemlerin ortak gereksinimleri ortaya konmuştur. Tasarım hedefleri anlatılmış ve dağıtık, gerçek zamanlı, nesneye yönelik bir programlama dili ile destek sistemi ayrıntılarıyla tanıtılmıştır. Yazılım dokümanları tasarım, gerçekleştirme ve test ayrıntılarını içerecek şekilde yaygın bir standart esas alınarak hazırlanmıştır. Dilin grameri, programcı ve sistem kullanıcı kılavuzları ile örnek sistemler tezin ekleri halinde sunulmuştur. M.Erhan SARIDOGAN Bilgisayar Bilimleri Yük.Müh. XXV
DESIGN AND IMPLEMENTATION OF A CONCURRENT, OBJECT-ORIENTED, REAL-TIME AND DISTRIBUTED PROGRAMMING LANGUAGE WITH ITS SUPPORTIVE RUN-TIME SYSTEM SUMMARY As processing and time requirements of recent computer systems increase over borders of single processor architecture, it is becoming more and more attractive to use distributed computing with additional real-time capabilities. In several cases, like real time command and control applications, distributed computing, traditional programming languages have become insufficient, especially when basic software quality factors such as reliability, correctness, robustness, ease of design, development, testing and maintenance are concerned. By providing high-level abstractions of program modules, the object-oriented paradigm makes application design and development easier. However, classical object-oriented programming languages do not provide good support for distributed real-time programming. We therefore designed and implemented CPL, a programming language that extends C++ with the support of a special run-time system. The run-time system is called CORD (Concurrent Object-Oriented Real-Time Distribution) (meaning strong connection of entities) giving the name CPL to the new language, Cord Programming Language. The primary goal of this work is to provide efficient and inexpensive solution without using any special hardware component for the development of distributed systems having soft real-time requirements. We have chosen command and control systems as the primary target domain for this language and its support system to be used. This domain includes industrial automation and military command and control applications. The common requirements for these systems have been emphasized during the research study, design and development of the language and the support system. Depending on the system nature and the communication needs, tightly-coupled or loosely-coupled computer systems can be used. In both cases, real-time applications requiring extensive input and output operations and processing on different nodes are difficult to design and implement. Many applications require loosely-coupled systems, that may even require to have important features like scalability, expansibility, portability, ease of maintenance, high reliability and efficiency. Any system can be developed by using a classical language with user defined libraries to minimize communication complexities. However, computer programs generated after certain steps of software engineering evolved so fast that conventional programming languages have become less efficient when distributed computing is considered. xxnMost of the recent command and control systems use a loosely-coupled computer architecture interconnected via a special software layer often called a middleware. The proposed language hides implementation details from the programmer by embedding distribution and real-time issues within its structure without an explicit middleware approach. CPL is designed to work with the CORD Run-Time System (CORD-RTS), running on top of the operating system as a kind of communication and management mechanism. The RTS consists of a number of managers. These are, Object Manager that handles inter-object communication by means of a distributed object database, Net Manager that handles inter-node communication, Device Manager that controls and handles local or remote device access and Error Manager that collects and stores error reports from all elements. In addition to this RTS, each CPL program has a main program and a number of Class Servers for each active class from which active objects are instantiated. Active objects are processes as computing elements where passive objects are segments of main memory. Device objects are just representatives inside the Device Manager. The CORD System provides efficient inter-object communication with a combination of subscription paradigm and object-orientation by utilizing a programming language. CPL modules are developed just like conventional C++ programming with some additional rules. The CPL compiler generates portable C++ code which manages communication with the RTS elements. Entire code is then compiled with the target C++ compiler to obtain executable code. In this dissertation, basic issues relevant to distributed systems are revisited, some other languages and systems are compared, common requirements for distributed real time systems are reviewed. The design objectives are introduced and a new, distributed, real-time, object-oriented programming language with its supportive run time system is described thoroughly. The software documentation set has been prepared according to a common standard including the design, development and test details. The language grammar, programmer and system user manuals and some example systems are provided as appendices. M.Erhan SARIDOGAN M.S. in Computer Science xxni