Jądro systemu operacyjnego

Podobne dokumenty
Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Wprowadzenie do systemów operacyjnych

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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

Sieciowe Systemy Operacyjne

1. Etapy rozwoju systemów komputerowych

Architektura systemów informatycznych. system operacyjny podstawowe pojęcia, budowa

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

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

Wprowadzenie do systemu Minix

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Działanie systemu operacyjnego

System operacyjny komputera Informacje podstawowe

Przegląd współczesnych systemów operacyjnych

Działanie systemu operacyjnego

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Działanie systemu operacyjnego

System operacyjny System operacyjny

Prezentacja systemu RTLinux

System komputerowy. System komputerowy

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

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

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

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

Q E M U.

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

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

Komputery przemysłowe i systemy wbudowane

Struktury systemów operacyjnych

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

Mikrojądra. Omówienie i przegląd

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Działanie systemu operacyjnego

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

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

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

Systemy Czasu Rzeczywistego (SCR)

Czujniki obiektowe Sterowniki przemysłowe

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Systemy operacyjne II

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

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

Architektura i administracja systemów operacyjnych

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

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

Systemy operacyjne III

Architektura systemów komputerowych. dr Artur Bartoszewski

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

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

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

Systemy operacyjne. Paweł Pełczyński

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

LEKCJA TEMAT: Zasada działania komputera.

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 13 ARCHITEKTURA SYSTEMU WINDOWS. Opracował Sławomir Zieliński

Kernel Kompilacja jądra

Nowoczesne systemy operacyjne

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

Systemy operacyjne III

POSIX ang. Portable Operating System Interface for Unix

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

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

Użytkownik Użytkownik Użytkownik Użytkownik... kompilatory edytor testu syst. bazy danych gry PROGRAMY UŻYTKOWE SYSTEM OPERACYJNY SPRZĘT KOMPUTEROWY

Podstawowe zagadnienia

Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

Temat. Budowa systemu komputerowego Zakładka 1. Elementy tworzące stanowisko komputerowe.

Mikroprocesor Operacje wejścia / wyjścia

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

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

Budowa karty sieciowej; Sterowniki kart sieciowych; Specyfikacja interfejsu sterownika sieciowego; Open data link interface (ODI); Packet driver

Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania

AKADEMIA GÓRNICZO-HUTNICZA. Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI. SyncFile

4. Procesy pojęcia podstawowe

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

Rejestr HKEY_LOCAL_MACHINE

SYSTEMY OPERACYJNE. na przykładzie. MS Windows XP

Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań

Systemy czasu rzeczywistego

Technologia informacyjna. Urządzenia techniki komputerowej

Procesy, wątki i zasoby

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

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

Budowa systemów komputerowych

1. Co to jest system operacyjny

Simulator of Operating System

Monitor maszyn wirtualnych

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Struktury systemów operacyjnych

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Systemy operacyjne III

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

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

1.1 Wprowadzenie Organizacja operacji we/wy System wejścia/wyjścia... 6

4. Procesy pojęcia podstawowe

Zarządzanie pamięcią w systemie operacyjnym

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

Transkrypt:

Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między składnikami systemu, synchronizacja procesów, zarządzanie pamięcią, zarządzanie urządzeniami, przydzielanie czasu procesora procesom, obsługa błędów.

Jądra systemów operacyjnych jądro monolityczne Wszystkie zadania są wykonywane przez jądro, będące jednym, dużym programem działającym w trybie jądra. Przykładami takiego jądra mogą być: UNIX, Linux, OpenBSD, FreeBSD. mikrojądro z monolitycznego jądra zostaje tylko jego podstawowa część, a części odpowiedzialne za bardziej wyrafinowane funkcje są wydzielone do funkcjonalnych bloków albo realizowane jako zwykłe procesy w trybie użytkownika.

Jądra systemów operacyjnych nanokernel działanie zbliżone do techniki działania mikrojądra, ale nanojądro jest jeszcze mniejsze. exokernel architektura będąca odmianą nanojądra. Cechą wyróżniającą jest możliwość zarządzania zasobami systemu przez nieuprzywilejowanego użytkownika, a rola jądra sprowadza się do zabezpieczania zasobów. cachekernel w tej technice jądro systemu buforuje obiekty systemowe takie jak wątki czy przestrzenie adresowe tak jak sprzęt komputerowy buforuje pamięć. Jądra aplikacji trybu użytkownika są odpowiedzialne za ładowanie tych danych i ponowne ich zapisanie stosując specyficzne dla danej aplikacji mechanizmy.

Jądra systemów operacyjnych jądro hybrydowe kompromis między architekturą jądra monolitycznego i mikrojądra. W krytycznych usługach - np. stos sieci - usługi są na stałe wkompilowane w główny kod jądra, inne usługi pozostają oddzielone od głównego jądra i działają jako serwery (w przestrzeni jądra). Dzięki temu rozwiązaniu możliwe jest zachowanie wydajności jądra monolitycznego dla kluczowych usług.

Jądro monolityczne

Jądro monolityczne Większa część funkcji jądra zaimplementowana jest w pojedynczym obrazie pamięci, który ładowany jest na stałe do pamięci komputera przez bootloader. Zdarza się jednak, że do jądra monolitycznego (zwanego wtedy modularnym) dopisywana jest możliwość ładowania modułów, które jednak nie realizują najbardziej podstawowych funkcji jądra. Jądro monolityczne cechuje się wyższą wydajnością niż mikrojądro, zwłaszcza w systemach jednoprocesorowych oraz przy obciążaniu systemu tylko jednym procesem. Z drugiej strony awaria (np. błąd programisty) w dowolnym miejscu jądra monolitycznego może spowodować awarię całego systemu (np. błędne żądanie dostępu do pamięci w sterowniku każdego, nawet nieistotnego urządzenia, może zniszczyć dane na dysku, albo "zawiesić" cały system

Mikrojądro

Mikrojądro Zawiera tylko najbardziej niezbędne elementy, takie jak funkcje zarządzania wątkami, komunikacją między- procesową, oraz obsługą przerwań i wyjątków. Wszelkie inne zadania, takie jak np. obsługa systemów plików, sieci, sprzętu realizowane są w przestrzeni użytkownika przez osobne serwery. Mniejszymi wersjami mikrojądra są: nanojądro (nanokernel) i pikojądro (picokernel). Systemami opartymi na mikrojądrze są Amoeba, MINIX, QNX, BeOS, Haiku czy Hurd, mikrojądrami są także (używane w Hurdzie) Mach i L4. Firma Microsoft pracuje nad własnym rozwiązaniem tego typu w projekcie Singularity.

Jądro hybrydowe

Jądro hybrydowe oparte na zmodyfikowanych architekturach jądra monolitycznego oraz mikrojądra używanych w systemach operacyjnych. Jądro jest strukturą podobną do mikrojądra, ale zaimplementowaną jak jądro monolityczne. W przeciwieństwie do mikrojądra, wszystkie (lub prawie wszystkie) usługi wykonywane są w przestrzeni jądra. Podobnie jak w jądrze monolitycznym, nie ma strat w wydajności wywołanych przepływem komunikatów mikrojądra i przełączaniem kontekstu między przestrzenią użytkownika a jądra. Jednakże, podobnie jak w jądrach monolitycznych, nie ma korzyści wynikających z umieszczenia usług w przestrzeni użytkownika. Z tego typu jądra korzystają m.in. systemy operacyjne z rodziny Mac OS X i Windows.

Linux - jądro monolityczne

Jądro Linux Jądro Linux jest w dużym stopniu zgodne ze standardami ANSI i POSIX, obsługuje wielozadaniowość, wielowątkowość, wielobieżność, pamięć wirtualną, biblioteki współdzielone, ładowanie na żądanie, współdzielony kod wykonywalny (ang. copyon-write), dobre zarządzanie pamięcią i obsługę sieci TCP/IP. Jest ono jądrem monolitycznym z ładowalnymi modułami. Sterowniki urządzeń i rozszerzenia jądra zwykle pracują w trybie ring 0, z pełnym dostępem do sprzętu; nieliczne jednak działają w trybie użytkownika. W przeciwieństwie do typowych jąder monolitycznych, sterowniki urządzeń są zwykle kompilowane jako moduły, które można załadować i wyładować na działającym systemie. Podobnie, sterowniki mogą być wywłaszczone w określonych warunkach. Ta funkcja została dodana w celu poprawnej obsługi przerwań sprzętowych i systemów wieloprocesorowych.

Jądro Solaris

QNX - mikrojądro rozmiar ok. 8kB (jądro UNIX > 700kB), stąd nazwa mikrojądra - Neutrino. To, co odróżnia ten system ten od rodziny UNIX, to przede wszystkim struktura modułowa oraz architektura oparta o przesyłanie komunikatów (model klient - serwer). QNX daje możliwość zdeterminowania czasu reakcji na zdarzenia występujące w systemie. dzięki rozbudowanym możliwościom definiowania priorytetów, QNX jest stosowany jako system służący do sterowania automatyką przemysłową, gdzie pewne zdarzenia są krytyczne (np. otwarcie zaworu bezpieczeństwa w zbiorniku kiedy gwałtownie wzrasta ciśnienie) i muszą być zawsze obsłużone na czas.

QNX budowa mikrojądra neutrino (~8kB)

QNX budowa mikrojądra IPC - (ang. Interprocess communication) - obsługuje komunikację między procesami. Network Interface - przeźroczysta komunikacja pomiędzy procesami w obrębie sieci lokalnej. Hardware Interrupt Redirector - przechwytuje pojawiające się przerwania oraz przekazuje je do odpowiednich procesów obsługujących je. Część ta sama nie obsługuje przerwań! Realtime Scheduler - decyduje, który proces ma uzyskać dostęp do procesora w danej chwili (POSIX 1003.4 - dotyczy zagadnień czasu rzeczywistego).

Jądro Windows NT Modularna architektura Windows NT składa się z dwóch głównych warstw: trybu użytkownika i trybu jądra. Programy i podsystemy w trybie użytkownika są ograniczone do zasobów systemowych, do których mają dostęp; w trybie jądra natomiast posiadają nieograniczony dostęp do pamięci systemowej i urządzeń zewnętrznych. Jądra systemów operacyjnych w technologii NT są określane jako jądra hybrydowe, ale właściwie są to jądra monolityczne o strukturze zbliżonej do mikrojądra. Architektura NT składa się z jądra hybrydowego, warstwy abstrakcji sprzętowej (HAL), sterowników i egzekutora. Wszystkie te moduły działają w trybie jądra. Usługi o wyższym poziomie abstrakcji są implementowane przez egzekutor.

Tryb użytkownika w technologii Windows NT składa się z podsystemów, umożliwiających przekazywanie zamówień wejścia/wyjścia za pomocą menedżera wejścia/wyjścia do odpowiedniego sterownika programowego, działającego w trybie jądra. Warstwa użytkownika Windows 2000 składa się z dwóch podsystemów: podsystemu środowiska (uruchamia aplikacje napisane dla wielu różnych typów systemów operacyjnych) i podsystemu integralności (uruchamia specyficzne dla systemu funkcje w zastępstwie podsystemu środowiska). Tryb jądra w Windows 2000 ma pełny dostęp do sprzętu i zasobów systemowych komputera. Tryb jądra blokuje dostęp dla usług i aplikacji trybu użytkownika do krytycznych elementów systemu operacyjnego, do których nie powinny mieć one dostępu.

Egzekutor komunikuje się ze wszystkimi podsystemami trybu użytkownika. Obsługuje wejście/wyjście, zarządza obiektami, zabezpieczeniami, oraz procesami. Jądro umieszczone jest pomiędzy HAL i Egzekutorem, zapewniając synchronizację wieloprocesorową, szeregowanie zadań i przerwań wraz z ich przydzielaniem, oraz zarządzanie obsługą pułapek i rozdzielaniem wyjątków. Jądro jest odpowiedzialne również za inicjalizację sterowników sprzętu podczas uruchamiania systemu. Sterowniki poziomu jądra występują na trzech poziomach: wysokim, pośrednim, oraz niskim. Windows Driver Model (WDM - model tworzenia sterowników dla Windows) występuje na poziomie pośrednim i został zaprojektowany tak, aby zachować zgodność binarną i kodu źródłowego pomiędzy Windows 98 a Windows 2000. Sterowniki niskiego poziomu są albo sterownikami Windows NT starszego typu, kontrolującymi urządzenie bezpośrednio, albo szyną systemową typu Plug-and-play.