Simulator of Operating System



Podobne dokumenty
Mechanizmy stosowane w systemach operacyjnych - system dydaktyczny

(Rozdział Opis wewnętrznego języka)

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

System operacyjny MACH

Jądro systemu operacyjnego

Kolejki FIFO (łącza nazwane)

Prezentacja systemu RTLinux

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

Planowanie przydziału procesora

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Systemy operacyjne III

Podstawowe zagadnienia

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

Procesy, wątki i zasoby

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Wykład 3: Implementacja programów wbudowanych

Planowanie przydziału procesora

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

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

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

Proces y i y w i ąt ą ki

Czujniki obiektowe Sterowniki przemysłowe

Informatyka, systemy, sieci komputerowe

Działanie systemu operacyjnego

Wielozadaniowość w systemie Microsoft Windows

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

Działanie systemu operacyjnego

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Działanie systemu operacyjnego

Wprowadzenie do systemów operacyjnych

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

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

Wykład 4. Tablice. Pliki

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

Zarządzanie procesorem

Język programowania PASCAL

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

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

7. Szeregowanie procesów w systemie QNX6 Neutrino

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

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

Rok akademicki: 2016/2017 Kod: IIN s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

4. Procesy pojęcia podstawowe

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

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

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

Zarządzanie procesami i wątkami

Systemy Czasu Rzeczywistego (SCR)

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

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

(Rozdział Instrukcja obsługi programu)

Wykład 2 Składnia języka C# (cz. 1)

ForPascal Interpreter języka Pascal

POSIX ang. Portable Operating System Interface for Unix

Działanie systemu operacyjnego

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

4. Procesy pojęcia podstawowe

Systemy Operacyjne - zarządzanie procesami

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Wprowadzenie do systemu Minix

1. Etapy rozwoju systemów komputerowych

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

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

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

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

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

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

projektowanie systemu

Materiały pomocnicze 1

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

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

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

PRZEWODNIK PO PRZEDMIOCIE

Planowanie przydziału procesora

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

PRZEWODNIK PO PRZEDMIOCIE

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

Planowanie przydziału procesora

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

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Klient-Serwer Komunikacja przy pomocy gniazd

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Rok akademicki: 2030/2031 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

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

Systemy czasu rzeczywistego wstęp

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Transkrypt:

Mechanizmy stosowane w systemach operacyjnych system dydaktyczny Simulator of Operating System Sebastian Świerczyna Promotor: dr inż. Jarosław Bilski Politechnika Częstochowska Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka Specjalność Inżynieria Oprogramowania i Systemy Informatyczne

Cel prac I (część praktyczna aplikacja) Stworzenie narzędzia służącego do przeprowadzania symulacji nastepujących zjawisk: Komunikacja międzyprocesowa Obsługa urządzeń wejścia/wyjścia Przenoszenie procesów między kolejkami systemowymi Szeregowanie zadań

Omówienie spotykanych struktur systemów operacyjnych Dostarczenie opisu funkcji systemowych służących do implementacji symulowanych zjawisk Omówienie zagadnienia szeregowania zadań Ujęcie w aspekcie systemu: UNIX Windows NT Cel prac II (część opisowa pracy) SOS (symulator systemu operacyjnego)

Motywacja Ułatwienie zrozumienia procesów zachodzących wewnątrz systemu operacyjnego Pomoc dla tworzących aplikacje budowane z wielu procesów lub wątków Pomoc dla korzystających w sposób bezpośredni z funkcji systemowych (komunikacja międzyprocesowa, dostęp do urządzeń)

Struktury systemów operacyjnych (1/3) - struktura jednolita Najstarsza ze struktur System jest jednym wielkim programem Wprowadzanie zmian, rozszerzeń bardzo mocno utrudnione Stosowana w systemach czasu rzeczywistego Przedstawiciele: ecos, MicroC/OS II, OS 9, OSE, OSEK/VDX, psos, RSX 11, RT 11, RTOS UH, VRTX, VxWorks, Windows CE

Struktury systemów operacyjnych (2/3) - struktura warstwowa Podzielenie systemu na moduły Moduły połączone w niezależne, logiczne warstwy Warstwy komunikują się z sobą Uproszczona pielęgnowalność Modelowy system T.H.E. Nowe funkcje Istniejące funkcje Przedstawiciele: UNIX, RC 4000, VME, VMS Ukryte funkcje Warstwa M Warstwa M-1

Struktury systemów operacyjnych (3/3) - struktura mikrojądra Aplikacja Win32 Aplikacja POSIX Komunikaty Serwer Win32 Serwer POSIX Komunikaty MIKROJĄDRO Podzielenie systemu na równorzędne moduły, Komunikacja między modułami za pomocą komunikatów, przy udziale mikrojądra Maksymalna niezależnośc modułów łatwość pielęgnowania systemu, wprowadzania rozszerzeń Przedstawiciele: WINDOWS NT, AIX,GNU Hurd, Minix, MorphOS, QNX, BeOS

Szeregowanie zadań Zadania: Podział czasu procesora pomiędzy współistniejące procesy Maksymalne wykorzystanie czasu procesora Mechanizmy: Zmiana aktualnie wykonywanego procesu dyspozytor (ang. dispatcher) Wybór procesu, który ma być wykonywany planista (ang. scheduler)

Szeregowanie zadań graf stanów procesu Nowe procesy Procesy częściowo wykonane KOLEJKA PROCESORA Procesy wykonywalne Procesy wykonywane PROCESORY CENTRALNE Zamówienie może być zrealizowane Procesy wybrane przez dyspozytora Procesy zablokowane KOLEJKI POD SEMAFORAMI Proces zgłosił zamówienie, które nie może zostać zrealizowane Procesy wykonane

Szeregowanie zadań UNIX (1/2) Algorytmy szeregowania zadań: SCHED_FIFO przydzielanie czasu procesom z kolejki procesów gotowych zgodnie z zasadami kolejki FIFO (ang. First In First Out). Proces, który otrzymał procesor przetrzymuje go, do czasu aż sam go zwolni, albo przejdzie w stan niewykonywalny SCHED_RR podobnie jak SCHED_FIFO, z tą różnicą, że proces otrzymuje pewien kwant czasu, po którego upływie zostaje przeniesiony na koniec kolejki procesów gotowych SCHED_OTHER podobnie jak SHED_RR, z tą różnicą, że priorytet procesu jest obliczany dynamicznie. Jest on sumą priorytetu statycznego oraz czasu, jaki pozostał procesowi z jego kwantu

Szeregowanie zadań UNIX (2/2) Klasy procesów: idle proces jałowy procesy zwykłe znakomita większość procesów w systemie. Szeregowane według polityki SCHED_OTHER procesy czasu rzeczywistego wymagają bardzo szybkiej obsługi, procesy tego typu może tworzyć tylko administrator. Szeregowane według polityki SCHED_RR, SCHED_FIFO

Szeregowanie zadań WINDOWS NT Wartości priorytetów: 0 proces jałowy 1 15 procesy użytkownika 16 31 procesy czasu rzeczywistego Szczególne własności: Algorytm szeregowania działa na poziomie wątków Mechanizm doładowania i zaniku polega na zwiększeniu priorytetu wątku, który obudził się z oczekiwania na jakieś zdarzenie. Takie doładowanie stopniowo zanika. Za każdym razem, gdy wątek w pełni wykorzysta swój kwant czasu, jego priorytet zmniejszy się o 1

Funkcje systemowe UNIX (1/2) Tworzenie procesów: fork utworzenie kopii procesu execve podmienienie programu wykonywanego przez proces Komunikaty: msgget utworzenie lub otwarcie kolejki wiadomości msgsnd umieszczenie w kolejce komunikatów nowej wiadomości msgrcv pobranie wiadomości z kolejki komunikatów

Funkcje systemowe UNIX (2/2) Semafory: semget utworzenie lub uzyskanie dostępu do zestawu semaforów semop wykonanie operacji typu czekaj/sygnalizuj na zestawie semaforów Urządzenia: open utworzenie lub otwarcie urządzenia close zamknięcie urządzenia read odczyt danych z urządzenia write zapis danych do urządzenia lseek odczyt lub zmiana pozycji kursora urządzenia

Funkcje systemowe Windows NT (1/2) Tworzenie procesów: CreateProcess utworzenie nowego procesu na podstawie programu CreateProcessAsUser podobnie jak funkcja CreateProcess. Dodatkowo możliwe jest ustawienie kontekstu w jakim zostanie utworzony proces Komunikaty: SendMessage wysłanie komunikatu do okna (lub grupy okien). Proces wysyłający jest wstrzymywany do momentu obsłużenia wiadomości. SendNotifyMessage podobnie jak SendMessage, z tą różnicą, że funkcja powraca natychmiast, nie oczekując na obsłużenie wiadomości GetMessage pobranie wiadomości z kolejki komunikatów, jeśli nie ma odpowiedniej wiadomości proces jest wstrzymywany PeekMessage podobnie jak GetMessage, jeśli nie ma odpowiedniej wiadomości funkcja powraca natychmiast

Semafory: CreateSemaphore utworzenie nowego lub otwarcie semafora WaitForSingleObject wykonanie operacji czekaj RelaseSemaphore wykonanie operacji sygnalizuj lub pobranie bieżącej wartości semafora Urządzenia: Funkcje systemowe Windows NT (2/2) CreateFile utworzenie nowego lub otwarcie istniejącego urządzenia ReadFile odczyt danych z urządzenia WriteFile zapis danych do urządzenia SetFilePointer odczyt lub zmiana pozycji kursora urządzenia

Podstawowe własności: Wzorowany na języku C Trzy typy zmiennych: INT, FLOAT, STRING Instrukcje iteracyjne: FOR, IF Instrukcje blokowe zbiory rozkazów zamknięte w nawiasy klamrowe Komentarze Wewnętrzny język SOS Komunikacja z użytkownikiem za pomocą funkcji do obsługi konsoli Wyposażony w funkcje biblioteczne poszerzające możliwości języka: mechanizmy komunikacji międzyprocesowej, mechanizmy umożliwiające synchronizacje procesów, narzędzia do obsługi urządzeń,

Obsługa procesów: CREATE_PROCES utworzenie nowego procesu na podstawie programu GET_MY_ID pobranie PID'u procesu Komunikaty: Wewnętrzny język SOS funkcje biblioteczne (1/3) SEND wysłanie komunikatu do procesu lub grupy procesów. BLOCK_SEND podobnie jak SEND, z tą różnicą, że funkcja blokuje proces do momentu jej odebrania RECEIVE pobranie wiadomości z kolejki komunikatów BLOCK_RECEIVE podobnie jak RECEIVE, z tą różnicą, że funkcja blokuje proces, do momentu, gdy w kolejce znajdzie się odpowiednia wiadomość MSG_RESULT rezultat ostanio wykonanej funkcji

Wewnętrzny język SOS funkcje biblioteczne (2/3) Semafory: CREATE_SEMAPHORE utworzenie nowego semafora RELASE_SEMAPHORE usunięcie semafora OPEN_SEMAPHORE pobranie uchwytu do semafora WAIT wykonanie operacji czekaj na semaforze WAIT_MULTIPLE wykonanie operacji czekaj na zestawie semaforów SIGNALIZE wykonanie operacji sygnalizuj na semaforze SEM_RESULT rezultat ostanio wykonanej funkcji

Urządzenia: Wewnętrzny język SOS funkcje biblioteczne (3/3) MAKE_DEVICE utworzenie nowego urządzenia RELASE_DEVICE usunięcie urządzenia OPEN_DEVICE otwarcie urządzenia w żądanym trybie CLOSE_DEVICE zamknięcie urządzenia CLEAR_DEVICE usunięcie danych z urządzenia DEV_READ odczyt danych z urządzenia WRITE zapis danych do urządzenia SEEK zmiana pozycji kursora urządzenia POS odczytanie bieżącej pozycji kursora urządzenia SIZE pobranie ilości danych w urządzeniu DEV_RESULT rezultat ostanio wykonanej funkcji

Wewnętrzny język SOS przykład kodu programu INT(i); # deklaracja zmiennej typu całkowitego FLOAT(f); # deklaracja zmiennej typu zmiennoprzecinkowego STRING(s); # deklaracja zmiennej typu łańcuchowego i= 2; # operacje przypisania f=0.123; s=" 123.456"; f=strtofloat(s); # funkcja konwertująca łańcuch > liczba s=floattostr(f); # funkcja konwertująca liczba > łańcuch s=s+" tu string"; # konkatenacja łańcuchów i=f; # podstawienie wartości innej zmiennej f=(3+3/i+f*2) 3; # przykład operacji arytmetycznej i=((1>=1) (1!=2))&&(i==l); # zastosowanie operatorów logicznych