REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara



Benzer belgeler
Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Qt ile Bir Ağ Uygulaması

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

Düzenli İfadeler & Kullanım Alanları

Düzenli İfadeler & Kullanım Alanları

İşletim Sistemlerine Giriş

QT Eğitimi - 4 : İkili Saat (Binary Clock)

Linux Terminal Sunucusu. Afşin Taşkıran

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Mantıksal Hacim Yönetimi (LVM)

İşletim Sistemlerinde Çok Prosesli Çalışma

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU

İŞLETİM SİSTEMLERİ. (Operating Systems)

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

İşlem Yönetimi (Process Management)

Finans Dünyasında Linux ve Özgür Yazılımlar

İşletim Sistemlerine Genel Bakış

İşletim Sistemleri. B L M Mesleki Te r minoloji I I Ö ğ r e n c i S unumu

İşletim Sistemlerine Giriş

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

Bilgisayar İşletim Sistemleri BLG 312

Linux Çekirdeği 2.6 ve Güvenlik. Fatih Özavcı IT Security Consultant.

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bölüm 4: Threads (İş Parçaları)

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN

İşletim Sistemleri (Operating Systems)

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

Ruby On Rails. Hüseyin Gömleksizoğlu

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Kap Temelli Özgür Sanallaştırma Çözümleri

Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Linux Çekirdek Geliştirme Süreci

Bilgisayar İşletim Sistemleri BLG 312

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

BM-311 Bilgisayar Mimarisi

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

Linux e Giriş ve Dağıtımlar

PROCESS YARATIMI (TEKRAR):

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

İşletim Sistemlerine Giriş

Linux Çekirdeği : Dünü, Bugünü ve Yarını. Ekin Meroğlu. ekin@pardus.org.tr

I. Oturum: GNU/LINUX A GİRİŞ

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemleri. Bilgisayar Mühendisliğine Giriş. Teknoloji Fakültesi / Bilgisayar Mühendisliği. Öğr.Gör.Günay TEMÜR

Windows Eski Sürümleri Bellek Yapısı

QT Eğitimi - 2 :Yerleşim (Layout)

LİNUX İŞLETİM SİSTEMİNİN KÖPRÜ MODUNDA ÇALIŞTIRILMASI VE GÜVENLİK DUVARI İŞLEMLERİ

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

Bilgisayarın Yapıtaşları

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Açık Kaynak Kodlu Yazılım

Çekirdek Nedir? Ne yapar?

Bilgisayarların Gelişimi

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Multicore/Multithread Programlama

Linux un Temel Bileşenleri. Linux Nedir? Aydın ÜSTÜN (Selçuk Üniversitesi) e-posta:

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

Linux un Tarihsel gelişimi

Kemalettin YıldY KADIR HAS UNIVERSITY. UNIX SYSTEM ADMINISTRATOR

YZM 3102 İşletim Sistemleri

Linux ve Özgür Yazılım ile tanışma... Türker Gülüm İstanbul Koç Üniversitesi 2011

AÇIK KAYNAK İŞLETİM SİSTEMLERİ

DERS 10 İŞLETİM SİSTEMİ ÇALIŞMA PRENSİBLERİ VE HATA MESAJLARI

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

BİT in Temel Bileşenleri (Yazılım-1)

İşletim Sistemleri (Operating Systems)

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İŞLETİM SİSTEMLERİ TANIMI

İŞLETİM SİSTEMLERİ. Enformatik Bölümü

Multithreading & Asynchronous Programlama

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Bilgisayar Programlama. Giriş

DBMAIL KURULUMU BELGESI (Howto Install Dbmail) Yazan: Ozgur Karatas

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

BM-311 Bilgisayar Mimarisi

Özgür Yazılım ve GNU/Linux'a Giriş

Bilgi güvenliği konusunda farkındalık yaratmak. Mobil cihazlardaki riskleri anlatmak. Mobil uygulamaların bilgi güvenliği açısından incelemek 2

Yazılım Mühendisliğine Giriş 2018 GÜZ

2.1.2.Aynı Sunucu Şasesi üzerine İNTEL ve AMD tabanlı sunucular takılabilmelidir.

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Linux İşletim Sistemleri. Eren BAŞTÜRK.

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir.

Hacettepe Robot Topluluğu

Linux Nedir, Neden Önemlidir

D) Veri Yolu. B) Overload. C) Overrun A I-II-III-IV B I-III-II-IV C IV-II-III-I D VI-III-I-II

İşletim Sistemleri. Discovering Computers Living in a Digital World

Linux ve Özgür Yazılım Nedir?

YZM 3102 İşletim Sistemleri

Binnur Kurt İstanbul Teknik Üniversitesi Bilgisayar MühendisliM

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Sanallaştırmada Özgür Yazılım Çözümleri. Alper YALÇINER

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Transkript:

REALTIME LINUX 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Genel Kamu Lisansının 2 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Bu lisansın bir kopyasını http://www.gnu.org/copyleft/gpl.html adresinde bulabilirsiniz. Bu belgedeki bilgilerin kullanımından doğacak sorumluluklar, ve olası zararlardan belge yazarı sorumlu tutulamaz. Bu belgedeki bilgileri uygulama sorumluluğu uygulayana aittir. Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim bir ticarî isim yada kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği anlamında görülmemelidir.

Real Time Kavramı Önceden belirlenen zaman aralığında cevap verme garantisi sağlanmalıdır (Deterministic response time). Cevap zamanı genellikle donanım kesmesi üzerinden alınan servisle gerçekleştirilir. Ortam şartlarından bağımsız olarak (çalışan süreç sayısı, kullanılan aygıtlar, sıcaklık vb.), en kötü durumdaki cevap süresi hesaplanabilir ve kabul edilebilir bir aralıkta olmalıdır.

Real Time Kavramı... En kötü durumdaki cevap verme süresinin (worst-case response time) hesaplanabilir olmadığı çalışma ortamı, nondeterministic olarak adlandırılır. Realtime işletim sistemleri, nondeterministic bir çalışma ortamının oluşumuna izin vermemelidir. Nondeterministic çalışma ortamları, sabit çalışma zamanı almayan algoritmaların kullanımı sonucunda oluşur.

Nondeterministic Ortam Örnek: İşletim sistemi, bir sonraki çalıştıracağı süreci seçerken bir liste yapısı içerisinde arama yapıyorsu bu işlem lineerdir ve O(n) zaman alır. Bekleyen süreç sayısı arttıkça (n), cevap süresi de artar. Dolayısıyla O(n) zamanda çalışan bir algoritma, nondeterministic çalışma ortamının oluşmasına neden olur (Standart Linux scheduler için kullanılan yapı).

Nondeterministic Ortam... İşletim sistemi açısından, aynı anda çalıştırılacak süreçlerin sayısını belirlemek mümkün değildir. Ancak gömülü sistemler, kullanılacak arayüzler de dahil olmak üzere tasarım aşamasında, aynı anda çalışabilecek maksimum süreç sayısını sınırlayabilecek özelliklerle donatılabilir ve böylelikle en kötü durumdaki çalışma zamanı hesaplanabilir. Nondeterministic algoritmalarla, realtime bir sistem için gerekli ortam, bu örnekte olduğu gibi bazen sağlanabilir.

Realtime Tanımı POSIX 1003.1 tanımlamalarında yer aldığı şekliyle, bir realtime işletim sistemi, gerekli seviyedeki servisleri, sınırlandırılmış, hesaplanabilir zaman aralığında verebilme özelliklerine sahip olmalıdır.

Yanlış Bilinenler Realtime sistemler, bir online veya interaktif sistem değildir (Örnek: Borsa işlemleri için kullanılan sistemler). Realtime sistemlerin daha hızlı olduğu doğru değildir. Çalışma zamanının sınırlandırılması için kullanılan algoritmalar, genellikle muadillerinden daha efektif değillerdir.

Hard & Soft Realtime Hard realtime sistemlerde, bir isteğe, önceden belirlenmiş zaman aralığında cevap verilemediği durumda, tüm sistem çalışamaz noktasına gelir. Soft realtime sistemlerde de, görevlerin hesaplanan zaman aralığında bitirilmesi hedeflenir. Ancak, bu sürelerin aşımı durumu istenmemesine rağmen tolere edilebilir ve sistem çalışmaya devam eder (Örnek: Uçuş rezervasyon sistemindeki gecikmeler).

Bir Realtime İşletim Sistemi: Multi-threaded ve preemptible olmalıdır Thread önceliklendirmeyi desteklemeli Hesaplanabilir thread senkronizasyon mekanizmaları sağlamalı Sistem çağrılarının belirli zamanda tamamlanması, kesmelerin (interrupt) maskelenmesi ve buradan kaynaklanabilecek gecikmelerin sınırlandırılması sağlanmalı

Linux Realtime Değil(di) Linux çekirdeği, 2.6 versiyonuna kadar preemtible olmadığı için, realtime bir çekirdek özelliğini taşımıyordu. 2.6 öncesi versiyonlar için çeşitli yamalar mevcut, 2.6 ile birlikte preemtible özelliği seçimlik olarak sunulmaktadır.

Linux Realtime Değil(di) Linux görev zamanlayıcısı (task scheduler), 2.6 sürümüne kadar O(n) zamanda çalışıyorken, bu sürümde ciddi değişikliklere uğradı ve O(1) sabit zamanda çalışması sağlandı. Görev zamanlayıcısı üzerinde yapılan bu temel değişiklik sayesinde, realtime uygulamalarına desteğin ve birden fazla işlemcili sistemlerde ölçeklenebilirliğin artması sağlandı.

Realtime Desteğinin Gelişimi Linux 2.2 versiyonuyla birlikte, preemptibility sorunu ciddi olarak gündeme gelmeye başladı. Bu versiyonda, worst-case latency değerleri, 100 ms gibi oldukça yüksekti. Daha çok ses işleme üzerinde çalışan programcılar, Linus Torvalds'a 2.4 versiyonu için bu yüksek latency değerlerini düşürme konusunda baskı yapıyorlar. MontaVista, TimeSys, RTLinux bu dönemde çeşitli yamalarla Linux çekirdeğine realtime desteği sağlamaya çalışıyor.

Preemption Mekanizması Preemption, basitçe yüksek öncelikli bir sürecin, gerekli kaynakları düşük öncelikli süreçlerden almasını sağlar. Critical Section Problemi: Aynı anda birden fazla süreç tarafından bazı kod bölümlerinin işletilmemesi gerekir. MontaVista bir spin-lock counter kullanarak, TimeSys ise priority inheritence mutex mekanizmasıyla, preemption yapıyor.

Realtime Sub-Kernel Realtime bir sistem, çoğu zaman bir kaç süreç dışında nondetermistic çalışmayı tolere edebilir. Bu amaçla, realtime özelliklerini sağlayan bir altçekirdeğin Linux ile birlikte çalıştırılması yaklaşımı benimsenmiştir. Realtime çekirdek çalışırken Linux askıya alınır. Linux'un kesme mekanizmalarını kontrol altına alması engellenerek, determistic çalışma ortamı, realtime süreçlere sağlanır. RTLinux ve RTAI bu prensiple geliştirilmiştir.

RTAI

RTLinux Design Process 1 Process n Linux Kernel RT Task 1 RT Task n RT ISR 1 RT ISR n RTLinux Executive Hardware (CPU)

Dosya Yazma Testi

Disk Okuma Testi

2.6 Sürümünün Getirdikleri İyi bir preemption desteği Daha iyi bir zamanlayıcı (scheduler) Gelişmiş senkronizasyon desteği Sonuç:

2.6 Sürümünün Getirdikleri... Virtual memory kullanmayacak şekilde derleme Memory Managenment Unit bulundurmayan işlemcilere (Dragonball vb.) destek ALSA, USB 2.0, Video4Linux gibi alanlardaki önemli iyileştirmeler Çok daha düzgün ve modüler çekirdek katmanları sayesinde, ihtiyaca yönelik olarak çekirdek katmanlarının özelleştirilebilmesi kolaylığı

Soru - Cevap Teşekkürler