Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.

Podobne prezentacje


Prezentacja na temat: "Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski."— Zapis prezentacji:

1 Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski

2 Pojęcie procesu Jest to program w czasie działania System operacyjny sam składa się z procesów Pojęcie charakterystyczne dla systemów z podziałem czasu System operacyjny przetwarza zadania

3 Budowa procesu Kod programu (sekcja tekstu) Wskazanie licznika rozkazów Stos procesu (parametry funkcji, zmienne lokalne) Sekcja danych (zmienne globalne)

4 Stany procesu Nowy Zakończony Gotowy Aktywny Czekający przyjęcie przerwanie decyzja planisty wyjście Obsłużenie zdarzenia lub operacji wejścia- wyjścia Oczekiwanie na zdarzenie lub operację wejścia-wyjścia

5 Blok kontrolny procesu wskaźnik Stan procesu Numer procesu Licznik rozkazów Rejestry Ograniczenia pamięci Wykaz otwartych plików Informacje o planowaniu przydziału procesora

6 Wątki Tradycyjne procesy były jednowątkowe Wątek to niezależny fragment wykonywanego procesu Możliwe wykonywanie wielu wątków naraz (bez blokowania procesu!) Wątki są lżejsze od procesów

7 Planowanie procesów Procesów jest więcej, niż procesorów Potrzebny dodatkowy proces decydujący o przydzielaniu procesorów procesom Potrzebne kolejki planowania, w których oczekują procesy Kolejka procesów gotowych – zawiera procesy gotowe do wykonania Kolejka do urządzenia – zawiera procesy pragnące skorzystać z urządzenia

8 Kolejka procesów gotowych Czoło Ogon Blok kontrolny 4 Stan procesu i informacje o nim Blok kontrolny 2 Stan procesu i informacje o nim

9 Kolejka do urządzenia Czoło Ogon Stacja dyskietek Czoło Ogon Blok kontrolny 4 Stan procesu i informacje o nim Blok kontrolny 2 Stan procesu i informacje o nim Dysk twardy

10 Diagram szeregowania procesów Zamówienia operacji wejścia-wyjścia Zużycie kwantu czasu Powołanie procesu potomnego Czekanie na przerwanie Kolejka operacji wejścia-wyjścia Kolejka procesów gotowych Procesor We-Wy Proces poto- mny działa Wystąpienie przerwania

11 Planiści Ekspedytor (dispatcher) – odpowiada za przełączenie kontekstu procesu Planista krótkoterminowy – wybiera proces w pamięci i przydziela mu procesor Planista długoterminowy – odpowiada za przemieszczanie procesów między dyskiem a pamięcią Planista średnioterminowy – usuwa procesy z pamięci

12 Aspekty działania planistów Planista krótkoterminowy: działa często musi być szybki Jest niezbędny w systemie operacyjnym Planista długoterminowy: działa rzadko zapewnia stopień wieloprogramowości musi wyważyć obecność procesów w pamięci nie jest wymagany (UNIX)

13 Planista średnioterminowy Kolejki procesów czekających na wejście-wyjście Kolejka procesów gotowych Procesor We-Wy Usunięte procesy częściowo wykonane Do pamięci Usuń z pamięci

14 Działania na procesach Tworzenie procesu (create-process) –Przydział zasobów (od systemu operacyjnego lub procesu macierzystego) –Zachowanie procesu macierzystego (czekanie lub współbieżne działanie) Kończenie procesu (exit lub abort) –System operacyjny odbiera zasoby –Dane wracają do procesu macierzystego Współpraca między procesami

15 Kończenie procesu potomnego Proces wykonał niedozwoloną operację na zasobach przydzielonych przez proces macierzysty Proces potomny spełnił swoje zadanie Zakończenie procesu macierzystego –Kończenie kaskadowe (proces macierzysty kończy działanie) –Przypisanie procesom potomnym nowego przodka, np. init

16 Współpraca procesów Cele: –Współdzielenie informacji –Przyspieszenie obliczeń –Modularność –Wygoda Model producent-konsument Rozmiar bufora komunikacji –Nieograniczony bufor –Ograniczony bufor Realizacja: komunikacja międzyprocesowa

17 Komunikacja międzyprocesowa (IPC) Łączność bez współdzielenia przestrzeni adresowej Rozwiązania: –Komunikacja bezpośrednia –Komunikacja pośrednia –Synchronizacja –Buforowanie

18 Przekazywanie komunikatów Podstawowe operacje: send(), receive() Konieczne łącze komunikacyjne Komunikaty o stałej lub zmiennej długości Buforowanie automatyczne lub jawne Komunikacja symetryczna lub asymetryczna

19 Komunikacja bezpośrednia Obie strony komunikacji muszą używać jawnych identyfikatorów (nazw) drugiej strony Adresowanie jest symetryczne lub nie Łącze komunikacyjne między parą procesów (dokładnie!) Przykład: send(A, message) receive(B, message)

20 Komunikacja bezpośrednia niesymetryczna Odbiorca nie musi znać nadawcy Przykład: send(A,message) receive(in, message) Wada: statyczność nazw!

21 Komunikacja pośrednia Wykorzystuje skrzynki pocztowe Skrzynka ma jednoznaczny identyfikator, jest utrzymywana przez SO Dwa procesy mogą współdzielić wiele skrzynek Przykład: send(A, message) receive(A, message)

22 Problem wielu procesów Który ze zdefiniowanych odbiorców pobierze wiadomość ze skrzynki? –Kolejność dowolna –Blokująca operacja receive() –Ograniczenia użycia skrzynki do dwóch procesów Skrzynka może być własnością procesu (wówczas tylko on może odbierać z niej wiadomości)

23 Operacje systemu na skrzynkach Tworzenie skrzynki Nadawanie komunikatów Odbieranie komunikatów Likwidacja skrzynki Uwaga: skrzynka utrzymywana przez proces jest likwidowania razem z nim! Skrzynka SO istnieje zawsze

24 Synchronizacja Nadawanie z blokowaniem Nadawanie bez blokowania Odbiór z blokowaniem Odbiór bez blokowania Spotkanie (nadawanie i odbiór z blokowaniem)

25 Problem wielkości bufora Pojemność zerowa (długość 0 – blokowanie nadawcy) Pojemność ograniczona (długość n – blokowanie nadawcy po przepełnieniu) Pojemność nieograniczona (długość Inf – brak blokowania nadawcy)

26 Komunikacja w systemach rozproszonych Gniazda Zdalne wywoływanie procedur Zdalne wywoływanie metod


Pobierz ppt "Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski."

Podobne prezentacje


Reklamy Google