projektowanie systemu

Podobne dokumenty
Zarządzanie procesami i wątkami

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

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

Zarządzanie procesorem

Proces y i y w i ąt ą ki

Procesy, wątki i zasoby

Wykład 3. Procesy i wątki. 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

4. Procesy pojęcia podstawowe

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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

4. Procesy pojęcia podstawowe

Struktury systemów operacyjnych

Systemy operacyjne III

4. Procesy pojęcia podstawowe

1.1 Definicja procesu

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

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

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

Systemy operacyjne. Paweł Pełczyński

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

System operacyjny MACH

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

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

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

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Budowa systemów komputerowych

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

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

Architektura i administracja systemów operacyjnych

Systemy operacyjne system przerwań

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

Wykład 7. Zarządzanie pamięcią

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

Struktury systemów operacyjnych

Procesy, zasoby i wątki

Zarządzanie procesami (omawiane zagadnienia)

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

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

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Planowanie przydziału procesora

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

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

Zarządzanie pamięcią operacyjną

Planowanie przydziału procesora

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

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

Działanie systemu operacyjnego

Architektura systemu komputerowego

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

Struktura systemów komputerowych

Zarządzanie pamięcią w systemie operacyjnym

Architektura komputerów

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

Procesy i wątki. Wątki. Procesy

Podstawowe zagadnienia

Działanie systemu operacyjnego

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

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Działanie systemu operacyjnego

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

Działanie systemu operacyjnego

1. Rola pamięci operacyjnej

Systemy Operacyjne - zarządzanie procesami

System komputerowy. System komputerowy

Wątki jądra. Maciej Szwaja

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

Planowanie przydziału procesora

Zarządzanie pamięcią operacyjną

Systemy operacyjne Procesy i wątki

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

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

Systemy operacyjne III

LEKCJA TEMAT: Zasada działania komputera.

Planowanie przydziału procesora

Prezentacja systemu RTLinux

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Podstawy Informatyki Systemy operacyjne

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

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

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

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

ochrona w systemie operacyjnym

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

... Ireneusz Mrozek. Wydział Informatyki

Pytania do treści wykładów:

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

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

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

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

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

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

Transkrypt:

projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy do zaprojektowania, realizacji i pielęgnowania, a także elastyczny, niezawodny, wolny od błędów i wydajny

implementacja systemu dawniej systemy operacyjne pisane w całości w językach asemblerowych OS/360 pierwsza próba użycia języka wysokiego poziomu (PL/I) obecnie systemy operacyjne pisane prawie wyłącznie w językach wyższego poziomu (głównie w C lub C++)

implementacja systemu Zalety używania języka wysokiego poziomu: szybkość programowania łatwość rozumienia, modyfikowania i sprawdzania kodu wysoka przenośność

implementacja systemu Wady: gorsza wydajność większe zużycie zasobów (szczególnie pamięci) wąskie gardła przepisywane na język maszynowy

generowanie systemu system operacyjny - projektowany na pewną klasę architektur i konfiguracji sprzętu musi być skonfigurowany dla każdej specyficznej instalacji komputerowej generowanie systemu generacja systemu wymaga znajomości konfiguracji danego sprzętu w chwili obecnej dominuje podejście polegające na generowaniu systemu o jak największej uniwersalności kosztem rozmiaru i wydajności

rozruch systemu (bootstrap) bootstrap procedura rozpoczęcia pracy systemu operacyjnego bootstrap loader kod przechowywany w pamięci ROM lokalizuje miejsce w pamięci pomocniczej, z którego ładuje kolejny program ładujący program ładujący może zlokalizować kolejny program ładujący (stąd nazwa bootstrap) załadowanie i uruchomienie jądra jądro ładuje moduły i sterowniki oraz uruchamia usługi i programy systemowe

PROCESY i WĄTKI AGENDA: koncepcja procesu planowanie pracy procesów operacje na procesach współdziałanie procesów komunikacja międzyprocesowa implementacja wątków modele pracy wielowątkowej schematy wielowątkowości problemy pracy wielowątkowej przykłady rzeczywistych rozwiązań

Ogół czynności systemu dla wykonania konkretnej pracy w systemach wsadowych JOB (praca) w systemach z podziałem czasu TASK (zadanie) proces = program + wykonanie innymi słowy: proces to wykonujący się kod jeden program może być treścią kilku procesów jeden proces ma źródło w tekście jednego programu aplikacja może składać się z więcej niż jednego procesu

Składowe procesu kod procesu (text section) licznik rozkazów (program counter) stos procesu (process stack) dane procesu (data section)

Stan procesu Przebywający w systemie proces może wielokrotnie zmieniać swój stan: NOWY AKTYWNY CZEKAJĄCY GOTOWY w chwili tworzenia kod procesu jest wykonywany przez CPU proces nie wykonuje się, czeka na zdarzenie proces czeka na przydział procesora ZAKOŃCZONY zakończył działanie

Stan procesu W danej chwili: liczba aktywnych procesów jest co najwyżej równa liczbie CPU liczba procesów czekających i gotowych jest dowolnie duża

Diagram stanów procesu NOWY ZAKOŃCZONY przyjęcie GOTOWY przydział planisty AKTYWNY zdarzenie zakończone przerwanie CZEKAJĄCY czekanie na zdarzenie

Atrybuty procesu pamiętane w bloku sterowania procesu (process control block PCB) identyfikator procesu (process identifier PID) (unikalny w systemie) nazwa lub numer stan procesu (process state) licznik rozkazów (program counter) adres następnego rozkazu kontekst (program context) rejestry procesora dane planisty priorytet, kolejki zamówień, etc dane zarządcy pamięci rejestry graniczne, klucze pamięci, etc dane rozliczeniowe czas pracy, zużyte zasoby, etc dane zarządcy we/wy przydzielone urządzenia, otwarte pliki

Hipotetyczna budowa PCB Adres następnego PCB Stan procesu PID Licznik rozkazów Kontekst Spis przydzielonej pamięci P1 P2 Lista PCB Spis otwartych plików : : P3

Proces P1 Przełączanie kontekstu System operacyjny przerwanie/wywołanie usługi systemu Proces P2 Przechowaj kontekst P1 w PCB1 Odtwórz kontekst P2 w PCB2 przerwanie/wywołanie usługi systemu Przechowaj kontekst P2 w PCB2 Odtwórz kontekst P1 z PCB1

Planowanie procesów (scheduling) Cel: jak najefektywniejsze wykorzystanie procesora. Planista (scheduler) podejmuje decyzje co do kolejności aktywowania procesów. Kolejki planowania (przykładowe): kolejka zadań (procesów) kolejka procesów gotowych (ready queue) kolejka do urządzenia (device queue) [każde urządzenie może mieć własną kolejkę] PROCESY WĘDRUJĄ POMIĘDZY KOLEJKAMI W TAKT ZMIAN ICH STANU

Diagram czynności planisty nowy Kolejka procesów gotowych CPU zakończony we/wy Kolejka we/wy Zamówienie we/wy Zużycie kwantu czasu zdarzenie Oczekiwanie na zdarzenie

Kategorie planistów Planista długoterminowy (long term scheduler LTS) inaczej planista zadań (job scheduler) wybiera zadania z puli zadań (przechowywanej zewnętrznie) ładuje do pamięci i kolejkuje nadzoruje liczbę procesów w pamięci wywoływany rzadko może być powolny Planista krótkoterminowy (short term scheduler STS) wybiera jeden proces z kolejki procesów gotowych wywoływany często musi być szybki

Klasy procesów Ograniczone przez we/wy (ang. I/O bound) intensywne we/wy przy niewielkim obciążeniu CPU np. bazy danych Ograniczone przez CPU (ang. CPU bound) intensywnie korzysta z CPU przy niewielkim we/wy np. obliczenia naukowe Jakie są korzystne i niekorzystne skojarzenia?

Dodatkowa kategoria planisty Planista średnioterminowy (mid term scheduler MTS) inaczej planista swapowania (swap scheduler) odpowiedzialny za wymianę procesów pomiędzy pamięcią operacyjną a pamięcią pomocniczą

Diagram planisty średnioterminowego kolejka procesów częściowo wykonanych usuniętych z pamięci operacyjnej nowy kolejka procesów gotowych CPU zakończony we/wy kolejka we/wy zamówienie we/wy

Przełączanie kontekstu przełączenie procesora do innego procesu (context switch) wymaga przechowania stanu starego procesu i załadowania przechowanego stanu nowego procesu czas przełączania kontekstu jeden z parametrów systemu operacyjnego (np. w RTS jest krytyczny) jest daniną" na rzecz systemu brak użytecznej pracy czas przełączania zależy od możliwości sprzętu (zwykle od 1 do 100 mikrosekund) niektóre procesory mają po kilka zbiorów rejestrów: przełączenie kontekstu zmiana wartości wskaźnika do bieżącego zbioru rejestrów (jeden rozkaz maszynowy) przełączanie kontekstu może być wąskim gardłem systemu operacyjnego (bottleneck)

Tworzenie procesów proces może powołać do życia kolejny proces proces macierzysty (rodzicielski) parent process proces potomny child process drzewo procesów (w U*x) korzeniem jest zawsze proces init (w Linuksach zastępowany przez systemd)

Współpraca procesów Dzielenie zasobów - warianty: dzieci dziedziczą wszystkie zasoby rodzica dzieci dziedziczą część zasobów rodzica dzieci nie dziedziczą żadnych zasobów rodzica

Współpraca procesów Wspólne wykonanie - warianty: dzieci i rodzic wykonują się współbieżnie rodzic czeka na zakończenie pracy dzieci

Współpraca procesów Obraz tekstu procesów warianty: dziecko otrzymuje kod rodzica (w U*x: fork()) dziecko otrzymuje nowy kod (w U*x: exec())

Kończenie procesów Na własne życzenie: proces potomny kończy pracę funkcją exit() przekazuje systemowi informację o kodzie zakończenia (completion/exit/return code) system operacyjny odzyskuje wszystkie zasoby procesu

Kończenie procesów Na życzenie któregoś z rodziców: rodzic stwierdza, że dziecko nadużyło zasobów, bądź wykonuje się niepoprawnie albo... rodzic stwierdza, że dziecko nie jest mu już potrzebne rodzic kończy proces dziecka funkcją kill() jeśli dziecko ma dzieci, to one również są kaskadowo kończone