Systemy operacyjne II



Podobne dokumenty
Prezentacja systemu RTLinux

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Działanie systemu operacyjnego

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

Podstawowe zagadnienia

Jądro systemu operacyjnego

Działanie systemu operacyjnego

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

E-3IZ1-05-s5. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

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

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

Architektura komputerów

Architektura komputerów II - opis przedmiotu

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

Q E M U.

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

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

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

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

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

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

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

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Wstęp do Informatyki. Klasyfikacja oprogramowania

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja

Wykład 3: Implementacja programów wbudowanych

Systemy operacyjne. Paweł Pełczyński

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

Budowa systemów komputerowych

System operacyjny MACH

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Prezentacja emulatora QEMU Zajęcia SO

Wprowadzenie do systemów operacyjnych

Kernel Kompilacja jądra

WIELODOSTĘPNE SYSTEMY OPERACYJNE 1 (SO1)

Systemy operacyjne III

dr inż. Jarosław Forenc

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

Sprzęt komputerowy Hardware. ETI I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

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]

PRZEWODNIK PO PRZEDMIOCIE

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

KARTA KURSU. Systemy operacyjne

Wykład 13. Linux 2.0.x na maszynach SMP. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Systemy operacyjne. Wojciech Kwedlo Wydział Informatyki PB, p. 127 aragorn.pb.bialystok.pl/~wkwedlo

PRZEWODNIK PO PRZEDMIOCIE

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Urządzenia wejścia-wyjścia

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

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

Warstwy systemu Windows 2000

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne)

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

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

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Wprowadzenie do systemu Minix

Systemy operacyjne III

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

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

Wątki jądra. Maciej Szwaja

Linux -- u mnie działa!

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

dr inż. Jarosław Forenc

Futex (Fast Userspace Mutex) Łukasz Białek

System komputerowy. System komputerowy

Zaliczenie przedmiotu:

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

Administrowanie systemami informatycznymi Kod przedmiotu

Systemy Operacyjne Wirtualizacja

E-I-0006-s3. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

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

SystimPlus. Dokumentacja (FAQ) dla wersji: v

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Materiały pomocnicze do laboratorium z Architektury Komputerów II.

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

Systemy operacyjne. Wojciech Kwedlo Wydział Informatyki PB, p. 205 aragorn.pb.bialystok.pl/~wkwedlo/dydaktyka.

Procesory sygnałowe Digital Signal Processors. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

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

KARTA PRZEDMIOTU. Systemy operacyjne C5

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

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Interfejs diagnostyczny OBD Diamex DX35, złącze OBD II, USB

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

Wykład 10 Zarządzanie pamięcią

Wykład 14. Rozwój systemu w kolenych wersjach jądra. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Laboratorium - Zarządzanie pamięcią wirtualną w systemie Windows XP

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

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Wykład 13. Systemy wieloprocesorowe. Wojciech Kwedlo Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

Mikroprocesor Operacje wejścia / wyjścia

Transkrypt:

Systemy operacyjne II Wojciech Kwedlo Wydział Informatyki PB, p. 205 wkwedlo@ii.pb.bialystok.pl aragorn.pb.bialystok.pl/~wkwedlo Pracownia specjalistyczna: Wojciech Kwedlo Krzysztof Bandurski Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Treść zajęć W semestrze pierwszym nastąpiło przedstawienie teoretycznych podstaw działania systemów operacyjnych. Semestr drugi poświęcony jest przedstawieniu jądra rzeczywistego systemu operacyjnego. Systemem tym jest Linux 2.0.36. Dlaczego taka stara wersja? 2.0.36 to oczywiście jądro przestarzałe z punktu widzenia bieżącego stanu Linuksa. Jednak: Prosta (w porównaniu z najnowszymi wersjami) postać jądra ułatwi jego zrozumienie przez studentów. Niewielkie wymagania sprzętowe pozwalają na w miare bezpiecznie uruchomienie na emulatorze (w naszym przypadku qemu). Jednocześnie nawet te przestarzałe jądro spełnia wszystkie wymagania stawiane dorosłemu systemowi operacyjnemu. Nie wykluczamy możliwości przejścia na nowsze jądra w przyszłości. Egzamin: Kod prostego sterownika urządzenia + pytania testowe Pracownia specjalistyczna: jedno zadania wprowadzające i dwaprojekty. Wojciech Kwedlo, Systemy Operacyjne II -2- Wydział Informatyki PB

Literatura Bardzo dużo pozycji na temat jądra Linux-a, poniższe dotyczą jądra 2.0.x M. Beck, H. Bohm, M. Dziadzka, U. Kunitz, R. Magnus, D. Verworner, Linux Kernel - Jądro systemu, wydanie II, Wydawnictwo MIKOM, Warszawa, 2000. A. Rubini. Linux sterowniki urządzeń. Pierwsze wydanie dotyczy starszego jądra, drugie dostępne w sieci, niestety po angielsku. D. A. Rusling. The Linux kernel. Strona www dr Janiny Mincer-Daszkiwicz z Instytutu Informatyki UW. Wojciech Kwedlo, Systemy Operacyjne II -3- Wydział Informatyki PB

Plan wykładu Organizacja kodu jądra. Procesy: structura task_struct, stany procesów, kolejki procesów, sygnały. Sterowniki urządzeń, urządzenia blokowe i znakowe, moduły jądra. Algorytm szeregowania procesów, funkcja schedule. Implementacja wywołań systemowych. Zarządzenie pamięcią: alokator pamięci jądra funkcja kmalloc, stronicowanie, pamięć wirtualna, pamięć podręczna stron. Pamięć podręczna buforów. Systemy plików: mechanizm VFS, system plików ext2. Linux 2.0 na architekturach SMP. Dalsze wersje jądra. Wojciech Kwedlo, Systemy Operacyjne II -4- Wydział Informatyki PB

Pracownia specjalistyczna Realizacja 2 projektów polegających ma wprowadzeniu znacznych modyfikacji w jądrze. Przykładowe tematy: Implementacja nowego systemu plików. Implementacja sterownika urządzenia. Implementacja nowego mechanizmu zastępowania stron. Realizowane na emulowanej maszynie (emulator qemu wraz z maszyną maszyną wirtualną z zainstalowanym Linuxem pobrać od prowadzących). Zajęcia w systemie Linux, sale 222 oraz 223m, architektura x86_64, emulator pracuje także pod Windows [powodzenia :)] Realizacja projektu może być związana z przygotowaniem raportu opisującego podsystemy jądra, których będzie dotyczył dany projekt Wojciech Kwedlo, Systemy Operacyjne II -5- Wydział Informatyki PB

Konfiguracja maszyny wirtualnej w laboratoriach 222,223 Maszyna gospodarza /mnt/loop qemu-system-x86_64 Emulowany komputer hd0.img hd0.img.bak hd1.img hd0.img główny system plików i partycja swap. Można zamontować na /mnt/root na maszynie gospodarze. hd1.img dysk z kopią źródeł Linuksa tylko do odczytu. Nie wolno jednocześnie mieć zamontowanego podkatalogu w /mnt/loop i uruchamiać emulator. hd0.img.bak przegrać na hd0.img jak emulowany dysk nie nadaje się do użytku :) hd1.img tu jest kod źródłowy jądra, tylko do odczytu. Wszelkie patche robimy względem tego katalogu. Wojciech Kwedlo, Systemy Operacyjne II -6- Wydział Informatyki PB

Linuks to system Wieloprogramowy w pamięci może być wiele programów (procesów). Z ochroną procesy są przed sobą chronione. Z wielodostępem (wielu użytkowników może pracować jednocześnie). Z pamięcią wirtualną realizowaną przez stronicowanie na żądanie. Większość systemów Uniksowych udostępnia te funkcje. Wojciech Kwedlo, Systemy Operacyjne II -7- Wydział Informatyki PB

Pozycja jądra w systemie Każdy proces może wykonywać się w trybie jądra lub użytkownika. Tryb użytkownika: proces wykonuje instrukcje swojego programu. Tryb jądra: Proces zażądał przez jądro wykonania usługi np. wywołał funkcję open (otwarcie pliku). Tryb jądra jest trybem uprzywilejowanym. Pewne instrukcje np. blokada przerwań są dopuszczalne tylko w jądrze. Procesy w trybie użytkownika są chronione przed sobą. Awaria kodu jądra -> awaria systemu jako całości. (Tylko) jądro obsługuje przerwania (wywołanie funkcji systemowej to też przerwanie, tylko programowe). Idealnie procesy powinny korzystać z urządzeń wejścia-wyjścia (komunikacja z portami) za tylko pomocą jądra, ale Linux pozwala na obejście (dla użytkownika uprzywilejowanego). Możemy powiedzieć, że jądro Izoluje procesy od sprzętu Dostarcza wygodnych abstrakcji i usług (np. plik, sam proces to też abstrakcja). Wojciech Kwedlo, Systemy Operacyjne II -8- Wydział Informatyki PB

Synchronizacja jądra W jądrze może przebywać wiele procesów. Na przykład Proces A wywołuje funkcje read aby odczytać dane z pliku, wykonuje się w trybie jądra, trzeba zaczekać aż dane nadejdą (transmisja DMA), więc jest usypiany, planista przełącza procesor do procesu B, a ten również wchodzi do jądra. Musimy więc zadbać o synchronizację. Jądro Linuksa 2.0.x (ale późniejsze już nie), oparte jest na klasycznej zasadzie: Kod jądra jest niewywłaszczalny. Procesowi, który wykonuje się w trybie jądra nie zostanie odebrany procesor w celu przekazania innemu procesowi. Proces tylko może dobrowolnie zrzec się procesora, np. uśpić się jak w powyższym scenariuszu. Ponadto proces może być przerwany przerwaniem (ale cli() przed tym zabezpiecza). Upraszcza to znacznie synchronizację jądra. Wystarczy dbać: o blokowanie przerwań gdy handler przerwania odwołuje się do tej samej struktury danych co aktualna ścieżka kodu jądra. O pozostawienie danych w stanie spójnym, jeżeli proces w trybie jądra będzie usypiany. Jest to główna przyczyna stosowanie tej wersji jądra na zajęciach. W wersjach (2.2.x i późniejszych jest o wiele trudniej). Uwaga: czasami uśpić proces mogą pozornie niewinne funkcje jądra. Wojciech Kwedlo, Systemy Operacyjne II -9- Wydział Informatyki PB

Zanim zaczniemy coś zmieniać w jądrze należy pamiętać, że Nie mamy dostępu do funkcji biblioteki standardowej języka C jednakże część z tych funkcji została zaimplementowana np. funkcje z rodziny memcpy. Błędy w jądrze mogą spowodować: awaryjne przerwanie procesu (Oops) jeżeli proces ten wykonywał się w trybie jądra. Na przykład gdy proces wywołał funkcje systemową. Panikę jądra (kontrolowane zawieszenie), po której musimy zrestartować maszynę. Wojciech Kwedlo, Systemy Operacyjne II -10- Wydział Informatyki PB

Organizacja kodu jądra./kernel zasadnicza część jądra, szeregowanie procesów: funkcja schedule../mm zarządzanie pamięcią, stronicowanie, alokator pamięci jądra kmalloc/kfree../init funkcje wykonywane przy starcie jądra np. start_kernel./fs implementacja VFS (wirtualny system plików). Podkatalogi w./fs zawierają implementacje poszczególnych systemów plików./devices sterowniki urządzeń../net obsługa sieci../arch/i386 część systemu zależna od architektury../arch/i386/kernel funkcje jądra (np. obsługa przerwań)./arch/i386/mm zarządzanie pamięcią. /arch/i386/boot tu trafia jądro (bzimage) po kompilacji Wojciech Kwedlo, Systemy Operacyjne II -11- Wydział Informatyki PB

Pożyteczne funkcje - printk Odpowiednik printf, jednakże nie obsługuje formatów zmiennoprzecinkowych których i tak nie wolna używać w jądrze. include <linux/kernel.h> Przykład: printk( X jest rowne %d\n,x); Można porzedzić symbolem określającym poziom komunikatu, komunikaty o poziomie niższym od poziomu progowego zawsze trafiają na konsolę. Na przykład trafi zawsze na konsolę printk(kern_emerg X jest rowne %d\n,x); Wojciech Kwedlo, Systemy Operacyjne II -12- Wydział Informatyki PB

Pożyteczne funkcje: kmalloc/kfree Odpowiadają za alokację/dealokację pamięci. void * kmalloc(size_t size, int priority) rozmiar nie może być większy od 128KB. Priorytet GFP_KERNEL zakłada, że jądro wykonuje się w kontekście jakiegoś procesu, proces może zostać uśpiony, jeżeli brak pamięci. GFP_ATOMIC wywoływane z procedury obsługi przerwania, może zakończyć się niepowodzeniem void kfree (void *ptr) Wojciech Kwedlo, Systemy Operacyjne II -13- Wydział Informatyki PB