Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

Podobne dokumenty
BSD - alternatywa dla Linuksa

Planowanie przydziału procesora

Planowanie przydziału procesora

Planowanie przydziału procesora

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Prezentacja systemu RTLinux

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Real-Time Linux. Wprowadzenie

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Zarządzanie procesami i wątkami

Linux Scheduler Szeregowanie procesów w systemie Linux. Andrzej Ambroziewicz Piotr Marat Mieszko Michalski

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

4. Procesy pojęcia podstawowe

Szeregowanie procesów w Linuksie - trendy rozwojowe

Podstawowe zagadnienia

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Systemy operacyjne II

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Procesy, wątki i zasoby

Przykłady implementacji planowania przydziału procesora

Wprowadzenie do systemu Minix

Zarządzanie procesorem

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Jądro systemu operacyjnego

Linux - Real-Time (?)

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we

projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Systemy operacyjne III

Informatyka, systemy, sieci komputerowe

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

Programowanie obiektowe

Automatyczne testowanie jądra Linuksa

1.1 Definicja procesu

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Planista całkowicie sprawiedliwy. Algorytm, śledzenie działania i strojenie

Architektury systemów czasu rzeczywistego RTOS. Wykonał: Bartłomiej Bugański

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

Task Parallel Library

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

Tworzenie oprogramowania

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Systemy operacyjne. Paweł Pełczyński

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

Wykład 6 Planista procesora funkcja schedule. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

projektowanie systemu

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

System komputerowy. System komputerowy

Szeregowanie procesów w Linuksie - trendy rozwojowe

Linux Kernel. Wprowadzenie

1. Szeregowanie w systemach czasu rzeczywistego

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 2. Zasoby i procesy w systemach i sieciach komputerowych

Linux Adam Bułak Ha Nhat Viet Damian Klata

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Wykład 2 Proces, stany procesu i przejścia pomiędzy nimi. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Budowa i oprogramowanie komputerowych systemów sterowania. Wykład 9. Systemy operacyjne

Linux -- u mnie działa!

Jesień LinuksowaLinux - Real-Time w systemach wbudowanych

Programowanie współbieżne Wykład 2. Iwona Kochańska

Q E M U.

Systemy Operacyjne - zarządzanie procesami

Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.

Podstawy Informatyki Systemy operacyjne

Co nowego w jadrze 2.6

7. Szeregowanie procesów w systemie QNX6 Neutrino

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Przykładowe sprawozdanie. Jan Pustelnik

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

Planowanie przydziału procesora

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Systemy operacyjne Procesy i wątki

Procesy, zasoby i wątki

REAL-TIME LINUX. ZGODNOŚĆ Z POSIX ( PSE51 (minimal realtime system profile)

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Czujniki obiektowe Sterowniki przemysłowe

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

Kurs programowania. Wykład 8. Wojciech Macyna

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Warstwy systemu Windows 2000

Kernel Kompilacja jądra

Transkrypt:

Jadro Linux 2.6 a zadania czasu rzeczywistego Artur Lewandowski al167167@students.mimuw.edu.pl Jądro Linux 2.6 p.1/14

1 Wprowadzenie Linux 2.6 wprowadza dużo nowych cech polepszajacych wydajność zadań czasu rzeczywistego. Oczekuje się, że te szeroko rozbudowane właściwości w jadrze 2.6, przyśpiesza adaptację Linuksa w zastosowaniach czasu rzeczywistego. Najistotniejsze cechy jadra 2.6, z punktu widzenia takich zadań to: wywłaszczanie jadra scheduler O(1) większe możliwości kontroli czasu (ang. timing) Jądro Linux 2.6 p.2/14

2 Wywłaszczanie jadra Jadro 2.6 jest wywłaszczalne do pewnego stopnia. Czas odpowiedzi jest krótszy niż w serii 2.4, ponadto wersja 2.6 daje programistom lepsza kontrolę nad czasem wykonania (ang. timing). Pierwsze łatki wywłaszczajace jadro powstały dla Linuxa 2.3, ale zostały odrzucone przez Linusa Torvaldsa. Kod był nastepnie rozwijany przez firmę MontaVista. Obecnie opiekunem łatki wywłaszcajacej jadro jest Robert Love. Jądro Linux 2.6 p.3/14

2.1 Punkty wywłaszczania W jadrze 2.6 kod został okraszony punktami wywłaszczenia (preemption points), instrukcjami, które pozwalaja schedulerowi uruchomić i być może zablokować aktualny proces, by przeszeregować proces o wyższym priorytecie. Jądro Linux 2.6 p.4/14

2.2 Okresowe testy Linux 2.6 unika niepotrzebnych opóźnień w wywołaniach systemowych, przez sytematyczne testowanie punktu wywłaszczania. Podczas takiego testu, proces wywołujacy funkcję systemowa może zostać zablokowany, co pozwoli działać innemu procesowi. Jądro Linux 2.6 p.5/14

2.3 Problem z pamięcią wirtualną Oprogramowanie, które musi wykonywać sie zgodnie z ramami czasowymi jest w sprzeczności z pomysłem stronnicowania na żadanie w pamięci wirtualnej. Powolna obsługa błędu braku strony może zrujnować czas odpowiedzi (ang. responsiveness). Kernel 2.6 może zostać zbudowany bez pamięci wirtualnej i tak wyeliminować ten problem. Odpowiedzialność za zapewninie dostatecznej ilości pamięci fizycznej spada na programistę. Jądro Linux 2.6 p.6/14

3 Scheduler O(1) Planista (ang. scheduler) został przepisany od poczatku, by wyeliminować powolne algorytmy z poprzednich wersji. Poprzedni scheduler działał w czasie O(n), na czym szczególnie cierpiały skomplikowane preocesy wielowatkowe. Autorem nowego planisty jest węgierski programista Ingo Molnar. Jego łatki na jadro 2.5 były uparcie odrzucane przez Linusa Torvaldsa, ale ostatecznie autor Linuksa ugiał sie pod naciskiem popularności łatki z szeregowaniem procesów w czasie stałym. Jądro Linux 2.6 p.7/14

Zalety nowego planisty to: mały narzut na czas procesora dobre skalowanie wraz ze wzrastajac a liczba procesów O(1) dobre skalowanie wraz ze wzrastajac a liczba procesorów O(1) na szeregowanie i O(N) na balansowanie obciażenia Jądro Linux 2.6 p.8/14

3.1 Wybieranie w czasie stałym Gdy proces staje sie gotowy, jest sortowany i wstawiany do kolejki aktualnej (ang. current queue). Funkcja schedule wybiera tylko proces na najlepszym miejscu w kolejce, w ten sposób czas działania jest stały. Jądro Linux 2.6 p.9/14

3.2 Kolejka wyczerpanych Gdy proces wykorzysta swój kwant czasu, jest przenoszony do kolejki wyczerpanych (ang. expired queue). Przy dodawaniu do kolejki jest sortowany zgodnie ze swoim priorytetem. 3.3 Zamiana kolejek Gdy kolejka aktualna oprózni sie, nastepuje zamiana. Posortowana kolejka wyczerpanych staje sie aktualna a pusta kolejka aktualna staje się kolejka wyczerpanych. Jądro Linux 2.6 p.10/14

4 Odmierzanie czasu Wprowadzono obslugę wysokorozdzielczościowych stoperów POSIX (ang. POSIX high-resolution timers). Systemy czasu rzeczywistego często potrzebuja odpytywać (ang. poll) sprzęt lub wykonywać inne zadania według stałego rozkładu. Dzięki stoperom POSIX, bardzo łatwo jest ustawić dowolne zadanie jako uruchamiane systematycznie co określony czas. Jądro Linux 2.6 p.11/14

5 Inne cechy jadra 2.6 watki POSIX poprzednia implementację watkow LinuxThreads zastapiło NPTL (ang. Native POSIX Thread Library) czyli własna biblioteka watków POSIX lepsze wparcie dla SMP mocne powiazanie zadania i procesora zapobiega niepotrzebnemu przeskakiwaniu między procesorami sygnały POSIX (ang. POSIX signals) w przeciwieństwie do sygnałów Unixowych nie gubia się i moga przenosić w sobie informację jako argument Jądro Linux 2.6 p.12/14

6 Czy to działa? Firma LynuxWorks znana z produkcji własnrgo komercyjnego systemu czasu rzeczywistego, jako pierwsza wypuściła na rynek dystrybucję Linuxa oparta na jadrze 2.6 dostosowana do zastosowań czasu rzeczywistego. Dystrybuja ta nosi nazwę BlueCat 5.0 i pobieranie wersji beta jest darmowe. W serwisie internetowym www.linuxdevices.com/articles/at5152980814.html można zobaczyć bardzo interesujace wyniki porównań interaktywności tego systemu z jadrem 2.4 i 2.6. Jądro Linux 2.6 p.13/14

7 Literatura LinuxDevices Raport specjalny: "Jadro 2.6 przybywa..." http://www.linuxdevices.com/news/ns9430710378.html LynuxWorks Przełom w systemach osadzonych http://www.lynuxworks.com/products/whitepapers/linux-2.6.ph EETimes Linux wzbogaca się o mo żliwości czasu rzeczywistego http://www.eetimes.com/sys/news/oeg20030908s0064 KernelTraffic podsumowania dyskusji na LKML (ang. Linux Kernel Mailinig List) http://kt.linuxnews.pl/ Jądro Linux 2.6 p.14/14