Top Banner
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
21

Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

Mar 01, 2019

Download

Documents

vocong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

Mechanizmy stosowane w systemach operacyjnych­ system dydaktyczny

 

Simulator of Operating System

Sebastian Świerczyna

Promotor: dr inż. Jarosław Bilski

Politechnika CzęstochowskaWydział Inżynierii Mechanicznej i Informatyki

Kierunek InformatykaSpecjalność Inżynieria Oprogramowania

i Systemy Informatyczne

Page 2: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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ń

Cel prac I 

(część praktyczna ­ aplikacja)

Page 3: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · 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

 SOS (symulator systemu operacyjnego)

Cel prac II 

(część opisowa pracy)

Page 4: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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średniz funkcji systemowych  (komunikacja międzyprocesowa, 

dostęp do urządzeń)

Motywacja

Page 5: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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 (1/3)

- struktura jednolita

Page 6: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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.”

Przedstawiciele:  UNIX, RC­4000, VME, VMS

Struktury systemów operacyjnych (2/3)

- struktura warstwowa

Nowe funkcje

Istniejące funkcje

Ukryte funkcje

Warstwa M-1

Warstwa M

Page 7: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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

Struktury systemów operacyjnych (3/3)

- struktura mikrojądraAplikacja

Win32

Serwer

Win32 Komunikaty

Aplikacja

POSIX

Serwer

POSIX

MIKROJĄDRO

Komunikaty

Page 8: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi 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ć wykonywanyplanista (ang. scheduler)

Szeregowanie zadań

Page 9: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

Szeregowanie zadańgraf stanów procesu

KOLEJKA

PROCESORA

PROCESORY

CENTRALNE

KOLEJKI

POD

SEMAFORAMI

Nowe

procesy

Procesy

wykonane

Procesy częściowo

wykonane

Procesy wybrane

przez dyspozytora

Procesy

wykonywalne

Procesy

wykonywane

Procesy

zablokowane Proces zgłosił zamówienie, które nie może zostać

zrealizowane

Zamówienie

może być zrealizowane

Page 10: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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 (1/2)

Page 11: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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ńUNIX (2/2)

Page 12: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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ątekw pełni wykorzysta swój kwant czasu, jego priorytet zmniejszy się o 1

Szeregowanie zadańWINDOWS NT

Page 13: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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 (1/2)

Page 14: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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 – UNIX (2/2)

Page 15: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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

Funkcje systemowe – Windows NT (1/2)

Page 16: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

Semafory:

CreateSemaphore – utworzenie nowego lub otwarcie semafora

WaitForSingleObject – wykonanie operacji czekaj

RelaseSemaphore – wykonanie operacji sygnalizuj lub pobranie bieżącej wartości semafora

Urządzenia:

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

Funkcje systemowe – Windows NT (2/2)

Page 17: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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

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ń,

Wewnętrzny język SOS

Page 18: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

Obsługa procesów:CREATE_PROCES – utworzenie nowego procesu na podstawie programu 

GET_MY_ID – pobranie PID'u procesu

Komunikaty: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 SOSfunkcje biblioteczne (1/3)

Page 19: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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

Wewnętrzny język SOSfunkcje biblioteczne (2/3)

Page 20: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

Urządzenia: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 SOSfunkcje biblioteczne (3/3)

Page 21: Mechanizmy stosowane w systemach operacyjnych system ...kik.pcz.pl/soold/laboratorium/SOS/Prezentacja.pdf · Przenoszenie procesów między kolejkami systemowymi Szeregowanie zada

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

Wewnętrzny język SOSprzykład kodu programu