1 / 30

Systemy operacyjne

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.

ophira
Download Presentation

Systemy operacyjne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 Zakończony Nowy przyjęcie wyjście przerwanie Aktywny Gotowy decyzja planisty Oczekiwanie na zdarzenie lub operację wejścia-wyjścia Obsłużenie zdarzenia lub operacji wejścia-wyjścia Czekający

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

  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. Czoło Ogon Kolejka procesów gotowych Blok kontrolny 2 Blok kontrolny 4 Stan procesu i informacje o nim Stan procesu i informacje o nim

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

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

  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 długoterminowy: • działa rzadko • zapewnia stopień wieloprogramowości • musi wyważyć obecność procesów w pamięci • nie jest wymagany (UNIX) Planista krótkoterminowy: • działa często • musi być szybki • Jest niezbędny w systemie operacyjnym

  13. Usunięte procesy częściowo wykonane Procesor Kolejka procesów gotowych We-Wy Kolejki procesów czekających na wejście-wyjście Planista średnioterminowy 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

  27. Gniazda Komputer 1 Komputer 2 (serwer www) • Punkt końcowy komunikacji klient-serwer • Well-known ports – pula portów zarezerwowanych • Gniazda połączeniowe (TCP) i bezpołączeniowe (UDP) 116.34.56.20 6780 176.2.123.7 80

  28. Zdalne wywołanie procedur (RPC) Serwer Klient • Namiastki – „makiety” procedur • Przetaczanie parametrów – kopiowanie ich i przesyłanie do drugiego komputera Program serwera Program klienta Namiastka Namiastka Lokalny SO Lokalny SO

  29. Zdalne wywołanie metod (RMI) Serwer Klient • Obiektowa wersja RPC • Potrzebny interfejs! Obiekt Program klienta Szkielet Namiastka Lokalny SO Lokalny SO

  30. 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)

More Related