BSD - alternatywa dla Linuksa

Podobne dokumenty
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

BSD - alternatywa dla Linuksa

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

Planowanie przydziału procesora

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

BSD - alternatywa dla Linuksa

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

Planowanie przydziału procesora

Prezentacja systemu RTLinux

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

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

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

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Szeregowanie zadań we współczesnych systemach operacyjnych. Szeregowanie zadań w Linux Kernel 2.6

Procesy, wątki i zasoby

Zarządzanie procesorem

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Szeregowanie procesów w Linuksie - trendy rozwojowe

Planowanie przydziału procesora

Planowanie przydziału procesora

Terminarz rozgrywek Ekstraklasy w sezonie 2016/2017

Kurs programowania. Wykład 8. Wojciech Macyna

Procesy, zasoby i wątki

Procesy, zasoby i wątki

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

Planowanie przydziału procesora

Informatyka, systemy, sieci komputerowe

Procesy, zasoby i wątki

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

Planowanie przydziału procesora

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

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















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

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Szeregowanie procesów w Linuksie - trendy rozwojowe

7. Szeregowanie procesów w systemie QNX6 Neutrino

Materiały pomocnicze 1

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

Zarządzanie procesami i wątkami

Zarządzanie wieloserwerowym środowiskiem SAS z wykorzystaniem SAS Grid Managera. Katarzyna Wyszomierska

Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017

Pytania do treści wykładów:

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

BSD alternatywa dla Linuksa




ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Systemy operacyjne III

Planowanie przydziału procesora

Celem wykładu jest przedstawienie zagadnień planowania przydziału procesora, czyli szeregowania procesów w dostępie do procesora.

Simulator of Operating System

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

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

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

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

7. Szeregowanie procesów w systemie QNX6 Neutrino

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Programowanie i struktury danych 1 / 44

Systemy operacyjne. Zajęcia 11. Monitory

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

4. Procesy pojęcia podstawowe

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Lista warunków weryfikacji komunikatów XML dotyczących list oczekujących

Algorytmy i Struktury Danych

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

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

Planowanie przydziału procesora

Mechanizmy pracy równoległej. Jarosław Kuchta

E S - uniwersum struktury stosu

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

4. Procesy pojęcia podstawowe

1. Szeregowanie w systemach czasu rzeczywistego

System operacyjny. Na rysunku przedstawiono diagram pracy wielozadaniowego OS z uruchomionymi jednocześnie kilkoma zadaniami.

Struktury danych: stos, kolejka, lista, drzewo

Materiały pomocnicze 1

4. Procesy pojęcia podstawowe

Transkrypt:

BSD - alternatywa dla Linuksa Różnice i podobieństwa w implementacji jadra (na przykładzie schedulera) Maria Donten Bartłomiej Etenkowski Aleksander Zabłocki Systemy Operacyjne 2006 M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 1 / 10

Plan 1 Scheduler w Linuksie (2.6.17) 2 Scheduler 4BSD 3 Scheduler ULE M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 2 / 10

Scheduler w Linuksie O tym była mowa na wykładzie, na który wszyscyśmy pilnie chodzili. M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 3 / 10

Plan 1 Scheduler w Linuksie (2.6.17) 2 Scheduler 4BSD 3 Scheduler ULE M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 4 / 10

Informacje ogólne w starszych wersjach kod schedulera był rozrzucony po całym jadrze uporzadkowano to dopiero w wersji 5.0 (zachowano jednak ten sam algorytm) domyślny do wersji 5.1 M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 5 / 10

Informacje ogólne w starszych wersjach kod schedulera był rozrzucony po całym jadrze uporzadkowano to dopiero w wersji 5.0 (zachowano jednak ten sam algorytm) domyślny do wersji 5.1 M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 5 / 10

Informacje ogólne w starszych wersjach kod schedulera był rozrzucony po całym jadrze uporzadkowano to dopiero w wersji 5.0 (zachowano jednak ten sam algorytm) domyślny do wersji 5.1 M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 5 / 10

0-127 procesy jadra 128-159 procesy czasu rzeczywistego 160-223 procesy użytkownika 224-225 procesy jałowe (idle) 64 dwukierunkowe listy procesów watek w stanie runnable jest umieszczany w jednej z kolejek (wybór w zależności od priorytetu) wybór pierwszy watek z kolejki procesów z najwyższym priorytetem watek wywłaszczony wraca na koniec swojej kolejki proces jest wyrzucany z kolejki, jeśli zaśnie np. na semaforze M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 6 / 10

0-127 procesy jadra 128-159 procesy czasu rzeczywistego 160-223 procesy użytkownika 224-225 procesy jałowe (idle) 64 dwukierunkowe listy procesów watek w stanie runnable jest umieszczany w jednej z kolejek (wybór w zależności od priorytetu) wybór pierwszy watek z kolejki procesów z najwyższym priorytetem watek wywłaszczony wraca na koniec swojej kolejki proces jest wyrzucany z kolejki, jeśli zaśnie np. na semaforze M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 6 / 10

0-127 procesy jadra 128-159 procesy czasu rzeczywistego 160-223 procesy użytkownika 224-225 procesy jałowe (idle) 64 dwukierunkowe listy procesów watek w stanie runnable jest umieszczany w jednej z kolejek (wybór w zależności od priorytetu) wybór pierwszy watek z kolejki procesów z najwyższym priorytetem watek wywłaszczony wraca na koniec swojej kolejki proces jest wyrzucany z kolejki, jeśli zaśnie np. na semaforze M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 6 / 10

0-127 procesy jadra 128-159 procesy czasu rzeczywistego 160-223 procesy użytkownika 224-225 procesy jałowe (idle) 64 dwukierunkowe listy procesów watek w stanie runnable jest umieszczany w jednej z kolejek (wybór w zależności od priorytetu) wybór pierwszy watek z kolejki procesów z najwyższym priorytetem watek wywłaszczony wraca na koniec swojej kolejki proces jest wyrzucany z kolejki, jeśli zaśnie np. na semaforze M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 6 / 10

0-127 procesy jadra 128-159 procesy czasu rzeczywistego 160-223 procesy użytkownika 224-225 procesy jałowe (idle) 64 dwukierunkowe listy procesów watek w stanie runnable jest umieszczany w jednej z kolejek (wybór w zależności od priorytetu) wybór pierwszy watek z kolejki procesów z najwyższym priorytetem watek wywłaszczony wraca na koniec swojej kolejki proces jest wyrzucany z kolejki, jeśli zaśnie np. na semaforze M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 6 / 10

0-127 procesy jadra 128-159 procesy czasu rzeczywistego 160-223 procesy użytkownika 224-225 procesy jałowe (idle) 64 dwukierunkowe listy procesów watek w stanie runnable jest umieszczany w jednej z kolejek (wybór w zależności od priorytetu) wybór pierwszy watek z kolejki procesów z najwyższym priorytetem watek wywłaszczony wraca na koniec swojej kolejki proces jest wyrzucany z kolejki, jeśli zaśnie np. na semaforze M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 6 / 10

na sztywno ustawiony kwant czasu 0,1 s co cztery tyknięcia zegara (jakieś 0,4 s) przeliczane sa priorytety dla procesów żywych co sekundę procesy sa na nowo kolejkowane (koszt czasowy O(n)!) co tyknięcie jest przeliczana wartość kg estcpu dla procesów żywych... a dla uśpionych po przebudzeniu M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 7 / 10

na sztywno ustawiony kwant czasu 0,1 s co cztery tyknięcia zegara (jakieś 0,4 s) przeliczane sa priorytety dla procesów żywych co sekundę procesy sa na nowo kolejkowane (koszt czasowy O(n)!) co tyknięcie jest przeliczana wartość kg estcpu dla procesów żywych... a dla uśpionych po przebudzeniu M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 7 / 10

na sztywno ustawiony kwant czasu 0,1 s co cztery tyknięcia zegara (jakieś 0,4 s) przeliczane sa priorytety dla procesów żywych co sekundę procesy sa na nowo kolejkowane (koszt czasowy O(n)!) co tyknięcie jest przeliczana wartość kg estcpu dla procesów żywych... a dla uśpionych po przebudzeniu M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 7 / 10

na sztywno ustawiony kwant czasu 0,1 s co cztery tyknięcia zegara (jakieś 0,4 s) przeliczane sa priorytety dla procesów żywych co sekundę procesy sa na nowo kolejkowane (koszt czasowy O(n)!) co tyknięcie jest przeliczana wartość kg estcpu dla procesów żywych... a dla uśpionych po przebudzeniu M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 7 / 10

na sztywno ustawiony kwant czasu 0,1 s co cztery tyknięcia zegara (jakieś 0,4 s) przeliczane sa priorytety dla procesów żywych co sekundę procesy sa na nowo kolejkowane (koszt czasowy O(n)!) co tyknięcie jest przeliczana wartość kg estcpu dla procesów żywych... a dla uśpionych po przebudzeniu M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 7 / 10

Plan 1 Scheduler w Linuksie (2.6.17) 2 Scheduler 4BSD 3 Scheduler ULE M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 8 / 10

Informacje ogólne W schedulerze 4BSD co sekundę trzeba było przechodzić listę wszystkich procesów liniowy koszt czasowy. Scheduler ULE swoja pracę wykonuje w czasie stałym. wprowadzony w wersji 5.0, domyślny od 5.2 mimo lepszego kosztu czasowego często mniej wydajny niż 4BSD M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 9 / 10

Informacje ogólne W schedulerze 4BSD co sekundę trzeba było przechodzić listę wszystkich procesów liniowy koszt czasowy. Scheduler ULE swoja pracę wykonuje w czasie stałym. wprowadzony w wersji 5.0, domyślny od 5.2 mimo lepszego kosztu czasowego często mniej wydajny niż 4BSD M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 9 / 10

Informacje ogólne W schedulerze 4BSD co sekundę trzeba było przechodzić listę wszystkich procesów liniowy koszt czasowy. Scheduler ULE swoja pracę wykonuje w czasie stałym. wprowadzony w wersji 5.0, domyślny od 5.2 mimo lepszego kosztu czasowego często mniej wydajny niż 4BSD M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 9 / 10

dla każdego procesora trzy kolejki priorytetowe (struct runq): run, next i idle. wykonywane sa procesy z kolejki run (dopóki nie opustoszeje, wtedy zamieniana jest z kolejka next) procesy z kolejki idle wykonywane sa tylko wtedy, kiedy kolejki run oraz next sa puste procesy o priorytecie < 160 oraz procesy interaktywne po wykonaniu wracaja do kolejki run, pozostałe laduj a w kolejce next współczynnik interaktywności jest niezależny od nice próg interaktywności jest ustawiony na sztywno w sched ule.c (i jest równy 30). M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 10 / 10

dla każdego procesora trzy kolejki priorytetowe (struct runq): run, next i idle. wykonywane sa procesy z kolejki run (dopóki nie opustoszeje, wtedy zamieniana jest z kolejka next) procesy z kolejki idle wykonywane sa tylko wtedy, kiedy kolejki run oraz next sa puste procesy o priorytecie < 160 oraz procesy interaktywne po wykonaniu wracaja do kolejki run, pozostałe laduj a w kolejce next współczynnik interaktywności jest niezależny od nice próg interaktywności jest ustawiony na sztywno w sched ule.c (i jest równy 30). M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 10 / 10

dla każdego procesora trzy kolejki priorytetowe (struct runq): run, next i idle. wykonywane sa procesy z kolejki run (dopóki nie opustoszeje, wtedy zamieniana jest z kolejka next) procesy z kolejki idle wykonywane sa tylko wtedy, kiedy kolejki run oraz next sa puste procesy o priorytecie < 160 oraz procesy interaktywne po wykonaniu wracaja do kolejki run, pozostałe laduj a w kolejce next współczynnik interaktywności jest niezależny od nice próg interaktywności jest ustawiony na sztywno w sched ule.c (i jest równy 30). M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 10 / 10

dla każdego procesora trzy kolejki priorytetowe (struct runq): run, next i idle. wykonywane sa procesy z kolejki run (dopóki nie opustoszeje, wtedy zamieniana jest z kolejka next) procesy z kolejki idle wykonywane sa tylko wtedy, kiedy kolejki run oraz next sa puste procesy o priorytecie < 160 oraz procesy interaktywne po wykonaniu wracaja do kolejki run, pozostałe laduj a w kolejce next współczynnik interaktywności jest niezależny od nice próg interaktywności jest ustawiony na sztywno w sched ule.c (i jest równy 30). M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 10 / 10

dla każdego procesora trzy kolejki priorytetowe (struct runq): run, next i idle. wykonywane sa procesy z kolejki run (dopóki nie opustoszeje, wtedy zamieniana jest z kolejka next) procesy z kolejki idle wykonywane sa tylko wtedy, kiedy kolejki run oraz next sa puste procesy o priorytecie < 160 oraz procesy interaktywne po wykonaniu wracaja do kolejki run, pozostałe laduj a w kolejce next współczynnik interaktywności jest niezależny od nice próg interaktywności jest ustawiony na sztywno w sched ule.c (i jest równy 30). M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 10 / 10

dla każdego procesora trzy kolejki priorytetowe (struct runq): run, next i idle. wykonywane sa procesy z kolejki run (dopóki nie opustoszeje, wtedy zamieniana jest z kolejka next) procesy z kolejki idle wykonywane sa tylko wtedy, kiedy kolejki run oraz next sa puste procesy o priorytecie < 160 oraz procesy interaktywne po wykonaniu wracaja do kolejki run, pozostałe laduj a w kolejce next współczynnik interaktywności jest niezależny od nice próg interaktywności jest ustawiony na sztywno w sched ule.c (i jest równy 30). M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 10 / 10

Sprawiedliwy podział zadań między procesorami interprocessor interrupt procesor, który nie ma w danej chwili nic do roboty, przejmuje zadanie od innego procesora sched balance.c funkcja wykonywana dwa razy na sekundę procesory z największa i najmniejsza liczba procesów w kolejce run dziela się zadaniami M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 11 / 10

Sprawiedliwy podział zadań między procesorami interprocessor interrupt procesor, który nie ma w danej chwili nic do roboty, przejmuje zadanie od innego procesora sched balance.c funkcja wykonywana dwa razy na sekundę procesory z największa i najmniejsza liczba procesów w kolejce run dziela się zadaniami M. Donten, B. Etenkowski, A. Zabłocki () BSD - alternatywa dla Linuksa SO 2006 11 / 10