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

Podobne dokumenty
Wprowadzenie do systemu Minix

Jądro systemu operacyjnego

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

Systemy operacyjne oparte na mikrojądrze

Systemy oparte na mikrojądrze

System operacyjny MACH

Mikrojądra. Omówienie i przegląd

Działanie systemu operacyjnego

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Prezentacja systemu RTLinux

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

Automatyczne testowanie jądra Linuksa

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

Działanie systemu operacyjnego

Struktury systemów operacyjnych

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Systemy oparte na mikrojądrze. 9 grudnia 2008

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Systemy operacyjne oparte na mikrojądrze. Krzysztof Kryniecki Konrad Kurdej Karol Strzelecki

System komputerowy. System komputerowy

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Q E M U.

Wstęp do Informatyki. Klasyfikacja oprogramowania

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

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

Wprowadzenie do systemów operacyjnych

1. Etapy rozwoju systemów komputerowych

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Systemy operacyjne oparte na mikrojądrze. Mateusz Błażewicz Krzysztof Geras Artur Matan

L4Ka::Pistachio Mikrojądra mogą być wydajne

Systemy operacyjne III

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

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Komputery przemysłowe i systemy wbudowane

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

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

Simulator of Operating System

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Systemy operacyjne. Paweł Pełczyński

ochrona w systemie operacyjnym

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

Linux Kernel. Wprowadzenie

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

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

projektowanie systemu

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

ECDL Podstawy programowania Sylabus - wersja 1.0

Oprogramowanie Alternatywne

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Systemy operacyjne III

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

5. Model komunikujących się procesów, komunikaty

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Sieciowe Systemy Operacyjne

Systemy operacyjne II

2. Informacje o mechanizmie limitów

SELinux. SELinux Security Enhanced Linux. czyli. Linux o podwyższonym bezpieczeństwie

Architektura i administracja systemów operacyjnych

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Klient-Serwer Komunikacja przy pomocy gniazd

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

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

26.X.2004 VNC. Dawid Materna

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

Bezpieczeństwo aplikacji w systemie Tizen

Tworzenie sterowników dla FreeBSD. Michał Hajduk

Bazy danych 2. Wykład 1

Linux vs rootkits. - Adam 'pi3' Zabrocki

Inżynieria oprogramowania

Podstawowe zagadnienia

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

System operacyjny System operacyjny

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu

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

System operacyjny komputera Informacje podstawowe

Przegląd współczesnych systemów operacyjnych

Proces y i y w i ąt ą ki

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

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

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

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

1 Zapoznanie się ze środowiskiem Xenomai.

KARTA KURSU. Administracja i integracja systemów operacyjnych

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

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Transkrypt:

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

Systemy oparte na mikrojądrze Jądro systemu jest bardzo małe Architektura mocno modualrna Systemy takie charakteryzują się: Bezpieczeństwem Stabilnością Odpornością na błędy Wolniejszym działaniem Samoleczeniem

Microkernel Jądra takich systemów nie udostępniają usług systemowych a jedynie mechanizmy potrzebne do ich implementacji: Niskopoziomowe zarządzenie przestrzeniami adresowymi Niskopoziomowe zarządzanie zasobami procesora scheduling, zarządzanie watkami/procesami IPC komunikacja między procesami Autoryzacja serwerów Obsługa przerwań

Microkernel Zasada minimalności Lindtke'go: A A concept is tolerated inside the microkernel only if moving it outside the kernel, i.e., permitting competing implementations, would prevent the implementation of the system's required functionality.

Microkernel Separation of mechanism and policy logika zaszyta w jądrze nie może być nadpisana w procesach trybu użytkownika, więc nie powinno jej się tam umieszczać

Microkernel Usługi systemowe dostarczane są przez serwery uruchomione w trybie użytkownika. Serwery uruchamiane są w trybie użytkownika Przykładowe serwery: Serwer systemu plików Serwer sterowników Serwer stosu protokołów Serwer procesów

Porównanie architektur

Mikrojądro wywołania systemowe Wywołania systemowe, uruchamiane przez procesy, zamieniane są na wiadomości wysyłane przez IPC do odpowiednich serwerów.

Przykłady systemów operacyjnych Amiga Exec / SG GNU Hurd Mach L4 Minix3 MkLinux Coyotos Integrity QNX Mac OS*

Zastosowania systemów Minix 3 Mac OS Integrity QNX Ogólnie systemy oparte na mikrojądrach używane są w systemach wbudowanych.

MINIX3 (Mini unix) Stworzony przez Andrew S. Tanenbaum'a Krótka historia: v.1.0 dodany do książki Operating Systems Design and Implementation w 1987 r. v.1.5 rok 1991 v.2.0 rok 1997, dodany do do drugiego wydania książki Tanenbauma, zgodny z POSIX v.3.1.2 rok 2006, wydanie z narzędziami UNIXowymi (gcc, perl, vi...), dodane X11

MINIX3 opis systemu Komunikacja IPC jest synchroniczna W trybie jądra działają wątki: Sys Task Clock Task Kod sterujący przepływem komunikatów Samoleczenie reincarnation server 4 warstwy systemu (następny slajd) (Dozwolone kanały i odbiorcy wiadomości są na stałe wpisane do tablicy procesów i zależne od klasy procesu (usr/sys/srv/drv) (src/kernel/table.c))

MINIX3 architektura

MINIX3 kernel Sys task w nieskończonej pętli odbiera od procesów żądania (w postaci komunikatów) sys_call, sprawdza ich poprawność i wykonuje odpowiednie czynności

MINIX3 kernel Clock task za każdym odebraniem komunikatu od zegara sprzętowego sprawdza, czy aktualnie uruchomiony proces nie przekroczył swojego quantum, obsługuje też rejestrowalne timer'y

MINIX3 kernel Przerwania sprzętowe są mapowane na komunikaty wysyłane do odpowiednio zarejestrowanych sterowników Dodatkowo na kod kernel'a przypada obsługa komunikatów

MINIX3 scheduling Podział procesów na trzy klasy: TSK SRV USR Procesy TSK są nie wywłaszczalne (wątki jądra) Procesy TSK i SRV są traktowane jako procesy systemowe Dodatkowy proces IDLE ustawiony na najniższy priorytet

MINIX3 sterowniki Są procesami w przestrzeni użytkownika Komunikują się ze swoimi urządzeniami za pomocą wywołań systemowych Odbierają zapytania od serwerów i wykonują je w nieskończonej pętli Odbierają opakowane w wiadomości przerwania sprzętowe

MINIX3 Szczegóły użytych w MINIX'ie rozwiązań.

MINIX SYS_TASK (kernel/system.c)

MINIX SYS_TASK c.d.

MINIX CLOCK_TASK (kernel/clock.c) Dzieli struktury danych z resztą jądra Obsługuje przerwanie zegara (HARD_INT): Uruchamia w swoim kontekście zarejestrowane funkcje budzików Uruchamia schedulera, gdy aktywny proces wykorzystał cały swój czas Nalicza czas aktywnego procesu

MINIX CLOCK_TASK c.d.

MINIX CLOCK_TASK c.d.

MINIX komunikaty w systemie Komunikaty są stałej wielkości Do przesyłu komunikatów używa się zawsze takiej samej struktury (niezależnie od typu) Komunikaty mogą być wysyłane i odbierane poprzez: SENDREC SEND RECEIVE NOTIFY (niskopoziomowe)

MINIX scheduler Dokładnie tyle kolejek ile jest priorytetów Proces po skolejkowaniu trafia: Na początek kolejki, jeśli nie wykorzystał jeszcze swojego czasu (time slice) Na koniec, w p.p. W funkcji pick_proc() wybierany jest następny proces do uruchomienia. Jest to proces o najniższym priorytecie ze wszystkich gotowych

MINIX scheduler (c.d.)

MINIX scheduler (c.d.)

MINIX scheduler (c.d.)

MINIX scheduler (c.d.)

MINIX przepływ komunikatów Omówienie kodu z minix_src.pdf

A jak to jest w praktyce z MINIX'em? Wg Tanenbaum'a 5 10% straty Rzeczywistość pokazuje inaczej Trudności w testowaniu Testowanie Benchmarki: IOTest, UnixBench Maszyna testowa + ograniczenia

IOTest 2.31 7 6 5 4 3 Minix 3.1.2 Linux 2.6.17 2 1 0 512 1024 2048 4096 8192 16384 32768 65536

UnixBench 4.0.1 Test arytmetyczny System Call Skrypty powłoki Fork Łącza nienazwane Operacje na plikach 256 Minix 3.1.2 Linux 2.6.17 Operacje na plikach 1024 Operacje na plikach 4096 Dhrystone 2 Średnio 0 100 200 300 400 500 600 700 800

Torvalds Tanenbaum Minix jako matka Linuksa Komentarz A. Tanenbaum'a Debata na comp.os.minix Wady i zalety, Minix kontra Linux Co zostało po czasie?

Mikrojądro podsumowanie Zalety: Odporność na błędy Stabilność Przyjemne testowanie Mniejsze jądro łatwiej zoptymalizować... i zrozumieć

Mikrojądro podsumowanie Wady: Mniejsza wydajność (o tym więcej za chwilę) Wielowątkowość trudniejsza w obsłudze Trudne wykrywanie błędów w komunikacji Trudność w projektowaniu

Pytania?