Systemy operacyjne

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

description

Systemy operacyjne. Wykład nr 4: Procesy. Piotr Bilski. 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. Budowa procesu. - PowerPoint PPT Presentation

Transcript of Systemy operacyjne

Page 1: Systemy operacyjne

Systemy operacyjne

Wykład nr 4:

Procesy

Piotr Bilski

Page 2: Systemy operacyjne

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

Page 3: Systemy operacyjne

Budowa procesu

• Kod programu (sekcja tekstu)

• Wskazanie licznika rozkazów

• Stos procesu (parametry funkcji, zmienne lokalne)

• Sekcja danych (zmienne globalne)

Page 4: Systemy operacyjne

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

Page 5: Systemy operacyjne

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

Page 6: Systemy operacyjne

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

Page 7: Systemy operacyjne

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

Page 8: Systemy operacyjne

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

Page 9: Systemy operacyjne

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

Page 10: Systemy operacyjne

Diagram szeregowania procesów

Zamówienia operacji wejścia-wyjścia

Zużycie kwantu czasu

Powołanie procesupotomnego

Czekanie na przerwanie

Kolejka operacji wejścia-wyjścia

Kolejka procesów gotowych

Procesor

We-Wy

Proces poto-mny działa

Wystąpienie przerwania

Page 11: Systemy operacyjne

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

Page 12: Systemy operacyjne

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)

Page 13: Systemy operacyjne

Planista średnioterminowy

Kolejki procesów czekającychna wejście-wyjście

Kolejka procesów gotowych

Procesor

We-Wy

Usunięte procesy częściowo wykonane

Do pamięci Usuń z pamięci

Page 14: Systemy operacyjne

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

Page 15: Systemy operacyjne

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

Page 16: Systemy operacyjne

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

Page 17: Systemy operacyjne

Komunikacja międzyprocesowa (IPC)

• Łączność bez współdzielenia przestrzeni adresowej

• Rozwiązania:– Komunikacja bezpośrednia– Komunikacja pośrednia– Synchronizacja– Buforowanie

Page 18: Systemy operacyjne

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

Page 19: Systemy operacyjne

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)

Page 20: Systemy operacyjne

Komunikacja bezpośrednia niesymetryczna

• Odbiorca nie musi znać nadawcy

• Przykład:

send(A,message)

receive(in, message)

• Wada: statyczność nazw!

Page 21: Systemy operacyjne

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)

Page 22: Systemy operacyjne

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)

Page 23: Systemy operacyjne

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

Page 24: Systemy operacyjne

Synchronizacja

• Nadawanie z blokowaniem

• Nadawanie bez blokowania

• Odbiór z blokowaniem

• Odbiór bez blokowania

• Spotkanie (nadawanie i odbiór z blokowaniem)

Page 25: Systemy operacyjne

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)

Page 26: Systemy operacyjne

Komunikacja w systemach rozproszonych

• Gniazda

• Zdalne wywoływanie procedur

• Zdalne wywoływanie metod

Page 27: Systemy operacyjne

Gniazda

• Punkt końcowy komunikacji klient-serwer• Well-known ports – pula portów zarezerwowanych• Gniazda połączeniowe (TCP) i bezpołączeniowe

(UDP)

Komputer 1 Komputer 2 (serwer www)

116.34.56.20

6780 176.2.123.7

80

Page 28: Systemy operacyjne

Zdalne wywołanie procedur (RPC)

• Namiastki – „makiety” procedur• Przetaczanie parametrów – kopiowanie ich i

przesyłanie do drugiego komputera

Lokalny SO

Program klienta

Namiastka

Lokalny SO

Program serwera

Namiastka

Klient Serwer

Page 29: Systemy operacyjne

Zdalne wywołanie metod (RMI)

• Obiektowa wersja RPC• Potrzebny interfejs!

Lokalny SO

Program klienta

Namiastka

Lokalny SO

Obiekt

Szkielet

Klient Serwer

Page 30: Systemy operacyjne

Przykład – Windows NT/2000

• Struktura modułowa

• Przekazywanie komunikatów: LPC

• Połączenie między procesami poprzez port– Port połączenia– Port komunikacyjny

• Metody przesyłania komunikatów– kolejka komunikatów portu– Obiekt sekcji (pamięć dzielona)