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

Slides:



Advertisements
Podobne prezentacje
Wirtualizacja zasobów w systemach operacyjnych
Advertisements

Związki w UML.
Podstawowe pojęcia programowania współbieżnego
Mechanizmy pracy równoległej
Jarosław Kuchta Monitory.
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Podstawy Informatyki (4)
SYSTEMY OPERACYJNE WSTĘP
SYSTEMY OPERACYJNE ·       SO : zestaw programów zarządzających zasobami komputera i wspomagających jego użytkowanie zarządzanie zasobami.
Systemy rozproszone W. Bartkiewicz
SYSTEMY OPERACYJNE KOMUNIKACJA MIĘDZYPROCESOWA
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
SYSTEMY OPERACYJNE PROCESY I WĄTKI
SYSTEMY OPERACYJNE PROCESY I WĄTKI
SYSTEMY OPERACYJNE WSTĘP
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Wykład nr 3: Struktura systemu operacyjnego
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Wykład nr 6: Planowanie przydziału procesora
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Instytut Fizyki Teoretycznej
ZARZĄDZANIE PROCESAMI
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Język Java Wielowątkowość.
Semafory według normy POSIX
14. WĄTKI Procesy w tradycyjnym sensie (tworzone przez wykonanie funkcji fork) mają przydzielaną oddzielną przestrzeń adresową. W przestrzeni tej jest.
10. PROSTE MECHANIZMY KOORDYNACJI DOSTĘPNE W JĘZYKU C W systemie Unix użytkownikowi (nie będącemu administratorem) nie wolno wykonywać bezpośrednio żadnych.
9. KOORDYNACJA PROCESÓW WSPÓŁBIEŻNYCH PRZY UŻYCIU INTERPRETATORA
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Wątki.
Pamięć wspólna Przegląd stosowanych rozwiązań Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
Zdzisław Stryła Instytut Fizyki UAM
Podstawy programowania II
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Budowa systemu komputerowego
Elementy składowe komputera
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Podstawowe usługi systemów operacyjnych
Architektura komputerów
Budowa i rodzaje procesorów.
Problem sekcji krytycznej
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
System operacyjny – skąd się wziął?
Elementy zestawu komputerowego
Wykład 7 Synchronizacja procesów i wątków
Systemy operacyjne Wykład 6a Procesy dr inż. Wojciech Bieniecki
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
W ą t e k (lekki proces) thread.
Planowanie przydziału procesora
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Systemy operacyjne (wiosna 2014)
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Systemy Operacyjne Dr inż. Sławomir Samolej D108 A, tel: ,
Zintegrowany sterownik przycisków. Informacje podstawowe Każdy przycisk jest podłączony do sterownika za pośrednictwem dwóch przewodów, oraz dwóch linii.
System plików.
Procesor, pamięć, przerwania, WE/WY, …
Architektury procesorów rdzeniowych mikrokontrolerów.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
BUDOWA WEWNĘTRZNA KOMPUTERA
Wstęp do programowania Wykład 7
Systemy operacyjne Wykład 6 Procesy dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki 1.
Wątki, programowanie współbieżne
Zapis prezentacji:

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 Kod programu (sekcja tekstu) Wskazanie licznika rozkazów Stos procesu (parametry funkcji, zmienne lokalne) Sekcja danych (zmienne globalne)

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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)

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

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)

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)

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

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

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)

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