Procesy, wątki i zasoby



Podobne dokumenty
Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

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

Informatyka, systemy, sieci komputerowe

Zarządzanie procesorem

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

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

Proces y i y w i ąt ą ki

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

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

Systemy operacyjne III

4. Procesy pojęcia podstawowe

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

projektowanie systemu

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik

Zarządzanie procesami i wątkami

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

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

4. Procesy pojęcia podstawowe

Planowanie przydziału procesora

1.1 Definicja procesu

4. Procesy pojęcia podstawowe

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

Planowanie przydziału procesora

Działanie systemu operacyjnego

Wielozadaniowość w systemie Microsoft Windows

Planowanie przydziału procesora

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

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

Prezentacja systemu RTLinux

Problem zakleszczenia

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Pytania do treści wykładów:

Działanie systemu operacyjnego

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

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

System operacyjny MACH

Struktury systemów operacyjnych

Działanie systemu operacyjnego

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

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

Materiały pomocnicze 1

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

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego

Przykłady implementacji planowania przydziału procesora

Działanie systemu operacyjnego

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

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

Podstawy Informatyki Systemy operacyjne

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

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

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

Systemy operacyjne Procesy i wątki

Budowa systemów komputerowych

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

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

LEKCJA TEMAT: Zasada działania komputera.

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

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

Oprogramowanie systemowe

Zarządzanie pamięcią w systemie operacyjnym

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Oprogramowanie systemowe

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

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

Systemy operacyjne. Paweł Pełczyński

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

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

Zarządzanie procesami (omawiane zagadnienia)

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Oprogramowanie systemowe

Planowanie przydziału procesora

Systemy Operacyjne - zarządzanie procesami

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

Procesy i wątki. Wątki. Procesy

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

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Podstawowe zagadnienia

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

Systemy Operacyjne. Dr inż. Sławomir Samolej WWW: ssamolej.prz-rzeszow.pl

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

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

Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1

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

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

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Systemy Operacyjne. Dr inż. Sławomir Samolej WWW: ssamolej.prz-rzeszow.pl

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu

Problem zakleszczenia. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Mikroprocesor Operacje wejścia / wyjścia

Transkrypt:

Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych. Systemy operacyjne Wykład 2 1/31

Procesy Proces jest elementarną jednostką pracy (aktywności) zarządzaną przez system operacyjny, która ubiega się o zasoby systemu komputerowego w celu wykonania programu. Proces = wykonujący się program. Elementy składowe procesu: program definiuje zachowanie procesu, dane zbiór wartości przetwarzanych oraz wyniki, zbiór zasobów tworzących środowisko wykonawcze, blok kontrolny procesu (PCB, deskryptor) opis bieżącego stanu procesu. Systemy operacyjne Wykład 2 2/31

Zasoby Zasobem jest element sprzętowy lub programowy systemu komputerowego, którego brak może potencjalnie zablokować wykonywanie programu (przetwarzanie). Przykłady zasobów: procesor, pamięć, plik (dane) itp. Systemy operacyjne Wykład 2 3/31

Jądro systemu w zarządzaniu procesami i zasobami Operacje tworzenia i usuwania procesów oraz elementarna komunikacja międzyprocesowa. Operacje przydziału i zwalniania jednostek zasobów. Elementarne operacje wejścia-wyjścia. Procedury obsługi przerwań. Systemy operacyjne Wykład 2 4/31

Zarządcy procesów i zasobów Zarządca procesów (process manager) kontroluje stany procesów w celu efektywnego i bezpiecznego wykorzystania współdzielonych zasobów systemu. Zarządca zasobów (resource manager) realizuje przydział zasobów stosownie do żądań procesów, aktualnego stanu systemu oraz ogólnosystemowej polityki przydziału. Systemy operacyjne Wykład 2 5/31

Struktury danych w zarządzaniu Deskryptor procesu (blok kontrolny procesu, PCB) używany przez zarządcę procesów w celu rejestrowania stanu procesu w czasie jego monitorowania i kontroli. Deskryptor zasobu przechowuje informacje o dostępności i zajętości danego typu zasobu. Systemy operacyjne Wykład 2 6/31

Deskryptor procesu Identyfikator procesu. Stan procesu (nowy, gotowy, oczekujący, itd.). Identyfikator właściciela. Identyfikator przodka. Lista przydzielonych zasobów. Zawartość rejestrów procesora. Prawa dostępu (domena ochrony). Informacje na potrzeby zarządzania pamięcią. Informacje na potrzeby planowania (np. priorytet). Informacje do rozliczeń. Wskaźniki do kolejek porządkujących. Systemy operacyjne Wykład 2 7/31

Stany procesu Nowy (new) proces jest tworzony. Wykonywany (running) wykonywane są instrukcje programu. Oczekujący (waiting) proces oczekuje na jakieś zdarzenie, np. na zakończenie operacji wejścia-wyjścia, na przydział dodatkowego zasobu, synchronizuje się z innymi procesami. Gotowy (ready) proces czeka na przydział procesora. Zakończony (terminated) proces zakończył działanie i zwalnia zasoby. Systemy operacyjne Wykład 2 8/31

Cykl zmian stanu procesu wywłaszczenie nowy zakończony gotowy decyzja planisty wykonywany przyjęcie wyjście oczekujący zakończenie operacji we wy lub wystąpienie zdarzenia zażądanie operacji we wy lub oczekiwanie na zdarzenie Systemy operacyjne Wykład 2 9/31

Deskryptor zasobu Identyfikator zasobu. Rodzaj zasobu. Identyfikator twórcy zasobu. Lista i liczba dostępnych jednostek zasobu. Lista (kolejka) procesów oczekujących na jednostki danego zasobu. Procedura przydziału. Systemy operacyjne Wykład 2 10/31

Podział zasobów Ze względu na sposób wykorzystania: zasoby odzyskiwalne (zwrotne, reusable), zasoby nieodzyskiwalne (niezwrotne, zużywalne, consumable). Ze względu na sposób odzyskiwania: zasoby wywłaszczalne, zasoby niewywłaszczalne. Ze względu na tryb dostępu: współdzielone, wyłączne. Systemy operacyjne Wykład 2 11/31

Kolejki procesów Kolejka zadań (job queue) wszystkie procesy systemu. Kolejka procesów gotowych (ready queue) procesy gotowe do działania, przebywające w pamięci głównej. Kolejka do urządzenia (device queue) procesy czekające na zakończenie operacji wejścia-wyjścia. Kolejka procesów oczekujących na sygnał synchronizacji od innych procesami (np. kolejka procesów na semaforze). Systemy operacyjne Wykład 2 12/31

Kolejki w planowaniu przydziału kolejka procesów gotowych procesora procesor wej - wyj kolejka operacji wej - wyj zamówienie operacji wej - wyj sygnał kolejka procesów uśpionych upłynięcie kwantu czasu synchronizacja Systemy operacyjne Wykład 2 13/31

Przełączanie kontekstu zachowanie kontekstu w bloku kontrolnym 1 proces 1 bezczynność proces 2 bezczynność odtworzenie kontekstu z bloku kontrolnym 2 bezczynność proces 3 bezczynność bezczynność Systemy operacyjne Wykład 2 14/31

Planista Planista krótkoterminowy, planista przydziału procesora (CPU scheduler) zajmuje się przydziałem procesora do procesów gotowych. Planista średnioterminowy (medium-term scheduler) zajmuje się wymianą procesów pomiędzy pamięcią główną a pamięcią zewnętrzną (np. dyskiem). Planista długoterminowy, planista zadań (long -term scheduler, job scheduler) zajmuje się ładowaniem nowych programów do pamięci i kontrolą liczby zadań w systemie oraz ich odpowiednim doborem w celu zrównoważenia wykorzystania zasobów. Systemy operacyjne Wykład 2 15/31

Cykl zmian stanów procesu z uwzględnieniem wymiany nowy przerwanie przyjęcie (PD) zakończony wymiana (PS) gotowy zawieszony gotowy aktywny przydział proc. (PK) oczekujący aktywny wykonywany wymiana (PS) oczekujący zawieszony Systemy operacyjne Wykład 2 16/31

Obsługa procesów Tworzenie procesu: POSIX: fork, Windows: CreateProcess. Usuwanie procesu: POSIX: exit, abort, kill, Windows: ExitProcess, TerminateProcess. Zawieszanie i aktywacja procesu. Wstrzymywanie i wznawianie procesu. Zmiana priorytetu procesu: POSIX: nice (setpriority), Windows: SetPriorityClass. Oczekiwanie na zakończenie procesu: POSIX: wait, waitpid, Windows: brak bezpośredniego wsparcia, należy użyć odpowiednich mechanizmów synchronizacji Systemy operacyjne Wykład 2 17/31

Elementarne operacje na zasobach Tworzenie deskryptora zasobu. Usuwanie deskryptora zasobu. Realizacja żądania przydziału jednostek zasobu. Zwolnienie i odzyskiwanie jednostek zasobu odzyskiwalnego. Uwolnienie (wyprodukowanie) jednostki zasobu nieodzyskiwalnego. Systemy operacyjne Wykład 2 18/31

Wątki Wątek (lekki proces, lightweight process LWP) jest obiektem w obrębie procesu ciężkiego (heavyweight), posiadającym własne sterowanie i współdzielącym z innymi wątkami tego procesu przydzielone (procesowi) zasoby: segment kodu i segment danych w pamięci, tablicę otwartych plików, tablicę sygnałów. Systemy operacyjne Wykład 2 19/31

Realizacja wątków Realizacja wątków na poziomie jądra systemu operacyjnego jądro tworzy odpowiednie struktury (blok kontrolny) do utrzymywania stanu wątku. Realizacja wątków na poziomie użytkownika struktury związane ze stanami wątków tworzone są w przestrzeni adresowej procesu. Systemy operacyjne Wykład 2 20/31

Realizacja wątków na poziomie jądra systemu operacyjnego Wątek posiada własny blok kontrolny w jądrze systemu operacyjnego, obejmujący: stan licznika rozkazów, stan rejestrów procesora, stan rejestrów związanych z organizacją stosu. Własności realizacji wątków na poziomie jądra: przełączanie kontekstu pomiędzy wątkami przez jądro, większy koszt przełączanie kontekstu, bardziej sprawiedliwy przydział czasu procesora. Systemy operacyjne Wykład 2 21/31

Realizacja wątków w trybie użytkownika Deskryptor wątku znajduje się w tablicy wątków w pamięci danego procesu (jądro nie wie nic o wątkach). Własności realizacji na poziomie użytkownika: przydział czasu procesora dla procesu (nie dla wątku), przełączanie kontekstu pomiędzy wątkami przez jawne odwołania do mechanizmu obsługi wątków, mniejszy koszt przełączanie kontekstu (bez angażowania jądra systemu operacyjnego), możliwość głodzenia wątków tego samego procesu, gdy jeden z nich spowoduje przejście procesu w stan oczekiwania. Systemy operacyjne Wykład 2 22/31

Przełączanie kontekstu wątków przełączanie kontekstu przez wywołanie funkcji w trybie użytkownika przełączanie kontekstu przez jądro Systemy operacyjne Wykład 2 23/31

Obsługa wątków Tworzenie wątku: POSIX: pthread_create, Windows: CreateThread, CreateRomoteThread. Usuwanie wątku: POSIX: pthread_exit, pthread_cancel, Windows: ExitThread, TerminateThread. Wstrzymywanie i wznawianie wątku: POSIX: brak, Windows: SuspendThread, ResumeThread. Zmiana priorytetu wątku: POSIX: pthread_setschedprio, pthread_setschedparam, Windows: SetThreadPriority. Oczekiwanie na zakończenie wątku: POSIX: pthread_join, Windows: brak bezpośredniego wsparcia, należy użyć odpowiednich mechanizmów synchronizacji. Systemy operacyjne Wykład 2 24/31

Realizacja procesów/wątków w systemie LINUX W jądrze systemu Linux nie odróżnia się pojęcia wątku od procesu. Procesy mogą współdzielić takie zasoby, jak: przestrzeń adresowa, otwarte pliki, informacje o systemie plików, procedury obsługi sygnałów. Deskryptory procesów (o strukturze struct task_struct) przechowywane są na dwukierunkowej, cyklicznej liście zadań. Systemy operacyjne Wykład 2 25/31

Stany procesu (wątku) w systemie LINUX TASK_RUNNING wykonywanie lub gotowość (do wykonania). TASK_INTERRUPTIBLE oczekiwanie na zajście zdarzenia lub sygnał. TASK_UNINTERRUPTIBLE oczekiwanie na zajście zdarzenia, przy czym sygnały są ignorowane. TASK_ZOMBI stan zakończenia utrzymywany w celu przechowania deskryptora procesu. TASK_STOP zatrzymanie w wyniku otrzymania sygnału (np. SIGSTOP). Systemy operacyjne Wykład 2 26/31

Cykl zmian stanów procesu (wątku) w systemie Linux zombi running (gotow.) running (wykon.) utworzenie przez przodka interruptible uninterruptible oczekiwanie stop Systemy operacyjne Wykład 2 27/31

Proces w systemie WINDOWS Proces stanowi środowisko do wykonywania wątków. Struktury opisu procesu obejmują: EPROCESS blok centrum wykonawczego, opisujący proces, KPROCESS blok kontrolny procesu, część struktury EPROCESS, PEB blok środowiska procesu, dostępny w trybie użytkownika. Systemy operacyjne Wykład 2 28/31

Wątki w systemie WINDOWS Wątki korzystają z zasobów przydzielonych procesom. Wątki (nie procesy) ubiegają się o przydział procesora i są szeregowane przez planistę krótkoterminowego. Struktury opisu wątku obejmują: ETHREAD blok centrum wykonawczego, opisujący wątek, KTHREAD blok kontrolny procesu, część struktury ETHREAD, TEB blok środowiska procesu, dostępny w trybie użytkownika. Systemy operacyjne Wykład 2 29/31

Stany wątku w systemie WINDOWS Inicjalizowany (initialized, wartość 0) stan wewnętrzny w trakcie tworzenia wątku, Gotowy (ready, wartość 1) oczekuje na przydział procesora, Wykonywany (running, wartość 2), Czuwający (standby, wartość 3) wybrany do wykonania jako następny, Zakończony (terminated, wartość 4), Oczekujący (waiting, wart. 5) oczekuje na zdarzenie, Przejście (transition, wartość 6) oczekuje na sprowadzenie swojego stosu jądra z pliku wymiany, Unknown (wart. 7) Systemy operacyjne Wykład 2 30/31

Cykl zmian stanów wątku w systemie WINDOWS inicjalizowany zakończony oczekujący gotowy przejście wykonywany czuwający Systemy operacyjne Wykład 2 31/31