Koncepcja procesu. Procesy i wątki. Diagram stanów procesu. Stan procesu. Blok kontrolny procesu Process Control Block (PCB)



Podobne dokumenty
Stan procesu. Procesy i zarządzanie procesorem. Koncepcja procesu. Diagram stanów procesu

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

Proces y i y w i ąt ą ki

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

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

Procesy i wątki. Wątki. Procesy

projektowanie systemu

2.1 Pojęcie wątku Modele wielowątkowości Wybrane zagadnienia wielowątkowości Wątki POSIX... 18

Zarządzanie procesami i wątkami

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

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

5. Model komunikujących się procesów, komunikaty

Procesy, wątki i zasoby

Struktury systemów operacyjnych

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Programowanie współbieżne Wykład 2. Iwona Kochańska

System operacyjny MACH

Zarządzanie procesorem

Klient-Serwer Komunikacja przy pomocy gniazd

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Informatyka, systemy, sieci komputerowe

Systemy operacyjne III

IPC: Kolejki komunikatów

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

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

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

Działanie systemu operacyjnego

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

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

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Działanie systemu operacyjnego

4. Procesy pojęcia podstawowe

LEKCJA TEMAT: Zasada działania komputera.

Systemy operacyjne Procesy i wątki

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

Zarządzanie procesami (omawiane zagadnienia)

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

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

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Systemy Operacyjne - zarządzanie procesami

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

Procesy, zasoby i wątki

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 2. Zasoby i procesy w systemach i sieciach komputerowych

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Architektura komputerów. Układy wejścia-wyjścia komputera

Programowanie współbieżne i rozproszone

Systemy operacyjne. Paweł Pełczyński

Mechanizmy z grupy IPC

Zarządzanie pamięcią w systemie operacyjnym

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych. Wykład 6 Procesy.

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

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Struktury systemów operacyjnych

Przetwarzanie rozproszone

1.1 Definicja procesu

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013

WYKŁAD: Przetwarzanie rozproszone typu klient-serwer.

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

Systemy operacyjne III

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Informatyka. informatyka i nauki komputerowe (computer science)

Wywoływanie procedur zdalnych

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

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

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

Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot

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

Architektura komputerów

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

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Temat zajęć: Tworzenie i obsługa wątków.

Jądro systemu operacyjnego

1. Rola pamięci operacyjnej

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

Prezentacja systemu RTLinux

Programownie współbieżne i rozproszone Jędrzej Ułasiewicz 1. Komunikacja. Model procesów komunikujących się poprzez pamięć dzieloną

Pamięć współdzielona

Wywoływanie procedur zdalnych

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

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Architektura systemu komputerowego

Wywoływanie procedur zdalnych

Interfejs transmisji danych

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

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

dr inż. Grażyna KRUPIŃSKA D-10 pokój 227 WYKŁAD 12 WSTĘP DO INFORMATYKI

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

Transkrypt:

Procesy i wątki Koncepcja procesu Koncepcja procesu Szeregowanie procesów (process scheduling) Operacje na procesach Procesy współpracujące Komunikacja między procesami Komunikacja w systemach typu Klient Serwer Wątki. System operacyjny wykonuje różnorodne programy: System wsadowy (batch system) wykonuje zadania (jobs) Systemy z podziałem czasu (time-shared systems) wykonują programy użytkownika lub prace (tasks). Często używamy zamiennie słowa zadanie i proces. Process to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny. Do procesu należą: Licznik programu Stos (stack) Sekcja danych. 4.1 4.2 Stan procesu Diagram stanów procesu W trakcie wykonywania proces zmienia swój stan: new: tworzenie procesu. running: instrukcje są wykonywane waiting: proces oczekuje na zdarzenie ready: proces czeka na przydział procesora terminated: proces zakończony. 4.3 4.4 Blok kontrolny procesu Process Control Block (PCB) Process Control Block (PCB) Zawiera informacje dotyczące każdego procesu: Stan procesu (Process state) Licznik programu (Program counter) Rejestry procesora (CPU registers) Informacje o planowaniu przydziału procesora Informacje o zarządzaniu pamięcią Informacje do rozliczeń (Accounting information) Informacje o stanie we/wy (I/O status information) 4.5 4.6

Przełączanie kontekstu Przełączanie kontekstu Realizacja: program koordynujący (dispatcher) Gdy procesor jest przydzielany następnemu procesowi, system musi zapamiętać stan starego procesu i pobrać stan procesu nowego. Podczas przełączania kontekstu system nie wykonuje innej pracy. Zależne od sprzętu. 4.7 4.8 Kolejki szeregowania procesów Kolejki procesów gotowych i kolejki do urządzeń Kolejka zadań (job queue) lista wszystkich procesów w systemie (przechowywanych w pamięci masowej w oczekiwaniu na przydział pamięci operacyjnej). Kolejka procesów gotowych (ready queue) lista wszystkich procesów rezydujących w pamięci, gotowych i oczekujących na wykonanie. Kolejki do urządzeń we/wy (device queues) lista procesów oczekujących dostępu do urządzenia we/wy. Proces przechodzi przez różne kolejki. 4.9 4.10 Diagram kolejek w planowaniu procesów Planiści (schedulers) Planista długoterminowy (planista zadań) wybiera proces i kieruje go do kolejki procesów gotowych do wykonania. Planista krótkoterminowy (planista przydziału procesora) wybiera jeden proces spośród procesów gotowych do wykonania i przydziela mu procesor. 4.11 4.12

Diagram kolejek przy planowaniu średnioterminowym Planiści (cd.) Planista średnioterminowy: Realizuje procesy wymiany (swap out, swap in) procesów. Zmniejszenie stopnia wieloprogramowości (liczba procesów wpamięci). Planista krótkoterminowy jest aktywizowany bardzo często (milisekundy) (musi być szybki). Planista długoterminowy jest aktywizowany rzadko (seconds, minutes) (może być wolny). Planista długoterminowy nadzoruje stopień wieloprogramowości (degree of multiprogramming). Procesy mogą być: ograniczone przez: Ograniczone przez we/wy większość czasu spędzają na wykonywaniu operacji we/wy, na krótko (chociaż często) korzystając z procesora. Ograniczone przez CPU większość czasu spędzają na obliczeniach; zajmują procesor rzadko ale na długo. 4.13 4.14 Tworzenie procesu Tworzenie procesu (cd.) Proces może tworzyć procesy potomne (children), które z kolei mogą tworzyć kolejnych potomków w ten sposób powstaje drzewo procesów. Dzielenie zasobów (resource sharing) Proces macierzysty (parent) i procesy potomne (children) korzystają ze wspólnych zasobów (share all resources). Procesy potomne korzystają z wydzielonego podzbioru zasobów procesu macierzystego. Proces macierzysty i potomny nie korzystają ze wspólnych zasobów (parent and child share no resources). Wykonywanie procesów (execution) w jednym z dwóch trybów: Procesy macierzysty i potomny wykonują się współbieżnie (concurrently). Proces macierzysty czeka na zakończenie procesu potomnego. Przestrzeń adresowa Proces potomny zawiera kopię przestrzeni adresowej procesu macierzystego. Program procesu potomnego jest ładowany do tej przestrzeni. Przykład: UNIX fork funkcja systemowa tworząca proces potomny. exec funkcja systemowa wywoływano po funkcji fork w celu załadowania programu procesu potomnego do pamięci. 4.15 4.16 Drzewo procesów w systemie UNIX Zakończenie procesu Proces wykonuje ostatnią instrukcję i prosi system operacyjny o swoje usunięcie (exit). Potomekwysyładanedoprzodka(viawait). Zasoby procesu są odłączane (deallocated) przez system operacyjny. Proces macierzysty może spowodować zakończenie wykonywania procesu potomnego (abort) z następujących powodów: Potomek nadużył przydzielone zasoby. Wykonywane przez potomka zadanie stało się zbędne. Proces macierzysty kończy się, podczas gdy: System operacyjny nie zezwala na kontynuowanie pracy procesu potomnego gdy przodek zakończył pracę. System zainicjował zakończenie kaskadowe (cascading termination). 4.17 4.18

Procesy współpracujące Problem: producent-konsument Procesy niezależne (independent) nie wpływają na inne procesy, ani nie są pod wpływem innych procesów. Procesy współpracujące (cooperating) wpływają na inne, bądź są pod wpływem innych. Korzyści ze współpracy: Korzystanie ze wspólnej informacji (information sharing) Przyspieszenie obliczeń (computation speed-up) Modularność (modularity) Wygoda (convenience) Proces producenta (producer) wytwarza informację, która jest następnie używana przez proces konsumenta (consumer ). Bufor nieograniczony (unbounded-buffer) Bufor ograniczony (bounded-buffer). 4.19 4.20 Bufor ograniczony Pamięć dzielona Współdzielone dane: #define BUFFER_SIZE 10 Typedef struct {... }item; item buffer[buffer_size]; int in = 0; int out = 0; Bufor ograniczony do pojemności BUFFER_SIZE-1 elementów. Bounded-Buffer Producer Process item nextproduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextproduced; in = (in + 1) % BUFFER_SIZE; } 4.21 4.22 Bufor ograniczony proces konsumenta Komunikacja międzyprocesowa Interprocess Communication (IPC) item nextconsumed; while (1) { while (in == out) ; /* do nothing */ nextconsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } Mechanizm komunikacji i synchronizacji procesów. System komunikatów (message system) procesy komunikują się za pośrednictwem komunikatów. IPC facility provides two operations: send(message) wysyła wiadomość o ustalonym lub zmiennym rozmiarze. receive(message) odbiera wiadomość Jeśli P and Q chcą się komunikować, tomuszą: Ustanowić łącze komunikacyjne (communication link) Wymieniać komunikaty za pośrednitwem send/receive Implementacja łącza komunikacyjnego Łącze fizyczne (np. pamięć dzielona, dzielona magistrala sprzętowa) Łącze logiczne. 4.23 4.24

Problemy implementacyjne Komunikacja bezpośrednia Jak łącza są tworzone? Czy można utworzyć łącze dla większej liczby procesów? Ile może być łączy między parą komunikujących się procesów? Jaka jest pojemność łącza? Czy rozmiar wiadomości musi być stały, czy może być zmienny? Czy łącze jest jednokierunkowe, czy dwukierunkowe? Nazwa procesu explicite: send (P, message) wysyła wiadomość do procesu P receive(q, message) odbiera wiadomość z procesu Q Cechy łącza: Łącza ustanawiane autmatycznie. Łącze ustanawiane dla dokładnie jednej pary procesów.. Między każdą parą procesów istnieje tylko jedno łącze. Łącze może być jednokierunkowe, ale zwykle jest dwukierunkowe. 4.25 4.26 Komunikacja pośrednia Komunikacja pośrednia Wiadomości są wymieniane za pośrednictwem skrzynek pocztowych (mailboxes), nazywanych także portami (ports). Każda skrzynka ma swój unikalny identyfikator (id). Procesy mogą się komunikować tylko wtedy, gdy korzystają ze wspólnej skrzynki. Własności łącza: Łącze może być zestawione tylko wtedy, gdy procesy korzystają ze wspólnej skrzynki. Złącza może korzystać wiele procesów. Każda para procesów może korzystać z wielu wspólnych łączy komunikacyjnych. Łącza mogą być jedno- lub dwukierunkowe. Operacje Utwórz nową skrzynkę Wyślij, odbierz wiadomość za pośrednictwem skrzynki Usuń skrzynkę. Operacje elementarne: send(a, message) wysyła wiadomość do skrzynki A receive(a, message) odbierz wiadomość ze skrzynki A 4.27 4.28 Komunikacja pośrednia Synchronizacja Korzystanie ze wspólnej skrzynki (mailbox sharing) P 1,P 2, and P 3 korzystają ze wspólnej skrzynki A. P 1, wysyła; P 2 and P 3 odbiera. Kto otrzyma wiadomość? Rozwiązanie Zezwalać na łącza tylko między dwoma procesami. Zezwalać tylko jednemu procesowi na wykonanie operacji odbioru (receive) w danym czasie. Zezwolić, aby system rozstrzygał, kto może być odbiorcą wiadomości. Nadawca jest powiadamiany kto był odbiorcą. Przekazywanie komunikatów może być z blokowaniem biegu procesu wysyłającego bądź bez blokowania. Blokowanie (blocking) to przypadek pracy synchronicznej (synchronous) Bez blokowania (non-blocking) to praca asynchroniczna (asynchronous) Operacje send i receive mogą być blokujące, bądź nie. 4.29 4.30

Buforowanie Komunikacja typu klient-serwer Client-Server Communication Złączem związana jest kolejka komunikatów (queue of messages); implementowana na jeden z trzech sposobów: 1. Pojemność zerowa (zero capacity) 0 komunikatów Nadawca czeka na odbiorcę (rendezvous). 2. Pojemność ograniczona (bounded capacity) skończona liczba komunikatów (n messages) Nadawca musi czekać, jeśli łącze zapełnione. 3. Pojemność nieograniczona (unbounded capacity) kolejka potencjalnie nieskończona. Nadawca nigdy nie czeka. Gniazda (sockets) Wywołanie procedur zdalnych (RPC - Remote Procedure Calls) Aktywizacja zdalnych metod (RMI - Remote Method Invocation) (np. w systemie Java) 4.31 4.32 Gniazda (sockets) Komunikacja gniazd Gniazdo jest to punkt komunikacyjny (endpoint for communication). Konkatenacja adresu IP i portu. Gniazdo 161.25.19.8:1625 odnosi się do portu 1625 na komputerze sieciowym 161.25.19.8 Komunikacja zachodzi między parą gniazd. 4.33 4.34 Wywoływanie procedur zdalnych (Remote Procedure Calls) Wykonanie RPC RPC to metoda wołania procedur przez procesy w systemach sieciowych. Stubs pośrednik klienta (client-side proxy) dla wołania procedury rezydującej na serwerze. Pośrednik klienta lokalizuje serwer i przesyła parametry (marshalls the parameters). Serwer (server-side stub) odbiera komunikat, rozpakowuje parametry i wykonyje procedurę na serwerze. 4.35 4.36

Aktywizowanie zdalnej metody Remote Method Invocation Przekazywanie parametrów Marshalling Parameters Aktywizowanie zdalnej metody - Remote Method Invocation (RMI) to mechanizm Javy podobny do RPC. RMI pozwala programom Javy na jednej maszynie aktywizować metody na rzecz obiektów zdalnych. 4.37 4.38 Koncepcja wątku Modele wielowątkowe Implementacja wątków Wątek (lekki proces) thread Koncepcja wątku Wątek to podstawowa jednostka wykorzystania CPU: Własny licznik rozkazów Własny zbiór rejestrów Stos Stan Wątki potomne Wątek współdzieli z innymi wątkami tego samego zadania: Przestrzeń adresową Zmienne globalne Zasoby systemowe Tradycyjny proces (ciężki) jest równoważny zadaniu z jednym wątkiem 4.39 4.40 Wątek (cd.) Procesy jedno- i wielowątkowe Jeśli zadanie składa się z wielu wątków, to w czasie gdy jeden zwątków jest zablokowany, może wykonywać się inny wątek tego samego zadania. Współpraca wielu wątków w jednym zadaniu pozwala zwiększać przepustowość poprawić wydajność. 4.41 4.42

One-to-one Model Many-to-One Model 4.43 4.44 Many-to-Many Model Porównanie modeli 4.45 4.46 Java Thread States Solaris 2 Threads 4.47 4.48