Zarządzanie procesami i wątkami

Podobne dokumenty
Zarządzanie procesorem

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

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

Planowanie przydziału procesora

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

Planowanie przydziału procesora

Planowanie przydziału procesora

Systemy operacyjne III

projektowanie systemu

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

Proces y i y w i ąt ą ki

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

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

Systemy Operacyjne - zarządzanie procesami

Informatyka, systemy, sieci komputerowe

Planowanie przydziału procesora

Procesy, wątki i zasoby

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Pytania do treści wykładów:

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Struktury systemów operacyjnych

2.1 Wstęp Kryteria planowania Algorytmy planowania Systemy wieloprocesorowe i czasu rzeczywistego...

Planowanie przydziału procesora

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

Zarządzanie pamięcią operacyjną

4. Procesy pojęcia podstawowe

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

Materiały pomocnicze 1

4. Procesy pojęcia podstawowe

Zarządzanie procesami (omawiane zagadnienia)

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Wprowadzenie do systemów operacyjnych

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

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

KOMPONENTY SYSTEMÓW OPERACYJNYCH

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Planowanie przydziału procesora

Planowanie przydziału procesora

4. Procesy pojęcia podstawowe

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

Celem wykładu jest przedstawienie zagadnień planowania przydziału procesora, czyli szeregowania procesów w dostępie do procesora.

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

Planowanie przydziału procesora

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

1.1 Definicja procesu

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Działanie systemu operacyjnego

Systemy operacyjne Procesy i wątki

Przykłady implementacji planowania przydziału procesora

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

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

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Procesy, zasoby i wątki

Działanie systemu operacyjnego

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

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

Systemy operacyjne, architektura komputerów

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

Stan procesu. Procesy i zarządzanie procesorem. Koncepcja procesu. Diagram stanów procesu

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

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Procesy. W sk³ad procesu wchodzi:

Koncepcja procesu. Procesy i wątki. Diagram stanów procesu. Stan procesu. Blok kontrolny procesu Process Control Block (PCB)

Działanie systemu operacyjnego

Informatyka. informatyka i nauki komputerowe (computer science)

Prezentacja systemu RTLinux

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

Systemy operacyjne. Paweł Pełczyński

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

LEKCJA TEMAT: Zasada działania komputera.

1. Działania na procesach

System operacyjny MACH

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

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

Synchronizacja procesów i wątków

Programowanie Niskopoziomowe

1. Rola pamięci operacyjnej

Przykłady implementacji planowania przydziału procesora. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

Materiały pomocnicze 1

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Zarządzanie pamięcią operacyjną

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

2.1 Pojęcie wątku Modele wielowątkowości Wybrane zagadnienia wielowątkowości Wątki POSIX... 18

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

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

Działanie systemu operacyjnego

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Bazy danych w sterowaniu

Transkrypt:

SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW

Pojęcie procesu (1) Program zbiór instrukcji dla procesora przechowywany na dysku w postaci pliku obiekt pasywny Wykonywany program zadanie proces

Pojęcie procesu (2) Proces wykonujący się program środowisko wykonania programu, stworzone przez system operacyjny podstawowa jednostka pracy systemu operacyjnego obiekt aktywny

Obraz procesu w pamięci stos sterta dane kod

Stany procesu (1) Dwustanowy model procesu przerwanie utworzenie nie działa działa zakończenie uruchomienie

Stany procesu (2) Pięciostanowy model procesu przerwanie utworzenie procesu zakończenie przydział procesu nowy gotowy aktywny zakończony procesora wystąpienie zdarzenia czekający oczekiwanie na zdarzenie

Reprezentacja procesów w systemie Blok kontrolny procesu (process control block PCB) struktura danych opisująca proces Tablica procesów tablica wskaźników na bloki kontrolne procesów alokowana statycznie - ograniczona liczba procesów w systemie Listy procesów alokowane dynamicznie - brak ograniczeń na liczbę procesów Tablica list procesów

Blok kontrolny procesu Atrybuty procesu identyfikatory procesu, właściciela stan procesu licznik rozkazów rejestry procesora informacje o planowaniu przydziału procesora priorytet informacje o zarządzaniu pamięcią informacje do rozliczeń zuŝyty czas procesora i czas rzeczywisty informacje o stanie wejścia-wyjścia

Kontekst procesu Obraz procesu zawartość logicznej przestrzeni adresowej procesu (kod, dane, stos) stan licznika rozkazów i rejestrów sprzętowych procesora struktury danych jądra, związane z procesem blok kontrolny procesu Zachowanie kontekstu zapisanie stanu licznika i rejestrów w bloku kontrolnym gdy nastąpi przerwanie wykonywania procesu Odtwarzanie kontekstu

Podstawowe operacje na procesach Tworzenie procesu Kończenie procesu Przełączanie procesów

Tworzenie procesu Operacja jądra zamawiana poprzez funkcję systemową proces macierzysty, rodzicielski, rodzic proces potomny, potomek drzewo procesów Współdzielenie zasobów rodzic i potomek dzielą wszystkie zasoby dzielą podzbiór zasobów nie dzielą zasobów

Tworzenie procesu c.d. Przestrzeń adresowa proces potomny otrzymuje kopię przestrzeni adresowej procesu macierzystego system wpisuje nowy program do przestrzeni adresowej procesu potomnego Wykonanie wykonują się współbieŝnie rodzic czeka na zakończenie potomka

Kończenie procesu Zakończenie normalne proces wywołuje funkcję systemową (exit) po zakończeniu wykonywania kodu programu Zakończenie przez system operacyjny błędy wykonania kodu błędy wejścia-wyjścia przekroczenie limitu czasu zakleszczenie procesów zakończenie kaskadowe - po zakończeniu procesu macierzystego (w niektórych systemach operacyjnych) inne Zakończenie przez proces macierzysty

Przełączanie procesów Przełączanie procesora pomiędzy procesami Przerwanie wykonywania bieŝącego procesu przerwanie zegarowe przerwania od urządzeń pułapki wywołania funkcji systemowych Przełączanie kontekstu zachowanie kontekstu przerwanego procesu odtworzenie kontekstu procesu wybranego do wykonania

Wykonywanie kodu jądra systemu (1) Czy system operacyjny działa jak proces? Wykonywanie kodu jądra niezaleŝnie od procesów Wykonywanie kodu jądra w kontekście bieŝącego procesu tryb uŝytkownika -> tryb jądra Wykonywanie kodu jądra jako odrębnych procesów/wątków

Wykonywanie kodu jądra systemu (2) Kod jądra wykonywany niezaleŝnie od procesów tryb uŝytkownika proces proces proces proces tryb jądra jądro

Wykonywanie kodu jądra systemu (3) Funkcje jądra w kontekście bieŝącego procesu tryb uŝytkownika proces proces proces proces tryb jądra funkcje jądra systemu funkcje jądra systemu funkcje jądra systemu funkcje jądra systemu jądro

Wykonywanie kodu jądra systemu (4) Funkcje jądra jako odrębne procesy/wątki proces proces tryb uŝytkownika wątek jądra wątek jądra tryb jądra jądro

Planowanie procesów Kolejki planowania procesów kolejka zadań (procesów) lista wszystkich uruchomionych procesów kolejka procesów gotowych lista wszystkich procesów w pamięci operacyjnej, gotowych do wykonania i czekających na procesor kolejki do urządzeń we-wy

Diagram kolejek

Zagadnienia planowania (1) Planowanie długoterminowe planowanie zadań polega na wyborze procesów do wykonania i załadowaniu ich do pamięci nadzoruje stopień wieloprogramowości, głównie w systemach wsadowych planista długoterminowy jest wywoływany bardzo rzadko (sekundy, minuty)

Zagadnienia planowania (2) Planowanie krótkoterminowe planowanie przydziału procesora, szeregowanie procesów polega na wyborze jednego procesu z kolejki procesów gotowych i przydzieleniu mu dostępu do procesora dominuje w systemach z podziałem czasu planista krótkoterminowy jest wywoływany bardzo często (milisekundy)

Zagadnienia planowania (3) Planowanie średnioterminowe polega na okresowej wymianie procesów pomiędzy pamięcią operacyjną i pomocniczą umoŝliwia czasowe zmniejszenie stopnia wieloprogramowości pośredni etap w planowaniu procesów, często stosowany w systemach wielozadaniowych

Planowanie przydziału procesora (1) Koncepcja wykonania procesu cykl faz procesora i faz wejścia-wyjścia Planista (scheduler) wybiera jeden proces spośród procesów gotowych decyzje o przydziale procesora aktywny -> gotowy aktywny -> czekający czekający -> gotowy aktywny -> zakończony

Planowanie przydziału procesora (2) Wywłaszczanie procesów przerwanie aktywnego procesu w celu dokonania wyboru innego procesu do wykonania Ekspedytor procesów (dispatcher) przełączenie kontekstu zachowanie kontekstu starego procesu i załadowanie do rejestrów kontekstu nowego procesu przełączanie do trybu uŝytkownika wznowienie wykonania programu opóźnienie ekspedycji powinno być jak najkrótsze

Algorytmy planowania Kryteria planowania wykorzystanie procesora przepustowość systemu czas cyklu przetwarzania czas oczekiwania czas odpowiedzi wariancja czasu odpowiedzi

Algorytm FCFS FCFS - First Come, First Served pierwszy zgłoszony-pierwszy obsłuŝony kto pierwszy, ten lepszy Wybierany jest pierwszy proces z kolejki, czyli proces, który pierwszy zgłosił gotowość do wykonania Algorytm niewywłaszczający Efekt konwoju

Algorytm FCFS - przykład Proces Priorytet Czas nadejścia Czas fazy procesora P1 2 0 5 P2 1 1 2 P3 3 0 1 P1 P3 P2 0 5 6 8 Czas oczekiwania: P1 = 0, P2 = 6-1 = 5, P3 = 5 Tśr = (0+5+5)/3 = 3,33

Algorytm SJF SJF - Shortest Job First najpierw najkrótsze zadanie KaŜdy proces ma określoną długość następnej fazy procesora Wybierany jest proces, który ma najkrótszą następną fazę procesora Dwie wersje niewywłaszczająca wywłaszczająca Algorytm optymalny ze względu na minimalny średni czas oczekiwania procesów

Algorytm SJF - przykład Proces Priorytet Czas nadejścia Czas fazy procesora P1 2 0 5 P2 1 1 2 P3 3 0 1 P3 P2 P1 0 1 3 8 Tśr = (0+0+3)/3 = 1

Algorytm priorytetowy KaŜdy proces ma przydzielony priorytet liczba całkowita z ustalonego przedziału Wybierany jest proces o najwyŝszym priorytecie Definiowanie priorytetu zewnętrzne wewnętrzne - np. zuŝycie czasu procesora Wersje wywłaszczająca niewywłaszczająca

Algorytm priorytetowy - przykład Proces Priorytet Czas nadejścia Czas fazy procesora P1 2 0 5 P2 1 1 2 P3 3 0 1 P3 P1 P2 0 1 6 8 Tśr = (1+5+0)/3 = 2

Algorytm priorytetowy Problem głodzenia nieskończone oczekiwanie procesu o niskim priorytecie Postarzanie procesów stopniowe podwyŝszanie priorytetów procesów w miarę upływu czasu

Algorytm rotacyjny RR - Round Robin Wybierany jest pierwszy proces z kolejki procesów gotowych Wybrany proces dostaje kwant czasu procesora Po upłynięciu przydzielonego kwantu czasu proces jest przerywany i umieszczany na końcu kolejki Podział czasu (wielozadaniowość) Wybór kwantu czasu znacząco większy od czasu przełączania kontekstu zbyt duŝy => algorytm FCFS

Algorytm rotacyjny - przykład Proces Priorytet Czas nadejścia Czas fazy procesora P1 2 0 5 P2 1 1 2 P3 3 0 1 P1 P3 P2 P1 P2 P1 P1 P1 0 1 2 3 8 Tśr = (3+2+1)/3 = 2

Wielopoziomowe planowanie kolejek Procesy przydzielane są do wielu kolejek metoda przydziału gotowego procesu do konkretnej kolejki Szeregowanie procesów w kolejce kaŝda kolejka ma ustalony odrębny algorytm planowania procesów Szeregowanie kolejek ustalone priorytety kolejek rotacja z kwantem czasu

Wielopoziomowe planowanie kolejek ze sprzęŝeniem zwrotnym Procesy mogą się przemieszczać pomiędzy kolejkami Wiele kolejek procesów gotowych metoda przydziału procesu do kolejki metoda awansu procesu do lepszej kolejki metoda degradacji procesu do gorszej kolejki algorytm szeregowania procesów w kolejce

Planowanie wieloprocesorowe Wspólna kolejka procesów gotowych Wieloprzetwarzanie symetryczne kaŝdy procesor sam planuje swoje działanie wiele procesorów korzysta ze wspólnych struktur danych systemu konieczna jest synchronizacja dostępu do sekcji krytycznej Wieloprzetwarzanie asymetryczne wyróŝniony procesor pełni funkcję planisty dla pozostałych procesorów tylko jeden procesor korzysta ze struktur danych systemu

Planowanie w czasie rzeczywistym System rygorystyczny zlecenie uruchomienia procesu wraz z wymaganiami czasowymi planista akceptuje proces i udziela gwarancji terminowego wykonania planista odrzuca zlecenie jako niewykonalne System łagodny planowanie priorytetowe procesy czasu rzeczywistego mają najwyŝszy priorytet brak postarzania procesów czasu rzeczywistego wymagane małe opóźnienie ekspediowania procesu do procesora

Pojęcie wątku Wątek sekwencyjny przepływ sterowania w programie Grupa wątków w procesie współdzieli kod programu dane zasoby systemu operacyjnego Wątek licznik rozkazów rejestry procesora stos Tradycyjny proces = proces jednowątkowy

Wielowątkowość Proces jednowątkowy Proces wielowątkowy kod dane pliki kod dane pliki...... Wątek Wątek Wątek licznik rozkazów rejestry stos licznik rozkazów licznik rozkazów licznik rozkazów rejestry rejestry rejestry stos stos stos

Wątki uŝytkownika a wątki jądra Wątki uŝytkownika realizacja i zarządzanie przez bibliotekę funkcji na poziomie uŝytkownika nie są rozróŝniane przez jądro szybkie tworzenie i przełączanie moŝliwość zablokowania całego procesu przez jeden wątek brak moŝliwości wieloprzetwarzania Wątki jądra realizacja i zarządzanie przez jądro wolniejsze tworzenie i przełączanie konieczne przełączenie procesora w tryb jądra moŝliwość wieloprzetwarzania w systemie wieloprocesorowym

Modele implementacji wątków Model m-1 Model 1-1 Model m-n

Model m-1 proces jądro biblioteka CPU Wiele wątków uŝytkownika odwzorowanych na 1 wątek jądra

Model 1-1 proces jądro CPU CPU KaŜdy wątek uŝytkownika odwzorowany na 1 wątek jądra

Model m n proces jądro biblioteka CPU CPU Wiele wątków uŝytkownika odwzorowanych na wiele wątków jądra

Model mieszany proces proces jądro biblioteka CPU CPU Połączenie modeli m-n i 1-1