Procesy, zasoby i wątki

Podobne dokumenty
Procesy, wątki i zasoby

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

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

Zarządzanie procesorem

Informatyka, systemy, sieci komputerowe

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 WYKLAD 6 - procesy

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

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

Zarządzanie procesami i wątkami

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

Proces y i y w i ąt ą ki

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

projektowanie systemu

4. Procesy pojęcia podstawowe

Systemy operacyjne III

Planowanie przydziału procesora

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

Planowanie przydziału procesora

4. Procesy pojęcia podstawowe

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

1.1 Definicja procesu

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

4. Procesy pojęcia podstawowe

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Planowanie przydziału procesora

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

Problem zakleszczenia

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

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)

Prezentacja systemu RTLinux

Pytania do treści wykładów:

Oprogramowanie systemowe

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

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

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

Wielozadaniowość w systemie Microsoft Windows

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

Oprogramowanie systemowe

Struktury systemów operacyjnych

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

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

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

Działanie systemu operacyjnego

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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

Oprogramowanie systemowe

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

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

Systemy Operacyjne - zarządzanie procesami

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

Podstawy Informatyki Systemy operacyjne

Działanie systemu operacyjnego

Materiały pomocnicze 1

Działanie systemu operacyjnego

System operacyjny MACH

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

Przykłady implementacji planowania przydziału procesora

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

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

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

Systemy operacyjne Procesy i wątki

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

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

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

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

Zarządzanie pamięcią operacyjną

LEKCJA TEMAT: Zasada działania komputera.

Budowa systemów komputerowych

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

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

Zarządzanie pamięcią w systemie operacyjnym

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

Planowanie przydziału procesora

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

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

Zarządzanie procesami (omawiane zagadnienia)

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

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

Procesy i wątki. Wątki. Procesy

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

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

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

Podstawowe zagadnienia

dr inż. Grażyna KRUPIŃSKA D-10 pokój 227 WYKŁAD 12 WSTĘP DO INFORMATYKI

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

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

Organizacja typowego mikroprocesora

Mikroprocesor Operacje wejścia / wyjścia

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Urządzenia wejścia-wyjścia

Wykład 2 Proces, stany procesu i przejścia pomiędzy nimi. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Transkrypt:

Dariusz Wawrzyniak 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 Plan wykładu (2) Koncepcja procesu Koncepcja zasobu 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. 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. (3) (4) Podział operacji jądra systemu w zarządzaniu procesami i zasobami Zarządcy 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ń 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. (5) (6) 1

Struktury danych Deskryptor procesu 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. Identyfikator procesu Stan procesu (nowy,, 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 (7) (8) Stany procesu Cykl zmian stanów procesu Nowy (ang. new) proces jest tworzony. Wykonywany (ang. running) wykonywane są instrukcje programu. Oczekujący (ang. 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 (ang. ready) proces czeka na przydział procesora. Zakończony (ang. terminated) proces zakończył działanie i zwalnia zasoby. przyjęcie nowy zakończenie operacji wej-wyj lub wystąpienie zdarzenia wywłaszczenie decyzja planisty wykonywany zakończony wyjście zażądanie operacji wejwyj lub oczekiwanie na zdarzenie (9) (10) Deskryptor zasobu Klasyfikacja zasobów Identyfikator zasobu Rodzaj zasobu Identyfikator twórcy zasobu Lista i liczba dostępnych jednostek zasobu Lista (kolejka) procesów ch na jednostki danego zasobu Procedura przydziału Ze względu na sposób wykorzystania zasoby odzyskiwalne (zwrotne, ang. reusable), zasoby nieodzyskiwalne (niezwrotne, zużywalne, ang. 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 (11) (12) 2

Kolejki procesów Diagram kolejek w planowaniu przydziału procesora Kolejka zadań (ang. job queue) wszystkie procesy systemu. Kolejka procesów ch (ang. ready queue) procesy gotowe do działania, przebywające w pamięci głównej. Kolejka do urządzenia (ang. device queue) procesy czekające na zakończenie operacji wejścia-wyjścia. Kolejka procesów ch na sygnał synchronizacji od innych procesami (np. kolejka procesów na semaforze). kolejka procesów ch wej-wyj sygnał kolejka operacji wej-wyj kolejka procesów uśpionych procesor zamówienie operacji wej-wyj upłynięcie kwantu czasu synchronizacja (13) (14) Przełączanie kontekstu Planista proces 1 proces 2 proces 3 zachowanie kontekstu w bloku kontrolnym 1 odtworzenie kontekstu z bloku kontrolnego 2 Planista krótkoterminowy, planista przydziału procesora (ang. CPU scheduler) zajmuje się przydziałem procesora do procesów ch. Planista średnioterminowy (ang. 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ń (ang. 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. (15) (16) Cykl zmian stanów procesu z uwzględnieniem wymiany Obsługa procesów (1) wymiana (PS) nowy zawieszony aktywny przerwanie przyjęcie (PD) przydział proc. (PK) aktywny wykonywany zakończony wymiana (PS) zawieszony Tworzenie procesu POSIX: fork Windows: CreateProcess Usuwanie procesu POSIX: exit, abort, kill Windows: ExitProcess, TerminateProcess (17) (18) 3

Obsługa procesów (2) Elementarne operacje na zasobach 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 Tworzenie deskryptora zasobu Usuwanie deskryptora zasobu Realizacja żądania przydziału jednostek zasobu Zwolnienie i odzyskiwanie jednostek zasobu odzyskiwalnego Uwolnienie (wyprodukowanie) jednostki zasobu nieodzyskiwalnego (19) (20) Wątki Realizacja wątków Wątek (lekki proces, ang. 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 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. (21) (22) Realizacja wątków na poziomie jądra systemu operacyjnego Realizacja wątków w trybie użytkownika 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. 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 (23) (24) 4

Przełączanie kontekstu wątków Obsługa wątków (1) przełączanie kontekstu przez wywołanie funkcji w trybie użytkownika Tworzenie wątku POSIX: pthread_create Windows: CreateThread, CreateRomoteThread Usuwanie wątku POSIX: pthread_exit, pthread_cancel Windows: ExitThread, TerminateThread przełączanie kontekstu przez jądro (25) (26) Obsługa wątków (2) Realizacja procesów/wątków w systemie Linux 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 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ń. (27) (28) Stany procesu (wątku) w systemie Linux Cykl zmian stanów 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) utworzenie przez przodka running (gotow.) interruptible uninterruptible stop runnig (wykon.) zombi oczekiwanie (29) (30) 5

Proces w systemie Windows 2000/XP Wątki w systemie Windows 2000/XP 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. 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. (31) (32) Stany wątku w systemie Windows 2000/XP Cykl zmian stanów wątku w systemie Windows 2000/XP 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) zakończony wykonywany inicjalizowany przejście czuwający (33) (34) 6