Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Procesy, wątki, wielozadaniowość.

Podobne prezentacje


Prezentacja na temat: "SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Procesy, wątki, wielozadaniowość."— Zapis prezentacji:

1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Procesy, wątki, wielozadaniowość

2 Proces

3 Wielozadaniowość i wieloprocesorowość równoległa Wątek = sekwencja instrukcji Proces = kontekst + wątki Jeden procesor może wykonywać tylko jeden wątek na raz Wielozadaniowość z wywłaszczaniem Przełączanie kontekstów Każdy proces ma ten sam zakres adresów pamięci

4 Wielozadaniowość i wielodostęp jednozadaniowość - kolejne zadanie wykonywane po zakończeniu poprzedniego wielozadaniowość - wykonywanie wielu zadań w „tym samym” czasie. W rzeczywistości zadania są wykonywane kolejno w przydzielonych im przedziałach czasowych (chyba że jest kilka procesorów) wielodostęp - w tym samym czasie z jednego komputera korzysta wielu użytkowników

5 ZARZĄDZANIE PROCESAMI Intuicyjnie przez proces rozumiemy ciąg kolejno wykonywanych przez procesor i logicznie powiązanych ze sobą instrukcji. Z punktu widzenia systemu operacyjnego każdy proces jest skojarzony z logiczną strukturą danych utrzymywaną przez jądro systemu i zawierającą niezbędne informacje pozwalające systemowi decydować, kiedy proces powinien być wykonywany, a kiedy zawieszony, kiedy jakie zasoby systemowe może mieć przydzielone, czy należy czasowo zawartość jego segmentów pamięci przepisać na dysk do pliku wymiany, jakim kosztem jego wykonywania należy obciążyć jego właściciela itp.

6 Ogólny graf stanów procesu: nowy gotowyaktywny Nowy zatrzymany czekający

7 Podstawowe dane o procesie wykorzystywane przez system operacyjny do planowania i zarządzania są zebrane w pamięci jądra systemu w postaci bloku kontrolnego procesu (Process Control Block). Zawartość pamięci operacyjnej przydzielonej procesowi oraz informacje przechowywane w bloku kontrolnym nazywamy kontekstem procesu.

8 Podstawowe dane o procesie na ogół zawiera on następujące informacje: - identyfikator procesu; - stan procesu (np. wg diagramu na poprzedniej stronie); - stan rejestrów procesora (utrwalony w momencie czasowego zawieszenia procesu); - informacje istotne dla planowania przydziału procesora (priorytet procesu, wskaźniki do położeń w kolejkach szeregujących zamówienia na zasoby itp.); - informacje istotne dla zarządzania pamięcią (zawartości rejestrów bazowych i granicznych, tablic stron w pamięci itp.); - informacje do rozliczeń (zużyty czas procesora, zużyte czasy wykorzystania urządzeń zewnętrznych, ograniczenia czasowe, numer rachunku i in.); - informacje o stanie przydziału urządzeń zewnętrznych procesowi (urządzenia aktualnie przydzielone, zamówienia oczekujące na realizację, wykaz otwartych plików itp.).

9 Dwa procesy nazywamy współbieżnymi, jeżeli każdy z nich rozpoczął się przed zakończeniem drugiego procesu. Przykłady 1) procesy są współbieżne 2) procesy są współbieżne 3) procesy nie są współbieżne t t t Uwaga. O współbieżności możemy mówić zarówno w przypadku wykonywania procesów na tym samym komputerze, jak i na oddzielnych komputerach.

10 W literaturze można napotkać następujące określenia:  współbieżny (concurrent)  równoległy (parallel)  rozproszony (distributed) Są one używane w różnych kontekstach. Zazwyczaj pierwsze dwa używane są zamiennie, przy czym nieco częściej określenie „równoległy” oznacza „wykonywany współbieżnie na tym samym komputerze”. Natomiast określenie „rozproszony” oznacza „wykonywany współbieżnie na oddzielnych komputerach połączonych w sieć”.

11 Obliczenia równoległe (na jednym komputerze) mogą odbywać się jako: 1) rzeczywiście równoległe - jeśli komputer ma wiele procesorów i każdy procesor obsługuje co najwyżej jeden proces w dowolnej chwili czasu; 2) pozornie równoległe - jeśli czas pracy jednego procesora dzielony jest na krótkie odcinki przydzielane różnym procesom na zasadzie przeplotu.

12 Współbieżność wykonywania procesów jest opłacalna ze względu na: 1) lepsze wykorzystanie zasobów fizycznych (sprzętu); 2) lepsze wykorzystanie zasobów logicznych (na przykład informacji zawartych w plikach); 3) przyspieszenie obliczeń (jeśli są wykonywane w warunkach rzeczywistej równoległości); 4) ułatwienie konstrukcji dużych programów (modularność); 5) wygoda użytkowników (przykład: kopiowanie za pośrednictwem schowka w Windows).

13 Dwa procesy współbieżne nazywamy niezależnymi, jeżeli fakt wykonywania któregokolwiek z nich w żaden sposób nie wpływa na wykonywanie drugiego. W przeciwnym przypadku procesy nazywamy zależnymi lub współpracującymi. Uwaga W rzeczywistości to, czy dwa procesy uznamy za niezależne, czy za zależne, w wielu przypadkach zależy od poziomu abstrakcji (ignorowania szczegółów) na jakim rozpatrujemy działanie tych procesów.

14 Własności procesu niezależnego: - żaden inny proces nie komunikuje się z nim (nie wpływa na jego kontekst); - działa deterministycznie (wynik zależy wyłącznie od danych i stanu początkowego); - może być dowolną liczbę razy wstrzymywany i wznawiany.

15 Własności procesu współpracującego: - jego bieżący stan jest zależny zarówno od jego poprzedniego stanu, jak i od stanów innych procesów; - może wykazywać niedeterminizm (obliczane wyniki mogą zależeć od względnej kolejności wykonywania procesów w systemie); - zachowanie procesu może nie być przewidywalne (na przykład może czasem zapętlać się, a czasem nie). Uwaga Programy współbieżne powinny być projektowane tak, aby nie wykazywały losowości wykonania.

16 Tradycyjnie procesy w systemie wykonują się w odrębnych przestrzeniach adresowych pamięci, mogąc komunikować się ze sobą jedynie za pośrednictwem plików lub łączy komunikacyjnych. Takie procesy nazywane są czasem procesami ciężkimi (ich utworzenie wiąże się z dość dużym narzutem czasowym ze strony systemu operacyjnego). Dużo później, niż koncepcja procesu pojawiła się koncepcja wątku (thread), nazywanego też procesem lekkim. Zbiór wątków pracujących nad wspólnym zadaniem obliczeniowym wykonuje wspólny kod programu (co najwyżej różne jego podprogramy) i operuje we wspólnej przestrzeni adresowej.

17 Uwaga Rzeczywisty obraz sytuacji we współczesnych systemach operacyjnych jest bardziej skomplikowany, niż by wynikało z powyższych definicji. Procesy ciężkie mogą mieć wspólny segment kodu (gdyż jest on przeznaczony tylko do odczytu), dopóki jeden z nich nie wczyta nowego kodu z pliku. Mogą też współdzielić segment danych, dopóki jest on wykorzystywany przez nie tylko do odczytu. Ponadto mogą mieć przydzielony dodatkowy segment pamięci wspólnej (dzielonej), który jest wykorzystywany jako jeden z możliwych środków komunikacji międzyprocesowej.

18 Wątki posiadają najbardziej istotne cechy procesów - dysponują własnymi zestawami rejestrów, a w szczególności wskaźnikami instrukcji (zatem mają przydzielone procesory - rzeczywiste lub wirtualne). Mają też własne stosy (więc mogą wywoływać funkcje). Wiele cech wątków zależy od konkretnej implementacji - w Linuksie zaimplementowana jest biblioteka wątków odpowiadająca normie POSIX (pthread).

19 program procesor IP dane procesor 2 IPdane procesor n IP procesor 1 IP proces jednowątkowy proces wielowątkowy

20 Jeżeli jeden proces powołuje do życia drugi proces, to ten pierwszy jest nazywany procesem rodzicielskim, a ten drugi - procesem potomnym. Tylko proces rozpoczynający pracę systemu operacyjnego nie ma swojego procesu rodzicielskiego. Proces potomny może otrzymać wstępny przydział zasobów wprost od systemu operacyjnego (niezależnie od zasobów dzierżawionych przez proces rodzicielski), ale zazwyczaj dziedziczy zasoby procesu rodzicielskiego. W szczególności dziedziczy zawartość segmentów pamięci operacyjnej - kod programu i dane. Proces rodzicielski może też przekazać swojemu potomkowi pewne dane początkowe (wartości zmiennych środowiska).

21 Możliwe są dwa scenariusze wykonywania procesów: 1) proces rodzicielski zostaje zawieszony aż do zakończenia pracy jego procesu potomnego (tak jest na przykład w systemie DOS); 2) proces rodzicielski i wszystkie jego procesy potomne wykonują się współbieżnie (tak jest na przykład w systemie Unix); Możliwe sposoby zakończenia procesu: 1) zakończenie naturalne (dojście do ostatniej instrukcji, przekazanie informacji rodzicowi); 2) zakończenie przedwczesne (usunięcie przez inny, uprawniony do tego proces);

22 Jeżeli nastąpi zakończenie procesu, który ma współbieżnie wykonywane procesy potomne, to również możliwe są różne scenariusze: 1) może nie mieć to wpływu na wykonywanie procesów potomnych (w systemie Unix są one „adoptowane” przez systemowy proces Init (numer 1) i od tej chwili pamiętają jego numer jako numer procesu rodzicielskiego); 2) może nastąpić natychmiastowe usunięcie wszystkich procesów potomnych, ich potomków itd. (całego „drzewa enealogicznego” procesów) - jest to tak zwane zakończenie kaskadowe.

23 Zatrzymanie lub zawieszenie wykonywania procesu przez procesor może nastąpić wskutek: 1) zakończenia procesu; 2) przejścia do stanu oczekiwania (na przydział urządzenia zewnętrznego lub przekazanie informacji o zakończeniu procesu potomnego); 3) przerwania (związanego z upływem kwantu czasu lub nastąpieniem oczekiwanego czy nieoczekiwanego zdarzenia). Jeżeli zmiana przydziału procesora może nastąpić tylko w przypadku 1) lub w przypadku 2) ale tylko na czas oczekiwania na przydział urządzenia, mówimy o niewywłaszczeniowym algorytmie przydziału procesora. W pozostałych przypadkach mówimy o algorytmie wywłaszczeniowym.

24 Zmiana przydziału procesora wiąże się z: 1) zapamiętaniem parametrów dotychczasowego procesu (zawartości rejestrów procesora itd.) w bloku kontrolnym procesu (jeśli proces ma być jeszcze kontynuowany); 2) załadowaniem parametrów kolejnego procesu wybranego przez planistę (nowego lub kontynuowanego). Zespół czynności systemu operacyjnego wiążący się z 1) i 2) nazywany jest przełączaniem kontekstu. Od prędkości przełączania kontekstu w istotnym stopniu zależy wydajność systemu.

25 Pytania


Pobierz ppt "SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Procesy, wątki, wielozadaniowość."

Podobne prezentacje


Reklamy Google