Systemy operacyjne III

Podobne dokumenty
Zarządzanie procesami i wątkami

4. Procesy pojęcia podstawowe

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

4. Procesy pojęcia podstawowe

Informatyka, systemy, sieci komputerowe

Zarządzanie procesorem

Procesy, wątki i zasoby

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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

4. Procesy pojęcia podstawowe

1.1 Definicja procesu

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

Procesy, zasoby i wątki

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

Systemy Operacyjne - zarządzanie procesami

Planowanie przydziału procesora

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

Systemy operacyjne Procesy i wątki

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

Systemy operacyjne III

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

Podstawy Informatyki Systemy operacyjne

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

Pytania do treści wykładów:

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

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

Prezentacja systemu RTLinux

projektowanie systemu

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

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

Planowanie przydziału procesora

System operacyjny MACH

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

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

Budowa systemów komputerowych

Przykłady implementacji planowania przydziału procesora

Zarządzanie zasobami pamięci

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

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

Wprowadzenie do systemów operacyjnych

Zarządzanie procesami (omawiane zagadnienia)

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

Systemy operacyjne. Paweł Pełczyński

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

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

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Wprowadzenie do systemu Minix

Działanie systemu operacyjnego

Działanie systemu operacyjnego

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

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

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

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

Działanie systemu operacyjnego

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

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

Materiały pomocnicze 1

dr inż. Jarosław Forenc

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

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

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

Materiały pomocnicze 1

Jądro systemu operacyjnego

Systemy operacyjne III

Struktura systemów komputerowych

Programowanie Niskopoziomowe

Planowanie przydziału procesora

Komputery przemysłowe i systemy wbudowane

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 III

Zarządzanie pamięcią operacyjną

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

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

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

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

Zarządzanie pamięcią w systemie operacyjnym

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

Struktury systemów operacyjnych

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

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

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

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

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

Działanie systemu operacyjnego

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

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

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

Zarządzanie pamięcią operacyjną

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Transkrypt:

Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1

Procesy w systemie operacyjnym 2

Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów Proces = wykonywany program, razem ze swoimi danymi, stosem, wartościami rejestrów i licznika rozkazów. 3

Kod programu Dane programu Stos Składniki procesu (obraz procesu) Dodatkowe informacje związane z wykonywaniem procesu. 4

Procesy w systemie Proces zarządzający Proces I Proces II Proces III 5

Przełączanie procesów 6

Dwustanowy model procesu Proces w dwóch stanach uruchomiony, oczekujący. Diagram stanów: Przydział procesora Czekający Uruchomiony Wstrzymanie procesu 7

Model 2-stanowy c.d. Wejście Przydział Wyjście CPU Kolejka procesów Wstrzymanie 8

Model 2-stanowy implementacja i ograniczenia Model 2-stanowy umożliwia prostą implementację Przydział cykliczny, kolejka procesów na zasadzie FIFO Problem: nie zawsze proces czekający jest gotowy do wykonania. Oczekujący na we/wy Oczekujący na stronę pamięci (stronicowanie) Oczekuje na sygnał od innego procesu 9

Model 5-stanowy NOWY 1 GOTOWY 2 URUCHOMIO- NY 4 ANULOWANY 6 ZABLOKO- WANY 3 5 1. Przyjęcie procesu 2. Przydział CPU 3. Przerwa 4. Zwolnienie 5. Oczekiwanie na zdarzenie 6. Pojawienie się zdarzenia 10

Realizacja modelu 5-stanowego Wejście Przydział Wyjście CPU Kolejka procesów Wstrzymanie Oczekiwanie na zdarzenie Zdarzenie Kolejka procesów zablokowanych 11

Rozwinięcia Wprowadzenie priorytetu procesu osobne kolejki gotowych procesów o różnych priorytetach Różne zdarzenia osobne kolejki procesów oczekujących na poszczególne zdarzenia Mechanizm wymiany przenoszenie zablokowanych procesów do pamięci pomocniczej 12

Mechanizm wymiany 2 nowe stany: zablokowany zawieszony gotowy zawieszony Przejścia zablokowany zablokowany zawieszony zablokowany zawieszony gotowy zawieszony gotowy zawieszony gotowy 13

Zarządzanie procesami W celu efektywnego zarządzania procesami jądro SO przechowuje w pamięci tablicę procesów. Każdy proces reprezentowany jest przez deskryptor procesu (blok kontrolny procesu PCB). Deskryptor procesu zawiera informacje o stanie procesu oraz dane potrzebne przy przełączaniu procesów 14

Deskryptor procesu Zarządzanie procesem Rejestry Licznik programu Wskaźnik stosu Stan procesu Priorytet Parametry szeregowania ID procesu Grupa procesu ID rodzica Sygnały Czas rozpoczęcia procesu Wykorzystany czas CPU Czas CPU potomków Zarządzanie pamięcią Wskaźnik segmentu kodu Wskaźnik segmentu danych Wskaźnik segmentu stosu Zarządzanie systemem plików Katalog główny Katalog roboczy Deskryptory otwartych plików ID użytkownika ID grupy 15

Hierarchia procesów Niektóre systemy operacyjne (MS Windows) nie stosują hierarchii procesów. W systemach UNIX procesy tworzą hierarchię Każdy proces ma rodzica (proces nadrzędny) Rodzic może mieć wielu potomków (procesów podrzędnych) 16

Tablica procesów Tablica procesów może być przechowywana w pamięci w postaci statycznej lub dynamicznej Przykład implementacji cykliczna lista dwukierunkowa. Operacje: Rezerwacja nowego obszaru na deskryptor procesu Zwolnienie określonego obszaru deskryptora procesu Przeglądanie tablicy (prev, next) 17

Tablica procesów c.d. W celu zwiększenia efektywności jądro przechowuje procesy gotowe do wykonania na osobnej liście. Procesy czekające na zdarzenia grupowane są w klasy i umieszczane w osobnych listach. Dodatkowo stosuje się inne struktury danych np. tablice mieszające (hash table) do szybkiego znajdowania procesu za pomocą jego PID. 18

Tworzenie procesu Tworzenie procesu dodawanie nowego procesu do puli przetwarzanych procesów Przyczyny: Nowe zadanie wsadowe Logowanie użytkownika System tworzy proces (np. realizacja usługi) Istniejący proces tworzy proces potomny 19

Tworzenie procesu Nadanie numeru identyfikacyjnego Alokacja przestrzeni na obraz procesu Utworzenie PCB procesu Zainicjowanie danych przechowywanych w PCB procesu. Umieszczenie na odpowiedniej liście procesów. 20

Tworzenie procesu c.d. Klasycznie: stworzenie nowego obrazu procesu w pamięci wczytanie pliku wykonywalnego rozpoczęcie wykonywania procesu UNIX nietypowe podejście stworzenie dokładnej kopii procesu-rodzica (funkcja fork) wczytanie do przestrzeni adresowej procesu nowego pliku wykonywalnego (funkcja exec) 21

Tworzenie procesu c.d. Kopiowanie procesu (fork) Podejście tradycyjne fizyczne kopiowanie obszaru pamięci. Technika Copy on Write - oba procesy korzystają z tych samych stron pamięci do czasu pierwszej próby zapisu Stosowanie tzw. lekkich procesów (LWP) 22

Zakończenie procesu Zakończenie procesu usunięcie procesu z puli działających procesów. Przyczyny: Normalne zakończenie Brak pamięci Naruszenie ochrony pamięci, zasobów, przekroczenie limitów Błąd wykonania (nielegalny rozkaz, dane) Błąd wejścia/wyjścia Zakończenie procesu macierzystego Interwencja operatora 23

Procesy ZOMBIE UNIX-owe procesy mogą odpytać jądro o stan swoich procesów potomnych (np. funkcja wait). Aby na to pozwolić deskryptor zakończonego procesu musi być przechowywany aż procesrodzic odbierze informację o zakończeniu potomka. Martwy proces ma status TASK_ZOMBIE 24

Przełączanie procesów Powody przełączania procesów Przerwanie zegara proces wykorzystał swój przedział czasu Przerwanie we/wy nastąpiło zdarzenie które odblokowuje proces o wyższym priorytecie Błąd braku strony proces potrzebuje strony której aktualnie nie ma w pamięci. 25

Etapy przełączania procesów Zapisanie kontekstu aktualnego procesu Aktualizacja PCB procesu Przeniesienie procesu do odpowiedniej kolejki Wybór innego procesu Aktualizacja PCB nowego procesu Przywrócenie kontekstu nowego procesu do stanu sprzed jego zatrzymania. 26

Szeregowanie procesów Określeniem kiedy przełączyć procesy i ile czasu przydzielać każdemu z nich zajmuje się moduł szeregowania procesów. Szeregowanie: planowanie długoterminowe planowanie średnioterminowe planowanie krótkoterminowe 27

Planowanie długoterminowe Realizowane w trakcie tworzenia nowego procesu. Decyzja o liczbie procesów w systemie. Najbardziej efektywny dobór uruchamianych procesów (wydajne wykorzystanie zasobów). 28

Planowanie średnioterminowe Związane z procesem wymiany między pamięcią główną a urządzeniem wymiany (dysk). Decyzja, które procesy (lub ich fragmenty). usunąć z pamięci do urządzenia wymiany, a które pozostawić w pamięci głównej. Procesy, które będą wkrótce wykonywane, powinny być w pamięci główne, pozostałe powinny zwolnić pamięć dla procesów uruchamianych. 29

Planowanie krótkoterminowe Związane z udostępnianiem procesom czasu procesora. Zwykle oparte na systemie priorytetów Powinno reagować na różne zdarzenia w systemie np. przerwania zegarowe, przerwania z urządzeń wejścia i wyjścia, wywołania funkcji systemowych i sygnały. 30

Wywłaszczanie Szeregowanie bez wywłaszczania po uzyskaniu dostępu do CPU proces wykonuje się dopóki nie zgłosi żądania I/O lub nie wywoła jakiejś funkcji systemowej. Szeregowanie z wywłaszczaniem system operacyjny może w dowolnym momencie zabrać dostęp do CPU. Proces przenoszony jest do kolejki procesów gotowych i czeka na kolejny przydział procesora. 31

Kryteria ustalania priorytetu Czas oczekiwania czas spędzony w kolejce procesów gotowych. Czas obsługi dotychczasowy czas wykorzystany przez proces. Czas przebywania w systemie suma czasu oczekiwania, obsługi, oraz oczekiwania na podsystem wejścia i wyjścia. Obciążenie systemu liczba procesów w systemie, dostępne zasoby. Priorytet zewnętrzny parametr nadany przez użytkownika. 32

Algorytmy szeregowania kryteria oceny Z punktu widzenia systemu operacyjnego wykorzystanie CPU. przepustowość (liczba zakończonych procesów na jednostkę czasu). Z punktu widzenia użytkownika czas cyklu przetwarzania (czas od uruchomienia do zakończenia procesu). czas reakcji (czas między zgłoszeniem żądania a odpowiedzią). 33

Przykłady algorytmów szeregowania FCFS First Come First Served LCFS Last Come First Served RR - Round Robin SPF Shortest Process First SRT Shortest Remaining Time Highest Response Ratio Next Feedback 34

Algorytm FCFS Proces gotowy dołącza na koniec kolejki procesów gotowych. Gdy dany proces przerywa działanie, pobierany jest kolejny proces z kolejki. Stosowany przy planowaniu bez wywłaszczania. Lepsze zachowanie przy długich procesach wymagających CPU. 35

Algorytm RR Szeregowanie z wywłaszczaniem. Wywłaszczanie inicjowane jest sygnałem zegarowym o określonej częstości. Problem z określeniem długości kwantu czasu. Procesy wykorzystujące CPU są bardziej faworyzowane niż procesy związane z obsługą I/O. 36

Algorytm SPF Szeregowanie bez wywłaszczania. Preferowanie krótkich procesów, duża przepustowość. Problem z estymacją czasu potrzebnego do zakończenia procesu. Niebezpieczeństwo zagłodzenia długich procesów. 37

Wybór algorytmu szeregowania Brak idealnego algorytmu szeregowania. Efektywność zależy od specyfiki wykorzystania. Przykład aktualna dyskusja związana z modułem szeregowania Linuxa: Algorytm BFS lepszy dla procesów interaktywnych, korzystających z I/O (desktop). Algorytm CFS lepszy dla przetwarzania wsadowego obciążającego CPU (serwer). 38

Tryb użytkownika Tryb jądra Tryb wykonywania Mniej uprzywilejowany Niedostępne niektóre rozkazy Niedostępne niektóre obszary pamięci i dane systemowe Tryb uprzywilejowany Dostęp do wewnętrznych struktur danych jądra Przejście do trybu jądra następuje tylko poprzez wywołanie jednej ze ściśle zdefiniowanych funkcji systemowych (syscall). 39

Organizacja jądra SO Jądro działa poza strukturą procesów jądro działa poza kontekstem procesów użytkowników jądro ma własną pamięć i stos Kod jądra działa w kontekście procesów wywołania systemowe realizowane są w ramach procesu procesy przechowują swoje i systemowe struktury danych Jądro oparte na procesach jądro SO składa się z kolekcji procesów wygodna implementacja wydajne w systemach wieloprocesorowych 40

Procesy i wątki Proces charakteryzuje się dwiema właściwościami: Prawa własności do zasobów Szeregowanie / wykonywanie Właściwości te można traktować oddzielnie wprowadzając wątki 41

Realizacja wielowątkowości Jeden proces jeden wątek Jeden proces wiele wątków 42

Realizacja wielowątkowości c.d. Wiele procesów po 1 wątku Wiele procesów wiele wątków 43

Elementy procesu i wątku Proces Wirtualna przestrzeń adresowa obraz procesu Chroniony dostęp do procesora, zasobów, innych procesów Wątek Kontekst wątku Lokalne dane i lokalny stos wykonawczy Dostęp do pamięci i zasobów procesu (współdzielony z innymi wątkami) 44

Elementy procesu i wątku ELEMENTY PROCESU ELEMENTY WĄTKU Przestrzeń adresowa Zmienne globalne Otwarte pliki Procesy potomne Uchwyty obsługi sygnałów Informacje rozliczeniowe Licznik programu Rejestry Stos Stan 45

Korzyści stosowania wątków Szybkie tworzenie wątku Szybkie przerwanie i wznowienie wątku Szybkie przełączanie wątku Wydajna komunikacja między wątkami poprzez pamięć wspólną 46

Wady stosowania wątków Brak ochrony zasobów wszystkie wątki je współdzielą Konieczność synchronizacji wątków w celu ochrony danych 47

Wątki vs. procesy Czas potrzebny na utworzenie wątku użytkownika, procesu lekkiego i procesu na komputerze SPARCstation 2 Mechanizm Czas tworzenia (mikrosekundy) Wątek użytkownika 52 Proces lekki 350 Proces 1700 48

Implementacje wątków W przestrzeni jądra (Lightweight Processes LWP) jądro jest świadome istnienia wątków i bierze je pod uwagę przy szeregowaniu procesów W przestrzeni użytkownika np. biblioteka pthreads. realizowane całkowicie w ramach kontekstu użytkownika jądro traktuje je jako jeden proces. 49