PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

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

Prezentacja systemu RTLinux

Systemy Czasu Rzeczywistego (SCR)

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

7. Szeregowanie procesów w systemie QNX6 Neutrino

Zarządzanie procesorem

Podstawowe zagadnienia

Organizacja oprogramowania

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

1. Szeregowanie w systemach czasu rzeczywistego

Planowanie przydziału procesora

Planowanie przydziału procesora

Zarządzanie procesami i wątkami

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

4. Procesy pojęcia podstawowe

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

Planowanie przydziału procesora

7. Szeregowanie procesów w systemie QNX6 Neutrino

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

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

Systemy operacyjne III

Planowanie przydziału procesora

Jądro systemu operacyjnego

4. Procesy pojęcia podstawowe

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

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

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

Informatyka, systemy, sieci komputerowe

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

Przykłady implementacji planowania przydziału procesora

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

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

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

Systemy operacyjne Procesy i wątki

4. Procesy pojęcia podstawowe

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

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

Wykład 3: Implementacja programów wbudowanych

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Systemy Czasu Rzeczywistego (SCR)

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

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

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2

Planowanie przydziału procesora

Sieciowe Systemy Operacyjne

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

Procesy, wątki i zasoby

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

1.1 Definicja procesu

Materiały pomocnicze 1

Pytania do treści wykładów:

1. Etapy rozwoju systemów komputerowych

Nowoczesne systemy operacyjne

Spis treści. Rozdział 3. Instalacja i konfiguracja systemu RTLinux Przebieg instalacji...e...e.37

dr inż. Jarosław Forenc

Systemy operacyjne. Paweł Pełczyński

Systemy operacyjne III

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

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

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

projektowanie systemu

System operacyjny MACH

* Wymień typowe standardy sygnałów procesowych: - analogowy - dwustanowe

dr inŝ. Jarosław Forenc

System operacyjny System operacyjny

Opis efektów kształcenia dla modułu zajęć

Zaawansowane programowanie w C++ (PCP)

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Urządzenia wejścia-wyjścia

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

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Wprowadzenie do systemów operacyjnych

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

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Linux - Real-Time (?)

Systemy Czasu Rzeczywistego (SCR)

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

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

System komputerowy. System komputerowy

Programowanie współbieżne Wykład 7. Iwona Kochaoska

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst.

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Planowanie przydziału procesora

Kurs programowania. Wykład 8. Wojciech Macyna

Podstawy Informatyki Systemy operacyjne

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Jesień LinuksowaLinux - Real-Time w systemach wbudowanych

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

POSIX ang. Portable Operating System Interface for Unix

dr inż. Jarosław Forenc

Zarządzanie pamięcią operacyjną

Transkrypt:

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH SCHEDULING Mariusz Rudnicki mariusz.rudnicki@eti.pg.edu.pl Programowanie Systemów Wbudowanych 1/40

SZEREGOWANIE ZAGADNIENIA Czym jest szeregowanie? W jakim celu stosuje się mechanizmy szeregowania? Algorytmy szeregowania w RT OS: QNX Neutrino, RT Linux, Windows CE. Szeregowanie zadań periodycznych i aperiodycznych. Niebezpieczeństwa związane z szeregowaniem. Programowanie Systemów Wbudowanych 2/40

SZEREGOWANIE Algorytm szeregowania (ang. scheduler - planista) to algorytm rozwiązujący jedno z najważniejszych zagadnień programowania systemów czasu rzeczywistego, a mianowicie w jaki sposób rozdzielić czas procesora i dostęp do innych zasobów tj. pamięć, zasoby sprzętowe, pomiędzy zadania, które w praktyce zwykle o te zasoby konkurują, aby dostęp do tych zasobów był sprawiedliwy i zapewniał terminowe wykonanie zadań krytycznych. Programowanie Systemów Wbudowanych 3/40

SZEREGOWANIE Implementacje algorytmu szeregowania mogą być różne: zazwyczaj moduł planisty umieszczony jest w jądrze systemu QNX Neutrino; może jednak być jednym ze zwykłych zadań, które dostarcza usług dla jądra. W niektórych systemach mogą istnieć różne algorytmy szeregowania dla zadań RT i non-rt. Algorytm szeregowania musi rozpatrywać wiele czynników: stan zadania (gotowość do wykonania); priorytet zadania; przeciwdziałać zagłodzeniu procesu. Programowanie Systemów Wbudowanych 4/40

SZEREGOWANIE Szeregowanie a wywłaszczanie Wymuszone oddawania kontroli wielozadaniowość z wywłaszczaniem. Dobrowolne oddawanie kontroli wielozadaniowość oparta na współpracy (rzadziej stosowana źle zaprojektowany proces może zdestabilizować system). Programowanie Systemów Wbudowanych 5/40

SZEREGOWANIE STANY WĄTKÓW Wątki posiadają dwa podstawowe stany: zablokowany: oczekuje na zdarzenie; istnieje wiele stanów blokowania w zależności od tego na co proces oczekuje np.: blokada REPLY proces oczekuje na odpowiedź IPC; blokada MUTEX proces oczekuje na mutex; blokada RECEIVE proces oczekuje na komunikat, gotowy: zdolny do użycia CPU; dwa podstawowe stany gotowości: RUNNING proces aktualnie używa CPU; READY proces oczekuje podczas gdy inny proces jest uruchomiony. Programowanie Systemów Wbudowanych 6/40

SZEREGOWANIE STANY WĄTKÓW Pozostałe stany wątków: DEAD wątek jest martwy, nie może być przywrócony do pracy, nigdy nie opuści tego stanu; STOPPED zatrzymany przez sygnał stop, nie będzie kontynuowany dopóki nie dostanie sygnału wznowienia. Programowanie Systemów Wbudowanych 7/40

SZEREGOWANIE PRIORYTETY Wszystkie wątki posiadają priorytety: priorytety są w zakresie od 0 (niski) do 255 (wysoki); mechanizm priorytetów tylko dla wątków w stanie gotowy; jądro zawsze wybiera wątek o najwyższym priorytecie i będący w stanie READY (pełne wywłaszczanie): stan wątku zmienia się na RUNNING, zablokowane wątki nawet nie są rozważane; większość wątków spędza najwięcej swojego czasu w stanie zablokowanym. Programowanie Systemów Wbudowanych 8/40

SZEREGOWANIE PRIORYTETY References: http://www.qnx.com/developers/docs/6.5.0sp1.update/index.html#com.qnx.doc.neutrino_sys_arch/kernel.html#schedu LING 9/40 Programowanie Systemów Wbudowanych 9/40

SZEREGOWANIE ALGORYTMY Algorytm karuzelowy ang. Round Robin: Każdemu procesowi przypisana jest szczelina czasowa ang. timeslice równa 4 x clock period. Clock period zależy od zegara CPU: 40 MHz > f CPU cp = 10 ms; 40 MHz f CPU cp = 1 ms. Wątek: po wykorzystaniu swojego kwantu czasu zostaje wydziedziczony; dobrowolnie oddaje zasoby procesora przed upływem interwału czasu; zostaje wydziedziczony przez proces o wyższym priorytecie. References: http://www.qnx.com/developers/docs/6.5.0sp1.update/index.html#com.qnx.doc.neutrino_sys_arch/kernel.html#scheduling Programowanie Systemów Wbudowanych 10/40

SZEREGOWANIE ALGORYTMY Algorytm sporadyczny ang. Sporadic scheduling: C initial budgetl; L Low priority; N Normal priority; T Replenishment period; R stan zablokowania; Max. liczba możliwych przeszeregowań wpływa na narzuty szeregowania sporadycznego; References: http://www.qnx.com/developers/docs/6.5.0sp1.update/index.html#com.qnx.doc.neutrino_sys_arch/kernel.html#scheduling Programowanie Systemów Wbudowanych 11/40

SZEREGOWANIE ALGORYTMY Algorytm sporadyczny ang. Sporadic scheduling wykorzystywany jest w sytuacji, gdy system reazlizuje Rate Monotonic Analysis (RMA) w celu zapewnienia obsługi procesów periodycznych i aperiodycznych. Dobrze zaprojektowanych system pozwala obsługiwać krytyczne zadania aperiodyczne z zachowaniem terminowego wykonania pozostałych zadań. Programowanie Systemów Wbudowanych 12/40

SZEREGOWANIE ALGORYTMY Algorytm FIFO ang. First In First Out: Wątek uruchomiony; Dobrowolnie zrzeka się kontroli; Zostaje wydziedziczony przez wątek o wyższym priorytecie. References: http://www.qnx.com/developers/docs/6.5.0sp1.update/index.html#com.qnx.doc.neutrino_sys_arch/kernel.html#scheduling Programowanie Systemów Wbudowanych 13/40

SZEREGOWANIE ALGORYTMY Adaptive partitioning: W wielu systemach zachodzi konieczność ochrony aplikacji lub grupy aplikacji przed wpływem innych programów. Statyczne partycje gwarantują procesom dostęp do zasobów wyspecyfikowanych przez konstruktora systemu: podstawowym zasobem branym pod uwagę jest czas CPU, pozostałe to współdzielone zasoby takie jak pamięć, przestrzeń plików (dysk lub flash). Programowanie Systemów Wbudowanych 14/40

SZEREGOWANIE ALGORYTMY Adaptacyjność partycji w QNX Neutrino polega na: możliwości zmiany konfiguracji w trakcie pracy; stałym rozmiarze w danym czasie; automatycznym dostosowaniu się do warunków pracy systemu, dla przykładu: wolny czas CPU jest redystrybuowany do innych partycji; systemy plików mogą rozliczać czas klienta w oparciu o mechanizm tymczasowego przenoszenia wątków pomiędzy partycjami. W związku z powyższym adaptacyjne partycjonowanie jest mniej restrykcyjne i bardziej wydajne w stosunku do innych algorytmów szeregowania. Programowanie Systemów Wbudowanych 15/40

SZEREGOWANIE ALGORYTMY Czym są adaptacyjne partycje? nazwanymi zbiorami reguł; regułami wybranymi do sterowania zachowaniem globalnych zasobów systemu; zbiorem reguł przypisanych danej partycji, które zarządzają działaniem procesów i wątków skojarzonych z tą partycją; Programowanie Systemów Wbudowanych 16/40

SZEREGOWANIE ALGORYTMY Adaptacyjne partycje zapewniają: ochronę pamięci każda z partycji jest dyskretna i sterowana przez jednostkę zarządzającą pamięcią ang. Memory Management Unit MMU; ochronę przed przeciążeniem każda partycja ma zagwarantowany przedział czasu, na wykonywanie powiązanych z nią zadań, wyspecyfikowany przez twórcę systemu; Programowanie Systemów Wbudowanych 17/40

SZEREGOWANIE ALGORYTMY Dlaczego stosujemy adaptacyjne partycje? W celu zapewnienia wydajności RT z gwarancją zapobiegania przeciążeniom. W systemach dynamicznych, statyczne partycję są nieefektywne. Przykład: statyczny podział czasu CPU pomiędzy partycje może prowadzić do marnowania tego zasobu i wprowadzać opóźnienia: jeżeli większość partycji jest wolna, a jedna bardzo obciążona, to obciążona partycja nie otrzymuje dodatkowego czasu CPU, a wątki tła w pozostałych partycjach marnują jego czas, jeżeli przerwanie zostało przypisane do partycji, musi ono poczekać, aż partycja ruszy. To może powodować nieakceptowalne opóźnienia szczególnie w sytuacji sekwencji przerwań. Programowanie Systemów Wbudowanych 18/40

SZEREGOWANIE ALGORYTMY Adaptacyjne partycje vs. Bezpieczeństwo Wiele systemów podatnych jest na ataki DoS ang. Denial of Service DoS w/o attack adaptive partitioning Programowanie Systemów Wbudowanych 19/40

SZEREGOWANIE ALGORYTMY Adaptacyjne partycje vs. Bezpieczeństwo Wiele systemów podatnych jest na ataki DoS ang. Denial of Service DoS with attack adaptive partitioning Programowanie Systemów Wbudowanych 20/40

SZEREGOWANIE ALGORYTMY Planista Adaptacyjnego partycjonowania ang. Adaptive partitioning thread scheduler został zaprojektowany aby rozwiązywać następujące problemy: gwarancji współdzielenia czasu procesora na wyspecyfikowanym minimalnym poziomie w czasie przeciążenia systemu; zapobieganiu monopolizacji systemu przez nieistotne lub niezaufane aplikacje. Programowanie Systemów Wbudowanych 21/40

SZEREGOWANIE ALGORYTMY Partitioning Technology projektant systemu: definiuje partycje dla mechanizmu priorytetowania; przypisuje wątki/procesy do poszczególnych partycji: proces/wątek potomny domyślnie zostaje umieszczony w partycji rodzica; określa minimalne % zużycie procesora dla każdej partycji. Programowanie Systemów Wbudowanych 22/40

SZEREGOWANIE RT LINUX Planista: ładowalny moduł RT Core; moduł stworzony przez użytkownika. Programowanie Systemów Wbudowanych 23/40

SZEREGOWANIE RT LINUX RMS Rate Monotonic Scheduling Algorithm domyślny algorytm szeregowania bazujący na statycznych priorytetach uwzględnia okres wykonywania zadania, krótszy okres zadania wyższy jego priorytet; algorytm optymalny w takim sensie, jeśli zadanie nie jest szeregowalne (nie będzie wykonane na czas) tym algorytmem, to nie będzie szeregowalne według żadnego innego algorytmu bazującego na statycznych priorytetach; Programowanie Systemów Wbudowanych 24/40

SZEREGOWANIE RT LINUX RMS Rate Monotonic Scheduling Algorithm wadą tego algorytmu jest niski limit szeregowalności 69,3%. Oznacza to iż w systemie, w którym zadania zużywają 70% czasu procesora, nie wszystkie zadania będą wykonane na czas. Programowanie Systemów Wbudowanych 25/40

SZEREGOWANIE RT LINUX EDF - Earliest Deadline First obecny algorytm szeregowania bazujący na dynamicznych priorytetach: im bliższy deadline, tym wyższy priorytet; zaletą tego algorytmu jest 100% szeregowalność zadań (teoretycznie); wadę stanowią narzuty związane z przeliczaniem priorytetów. Programowanie Systemów Wbudowanych 26/40

Szeregowanie RT LINUX Szeregowanie zadań nieokresowych algorytmy RMS i EDF nie gwarantują wykonania na czas zadań aperiodycznych inaczej zwanych sporadycznymi, czyli pojawiającymi się w dowolnym czasie; szeregowanie zadań aperiodycznych wykonywane jest przy użyciu następujących algorytmów: Slot shifting algorithms ; Slack Stealing algorithms. Programowanie Systemów Wbudowanych 27/40

Szeregowanie RT LINUX Szeregowanie zadań nieokresowych http://www.idt.mdh.se/utbildning/exjobb/files/tr1152.pdf Programowanie Systemów Wbudowanych 28/40

SZEREGOWANIE ZAKLESZCZENIA Inwersja priorytetów ma miejsce w sytuacji, gdy zadanie o wysokim priorytecie nie otrzymuje czasu procesora, pomimo tego iż powinno; Rozważmy sytuację, w której wysokopriorytetowy wątek oczekuje, aż niskopriorytetowy wątek zwolni zasób. Opóźnienie wynikające z tego faktu może być oszacowane i uwzględnione. Gorszy przypadek następuje wtedy, gdy pojawi się wątek średniopriorytetowy, który nie korzysta ze wspólnego zasobu. Wówczas wątek o średnim priorytecie wydziedziczy wątek o niskim priorytecie. Przez co wątek o wysokim priorytecie nadal pozostaje blokowany. Programowanie Systemów Wbudowanych 29/40

SZEREGOWANIE ZAKLESZCZENIA Inwersja priorytetów P. Majdzik - Programowanie współbieżne. Systemy czasu rzeczywistego Rys.9.4, str.271 Programowanie Systemów Wbudowanych 30/40

SZEREGOWANIE ZAKLESZCZENIA Inwersja priorytetów rozwiązania ICPP Immediate Ceiling Priority Protocol, PPP Priority Protected Protocol Dziedziczenie priorytetów polega na tym, że niskopriorytetowy wątek otrzymuje graniczny priorytet równy najwyższemu priorytetowi wątku, który oczekuje na zasób. Zapobiega to przejmowaniu zasobów procesora przez wątki o średnim priorytecie. Czy ciągle możliwe jest zakleszczenie? Programowanie Systemów Wbudowanych 31/40

SZEREGOWANIE ZAKLESZCZENIA Inwersja priorytetów P. Majdzik - Programowanie współbieżne. Systemy czasu rzeczywistego Rys.9.5, str.272 Programowanie Systemów Wbudowanych 32/40

SZEREGOWANIE ZAKLESZCZENIA Zakleszczenia ang. deadlock rozwiązania Rozważmy sytuację kiedy dziedziczny proces żąda dostępu do innego zasobu, który jest w użyciu przez inny proces o wysokim priorytecie. Programowanie Systemów Wbudowanych 33/40

SZEREGOWANIE ZAKLESZCZENIA Ceiling Semaphore Protocol pułap zasobów, inaczej mówiąc semafor zapewniający wyłączny dostęp do danego zasobu, jest równy najwyższemu priorytetowi zadania, które może przejąć zasób, plus jeden; Zgodnie z protokołem CSP poziom zadania, które zajmuje zasób jest równy pułapowi zasobu. Jest to rozwinięcie idei dziedziczenia priorytetów. Programowanie Systemów Wbudowanych 34/40

SZEREGOWANIE ZAKLESZCZENIA Rozważmy przypadek trzech procesów p1, p2, p3 o priorytetach p1>p2>p3. Pułap zasobu = 1. Programowanie Systemów Wbudowanych 35/40

SZEREGOWANIE ZAKLESZCZENIA Stack Resource Policy (SRP) zgodnie z szeregowaniem SRP zadanie nie może być rozpoczęte dopóki jego priorytet nie jest najwyższy z pośród aktywnych zadań lub poziom wywłaszczenia nie jest wyższy od pułapu systemowego; Poziom wywłaszczenia zadania Ti jest zdefiniowany jako Pi=1/Di gdzie Di czas do zakończenia zadania. Używając algorytmu SRP mamy pewność, że zadanie rozpoczęte nie zostanie zablokowane przed jego zakończeniem. Może zostać jednak wydziedziczone przez zadanie o wyższym priorytecie. SRP wykorzystuje wspólny stos do przechowywania parametrów wszystkich wykonywanych funkcji i zwracanych adresów. Programowanie Systemów Wbudowanych 36/40

SZEREGOWANIE ALGORYTMY cd. Inne algorytmy szeregowania: FCFS (first come, first serve) podobny do FIFO, bardzo słaba interaktywność systemu pojedynczy długi proces blokuje cały system, brak priorytetów nie ma możliwości wywłaszczenia; SJF (shortest job first) pierwsze najkrótsze zadanie, wada problem głodzenia długich procesów; Programowanie Systemów Wbudowanych 37/40

SZEREGOWANIE Szeregowanie Windows Embedded CE: Wątki o tym samym priorytecie szeregowane są algorytmem Round Robin; domyślny kwant czasu wynosi 100 ms, może być zmieniany przez projektanta systemu; 256 poziomów priorytetów; wątki o priorytetach 0 248 są priorytetami czasu rzeczywistego. Programowanie Systemów Wbudowanych 38/40

SZEREGOWANIE Szeregowanie Windows Embedded CE: Pozostałe wątki opisane są w następujący sposób: Programowanie Systemów Wbudowanych 39/40

SZEREGOWANIE Szeregowanie Windows Embedded CE: wątki o wyższym priorytecie, niższym numerze uruchamiane są w pierwszej kolejności; wątek o niższym priorytecie może zostać uruchomiony tylko w przypadku, gdy wszystkie wątki o wyższych priorytetach zakończyły działanie lub są zablokowane. wątki dla, których kwant czasu został ustawiony na 0 mają nieograniczony limit czasu, mogą zostać wydziedziczone przez wątek o wyższym priorytecie lub przez ISR; priorytety wątków są stałe wyjątek stanowi tu zjawisko dziedziczenia priorytetów; Programowanie Systemów Wbudowanych 40/40