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

Podobne dokumenty
Systemy operacyjne Procesy i wątki

Systemy operacyjne III

4. Procesy pojęcia podstawowe

Zarządzanie procesami i wątkami

Zarządzanie procesorem

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

Planowanie przydziału procesora

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Planowanie przydziału procesora

1.1 Definicja procesu

Informatyka, systemy, sieci komputerowe

Procesy, wątki i zasoby

Prezentacja systemu RTLinux

projektowanie systemu

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

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Planowanie przydziału procesora

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

System operacyjny MACH

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

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy Operacyjne - zarządzanie procesami

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Struktury systemów operacyjnych

Systemy operacyjne. Paweł Pełczyński

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst.

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych.

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Planowanie przydziału procesora

1. Szeregowanie w systemach czasu rzeczywistego

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

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

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

Proces y i y w i ąt ą ki

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Działanie systemu operacyjnego

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

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

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

Materiały pomocnicze 1

Zarządzanie procesami (omawiane zagadnienia)

Jądro systemu operacyjnego

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

Mikroprocesor Operacje wejścia / wyjścia

Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania

Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania

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.

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

Urządzenia wejścia-wyjścia

System komputerowy. System komputerowy

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Pytania do treści wykładów:

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

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

Planowanie przydziału procesora

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Systemy wejścia-wyjścia. wyjścia

Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1

Programowanie współbieżne i rozproszone

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Wprowadzenie do systemu Minix

Procesy, zasoby i wątki

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

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

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

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

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

1. Tworzenie nowego projektu.

... Ireneusz Mrozek. Wydział Informatyki

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Architektura i administracja systemów operacyjnych

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Wprowadzenie do programowania współbieżnego

Zarządzanie pamięcią operacyjną

Informatyka. informatyka i nauki komputerowe (computer science)

Język Java wątki (streszczenie)

Materiały do wykładu Systemy operacyjne (SOI.B) 1 dla kierunku Informatyka

Nowoczesne systemy operacyjne

Kurs Zaawansowany S7. Spis treści. Dzień 1

Transkrypt:

Wieloprogramowanie Systemy Operacyjne Procesy i wątki dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut utomatyki i Informatyki Stosowanej Politechnika Warszawska One program counter B C D switch Four program counters B C D D C B Time (c) należy unikać programowania procesów uwarunkowanych czasowo, zależność między programem a procesem, pojęcia procesów współbieżnych, równoległych i rozproszonych, Systemy operacyjne / Procesy i wątki str.1/32 Systemy operacyjne / Procesy i wątki str.3/32 Proces w systemie operacyjnym Tworzenie i kończenie procesów Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie operacyjnym. Wymagania odnośnie systemu operacyjnego odnośnie zarządzania procesami: umożliwienie przeplatania się wykonywania procesów, akceptowalnie krótki czas odpowiedzi systemu, zarządzanie przydziałem zasobów poszczególnym procesom, udostępnianie mechanizmów do komunikacji międzyprocesowej, udostępnianie mechanizmów do tworzenia procesów. Utworzenie procesu może być rezultatem: inicjalizacji systemu, wywołania przez już uruchomiony proces funkcji systemowej do tworzenia procesu, zlecenia użytkownika utworzenia nowego procesu, uruchomienia zadania wsadowego. Zakończenie działania procesu może być rezultatem: zakończenia algorytmu procesu, celowego zakończenia w wyniku wystąpienia błędu, wykonania niedozwolonej operacji (zakończenie wymuszone), otrzymania sygnału od innego procesu (zakończenie wymuszone). Systemy operacyjne / Procesy i wątki str.2/32 Systemy operacyjne / Procesy i wątki str./32

Stany procesów Graf przejść stanów w systemie Unix Blocked Running 1 3 2 Ready 1. blocks for input 2. Scheduler picks another process 3. Scheduler picks this process. Input becomes available Podstawowe stany procesów: uruchomiony - (ang. running), w danej chwili wykonuje się na procesorze, gotowy - (ang. ready), gotowy do wykonania, ale wstrzymany w oczekiwaniu na przydział czasu procesora, wstrzymany - (ang. blocked), nie może kontynuować pracy do momentu wystąpienia pewnego zewnętrznego zdarzenia. Systemy operacyjne / Procesy i wątki str.5/32 Systemy operacyjne / Procesy i wątki str.7/32 Stany procesów w systemie Unix Planista uruchomiony w trybie użytkownika - (ang. user running), uruchomiony w trybie jądra - (ang. kernel running), gotowy, w pamięci - (ang. ready to run, in memory), es 0 1 n 2 n 1 wstrzymany, w pamięci - (ang. asleep in memory), gotowy wymieciony - (ang. ready to run, swapped), wstrzymany, wymieciony - (ang. sleeping, swapped), wywłaszczony - (ang. preempted), utworzony - (ang. created), zombie - (ang. zombie). Scheduler Przydziałem procesora poszczególnym procesom zajmuje się część jądra systemu operacyjnego określana mianem planisty (ang. scheduler ). Implementacja procesu: system posiada strukturę danych określaną mianem tablicy procesów, element tablicy procesów nazywany jest deskryptorem procesu albo blokiem kontrolnym procesu (ang. PCB, process control block) Systemy operacyjne / Procesy i wątki str.6/32 Systemy operacyjne / Procesy i wątki str.8/32

Typowe pola elementu tablicy procesów Obsługa przerwania - szkielet Zarządzanie procesem Rejestry Licznik rozkazów (PC) Słowo stanu procesora (PSW) Wskaźnik stosu Stan procesu Priorytet Parametry szeregowania ID procesu Proces rodzic Grupa procesu Sygnały Czas startu procesu Użyty czas CPU Czas następnego alarmu Zarządzanie pamięcią Wskaźnik do segmentu kodu Wskaźnik do segmentu danych Wskaźnik do segmentu stosu Zarządzanie plikami Katalog root Katalog bieżący Deskryptory plików ID użytkownika ID grupy 1. Sprzętowo zapamiętane na stosie licznik rozkazów, itp. 2. Sprzętowo ładowana nowa wartość licznika rozkazów z wektora przerwań 3. Procedura w języku asemblera zapamiętuje wartości rejestrów. Procedura w języku asemblera ustala nowy stos 5. Obsługa przerwania w języku C (często odczyt i buforowanie wejścia) 6. Planista wybiera następny proces do wznowienia 7. Procedura w języku asemblera przygotowuje i wznawia nowy bieżący proces Systemy operacyjne / Procesy i wątki str.9/32 Systemy operacyjne / Procesy i wątki str.11/32 Obsługa przerwań Wątki wykonania Obsługa przerwań przez system operacyjny: odbieranie procesora na rzecz planisty z wykorzystaniem wsparcia sprzętowego (np. przerwania zegarowego), z każdym urządzeniem I/O skojarzona jest lokalizacja w pamięci z informacją, skąd ma nastąpić kontynuacja wykonywania podprogramu w przypadku wystąpienia przerwania, tzw. wektor przerwania (ang. interrupt vector ), wektor przerwania zawiera adres procedury dostarczonej przez system operacyjny (ang. interrupt handler ), planista odgrywa rolę pośrednika, uzyskuje sterowanie po każdym wystąpieniu przerwania zegarowego, proces nie może przekazać sterowania innemu procesowi bez pośrednictwa planisty. Gdy potrzeba współbieżnych wykonań sterowania i rozwiązanie jako grupa procesów, to przy rozłącznych chronionych przestrzeniach adresowych: z punktu widzenia ochrony: zaleta, ale: chronimy się przed samym sobą, z punktu widzenia komunikacji: wada, z punktu widzenia łatwości współużytkowania zasobów: wada, z punktu widzenia wydajności: wada, chyba że równolegle. Więc może dwa sterowania spróbować zawrzeć tak jakby w jednym procesie, wtedy: z punktu widzenia ochrony: wada, ale jesteśmy autorami kodu, z punktu widzenia komunikacji: zaleta, z punktu widzenia łatwości współużytkowania zasobów: zaleta. Systemy operacyjne / Procesy i wątki str.10/32 Systemy operacyjne / Procesy i wątki str.12/32

trybuty procesów i wątków Serwer wielowątkowy Zarządzanie procesem Przestrzeń adresowa Wartości zmiennych globalnych Otwarte pliki Procesy potomne larmy Sygnały i obsługa sygnałów Informacje rozliczeniowe Zarządzanie pamięcią Licznik rozkazów Wartości rejestrów Stos Stan Web server process Dispatcher thread Worker thread Web page cache User Wątki tego samego procesu mogą wymieniać informacje przez zwienne globalne procesu. co zrobić z wątkami w przypadku zlecenia stworzenia podprocesu, na jakim poziomie obsługiwać sygnały. Network connection Systemy operacyjne / Procesy i wątki str.13/32 Systemy operacyjne / Procesy i wątki str.15/32 Stos wątków Zarys algorytmów serwera wielowątkowego Thread 1's stack Thread 1 Thread 2 Thread 3 Thread 3's stack while (TRUE) { while (TRUE) { get_next_request(&buf); wait_for_work(&buf) handoff_work(&buf); look_for_page_in_cache(&buf, &page); } if (page_not_in_cache(&page)) read_page_from_disk(&buf, &page); return_page(&page); } Systemy operacyjne / Procesy i wątki str.1/32 Systemy operacyjne / Procesy i wątki str.16/32

Metody konstrukcji serwerów Wątki - rozwiązania hybrydowe Metody organizacji serwerów usług: serwery wielowątkowe - współbieżność, blokujące wywołania systemowe, procesy jednowątkowe - brak współbieżności, blokujące wywołania systemowe, automaty skończone - współbieżność, nieblokujące wywołania systemowe, przerwania. Multiple user threads on a kernel thread User thread Systemy operacyjne / Procesy i wątki str.17/32 Systemy operacyjne / Procesy i wątki str.19/32 Wątki poziomu jądra a wątki poziomu użytkownika rchitektura wielowątkowa w systemie Solaris Thread Thread Solaris wykorzystuje cztery rozłączne koncepcje: Procesy - standardowe procesy systemu Unix, User Run-time system Thread table table table Thread table Wątki poziomu użytkownika - zaimplementowane bibliotecznie, nierozróżnialne z punktu widzenia jądra, stanowią interfejs do współbieżności, Procesy lekkie (ang. Lightweight processes, LWP), LWP stanowi formę odwzorowania między wątkami poziomu użytkownika a wątkami jądra. każdy LWP obsługuje jeden bądź więcej wątków poziomu użytkownika odwzorowując w jeden wątek jądra, LWP rozróżniane i szeregowane przez jądro, LWP mogą być uruchomione równolegle w architekturze wieloprocesorowej, Wątki jądra podstawowe elementy szeregowane i rozmieszczane na procesorach. Systemy operacyjne / Procesy i wątki str.18/32 Systemy operacyjne / Procesy i wątki str.20/32

Wątki w systemie Solaris - przykład Prywatne zmienne globalne Thread 1's code Thread 2's code Thread 1's stack Thread 2's stack Thread 1's globals Thread 2's globals Systemy operacyjne / Procesy i wątki str.21/32 Systemy operacyjne / Procesy i wątki str.23/32 Migracja do kodu wielowątkowego Procesy obciążające procesor i we/ wy Thread 1 Thread 2 Long CPU burst Time ccess (errno set) Short CPU burst Waiting for I/O Open (errno overwritten) Time Errno inspected Systemy operacyjne / Procesy i wątki str.22/32 Systemy operacyjne / Procesy i wątki str.2/32

Szeregowanie procesów Najszybciej najkrótsza praca Wyróżniamy następujące techniki szeregowania: szeregowanie bez wywłaszczania (ang. nonpreemptive scheduling), szeregowanie z wywłaszczaniem (ang. preemptive scheduling). 8 B C D B C D 8 Różne wymagania dla różnych środowisk: przetwarzania wsadowego, systemów interaktywnych, systemów czasu rzeczywistego. Szeregowanie w systemach wsadowych FCFS, kolejka FIFO, (ang. First-Come First-Served), SJF, najszybciej najkrótsza praca (ang. Shortest Job First), SRTN, (ang. Shortest Remaining Time Next), szeregowanie trzypoziomowe (ang. Three-Level Scheduling). Systemy operacyjne / Procesy i wątki str.25/32 Systemy operacyjne / Procesy i wątki str.27/32 Cechy dobrego szeregowania Szeregowanie trzypoziomowe Wszystkie systemy sprawiedliwość - każdemu równą część czasu CPU, zgodność z polityką - praca wedle założeń, wyrównywanie - zbliżona zajętość wszystkich części systemu. Systemy wsadowe przepustowość - maksymalizacja liczby zadań w czasie, czas w systemie - min. czasu między uruchomieniem a zakończeniem, wykorzystanie procesora - minimalizacja przerw w pracy procesora. Systemy interaktywne czas odpowiedzi - możliwie szybka odpowiedź na żądanie, proporcjonalność - spełnianie oczekiwań użytkownika. Systemy czasu rzeczywistego spełnianie wymagań - spełnianie ograniczeń czasowych, przewidywalność - np. unikanie spadku jakości w przekazie multimediów. rriving job Input queue dmission scheduler CPU Main Memory CPU scheduler Memory scheduler Disk Systemy operacyjne / Procesy i wątki str.26/32 Systemy operacyjne / Procesy i wątki str.28/32

Szeregowanie Round-Robin Szeregowanie w systemach czasu rzeczywistego Current process Next process Current process system z ograniczeniami twardymi i miękkimi, specyfika obsługi zdarzeń okresowych i nieokresowych, B F D G F D G B Szeregowanie w systemach interaktywnych algorytm Round-Robin, szeregowanie priorytetowe, najkrótszy proces jako następny (estymacja). m i=1 C i P i 1 System rzeczywisty spełniający powyższą nierówność jest szeregowalny (ang. schedulable). Ci czas wykonania zadania okresowego, Pi okres wykonywania zadania okresowego. Systemy operacyjne / Procesy i wątki str.29/32 Systemy operacyjne / Procesy i wątki str.31/32 Szeregowanie z klasami priorytetowymi Szeregowanie wątków Queue headers Priority Runable processes (Highest priority) Order in which threads run B B Priority 3 Priority 2 2. Runtime system picks a thread 1 2 3 1 3 2 Priority 1 (Lowest priority) 1. picks a process 1. picks a thread Possible: 1, 2, 3, 1, 2, 3 Not possible: 1, B1, 2, B2, 3, B3 Possible: 1, 2, 3, 1, 2, 3 lso possible: 1, B1, 2, B2, 3, B3 a. dla wątków poziomu użytkownika, b. dla wątków poziomu jądra. Systemy operacyjne / Procesy i wątki str.30/32 Systemy operacyjne / Procesy i wątki str.32/32