Procesy a vlákna (Processes and Threads)

Podobné dokumenty
Procesy a vlákna - synchronizace

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

ÚVOD DO OPERAČNÍCH SYSTÉMŮ

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Management procesu I Mgr. Josef Horálek

Operační systémy. Přednáška 1: Úvod

Operační systémy. Přednáška 2: Procesy a vlákna

Principy operačních systémů. Lekce 4: Správa procesů

Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication)

ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Vývoj SW aplikací. Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení

Téma 3. Procesy a vlákna

Stavba operačního systému

Přidělování CPU Mgr. Josef Horálek

Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 11. březen, 2011

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Přednáška. Implementace procesů/vláken. Plánování vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

PB002 Základy informačních technologií

Paralelní programování

Stavy procesů. Požadavky na OS při práci s procesy

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Služba ve Windows. Služba (service) je program

Vláknové programování část I

Operační systém (Operating System)

Virtuální přístroje. Použitá literatura. Operační systémy, vývoj aplikačních programů, speciální techniky programování

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Stavy procesů. Požadavky na OS při práci s procesy

Procesy a vlákna. A3B33OSD (J. Lažanský) verze: Jaro 2014

Von Neumannovo schéma

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Úvod do Linuxu. SŠSI Tábor 1

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Operační systémy. Přednáška 4: Komunikace mezi procesy

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška III. 7. listopad, / 23

Operační systém. Logické prostředky výpoč etního systému jsou:

Principy operačních systémů

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přidělování paměti II Mgr. Josef Horálek

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Téma 3 Procesy a vlákna

Pojem Výpočetní proces. Požadavky na OS při práci s procesy. Stavy procesů

Principy operačních systémů. Lekce 1: Úvod

09. Memory management. ZOS 2006, L.Pešička

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Implementace systémů HIPS: historie a současnost. Martin Dráb

IT ESS II. 1. Operating Systém Fundamentals

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Technické vybavení počítače. (všechny části z nichž je počítač složen)

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

Synchronizace Mgr. Josef Horálek

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

OPS Paralelní systémy, seznam pojmů, klasifikace

Paralelní programování

Algoritmizace a programování

Distribuovaný systém je takový systém propojení množiny nezávislých počítačů, který poskytuje uživateli dojem jednotného systému.

Přidělování paměti I Mgr. Josef Horálek

Vlákna Co je to vlákno?

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I / 21

Co mi to tu vlastně běží?

Operační systémy 2. Přednáška číslo 1. Úvod do OS

11 Návrh programového vybavení

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu

Architektury paralelních počítačů I.

Úloha OS, prostředky počítače, představa virtuálního počítače

Operační systémy pro systémy sběru dat (=DAQ systems). Vývoj aplikačních programů. Operační systémy pro DAQ RTOS VxWorks Windows CE RTX LabVIEW RT

Logická organizace paměti Josef Horálek

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

TÉMATICKÝ OKRUH Softwarové inženýrství

vjj 1. Priority. Dispatcher

Paralelní programování

Systém adresace paměti

Operační systémy. Tomáš Hudec.

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Využijte plný výkon procesorů s více jádry v LabVIEW 8.5

Výpočetní technika. PRACOVNÍ LIST č. 7. Ing. Luděk Richter

OS Plánování procesů

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Ukázka zkouškové písemka OSY

Windows a real-time. Windows Embedded

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Operační systémy 1. Přednáška číslo Souborové systémy

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

a co je operační systém?

Činnost počítače po zapnutí

Přijímací zkouška - informatika

Virtuální přístroje. Operační systémy, vývoj aplikačních programů, speciální techniky programování

OPERAČNÍ SYSTÉMY VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ ÚVOD DO TEORIE OPERAČNÍCH SYSTÉMŮ. doc. Dr. Ing.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Transkript:

ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012

Použitá literatura [1] Stallings, W.: Operating Systems. Internals and Design Principles. 4th Edition. Prentice Hall, New Jersey, 2001. [2] Silberschatz, A. Galvin, P. B. - Gagne, G. : Operating System Concepts. 6th Edition. John Wiley & Sons, 2003. [3] Tanenbaum, A.: Modern Operating Systems. Modern Operating Systems. Prentice Hall, New Jersey, 2008.

Proces (Process) * Proces je definován jako: Spuštěný (tj. běžící) počítačový program Instance programu spuštěného v počítači Entita přidělená procesoru a vykonávaná procesorem Jednotka aktivity charakterizovaná sekvencí prováděných instrukcí, okamžitým stavem a přiřazenou množinou systémových instrukcí [1] Proces obsahuje kód programu a data, se kterými pracuje. Proces vlastní: privátní adresový prostor systémové prostředky (soubory, dynamicky alokovanou paměť, synchronizační prostředky apod.) nejméně jedno vlákno Viz [3]

PCB =( tabulka popisu procesů ) datová struktura spravovaná jádrem OS obsahující informace potřebné pro správu procesů: PID Identifikace stavu Priorita Obsah registrů procesoru (Program Counter, Memory Pointers =ukazatele na kód a data procesu a dále paměťové bloky sdílené s ostatními procesy, Context Data = data v registrech procesoru) Informace o I/O zařízeních (I/O requests, I/O zařízeních, souborech) přidělených procesu Accounting ( účtovací informace, čas spuštění, kolik procesorového času spotřeboval, aj. PCB (Process Controll Block)

Přepínání kontextu (Context Switch) V OS systému (víceúlohovém) se PCB používá při přepínání procesoru z jednoho procesu na další tzv. přepínání kontextu (context switch): kontext procesu je reprezentován PCB při přepínání kontextu je uložen PCB starého procesu a nahrán PCB nově spuštěného přepínání procesů řídí plánovač (scheduller) doba přepnutí kontextu je v řádu jednotek až stovek mikrosekund (závisí na HW počítače) doba přidělení procesoru procesu je v řádu jednotek až desítek milisekund

Dvoustavový model Stavový model procesu Proces může mít pouze 2 stavy: Running Not-running

Fronta procesů připravených ke spuštění procesorem

Složitější model procesu Pětistavový model: přidány další 3 stavy Stav blokován (také čekající nebo spící ) významně zlepšuje výsledné využití procesoru.

Použití dvou front procesů Pětistavový model vyžaduje použití minimálně dvou front

Použití více front procesů

Příklad pseudoparalelního běhu tří procesů A, B, C

Příklad

Příklad

Příklad

Vlákna (Threads) Vlákno (thread) abstrakce toku programu Tradiční OS (UNIX, MS DOS): jeden proces obsahuje jedno vlákno = jednovláknový proces (singlethreaded process) Moderní OS umožňují: spuštění více současných úloh v rámci jednoho procesu = vícevláknový proces (multi-threaded process). po startu procesu běží jediné tzv. primární vlákno primární vlákno může vytvářet vlákna sekundární.

Vlákna (Threads) - pokračování Vlákna: sdílejí privátní adresový prostor procesu (= mají společný kontext paměti), tzn. mohou přistupovat ke globálním proměnným sdílejí systémové prostředky procesu (kontext prostředí) každé vlákno má vlastní kontext procesoru a zásobník (včetně lokálních proměnných)

Procesy a vlákna (Threads)

Procesy a vlákna (Threads)

Výhody vláken Vícevláknový proces není blokován při zablokování jednoho z vláken (např. při čekání na událost) Paměť a systémové prostředky jsou sdíleny (na rozdíl od procesů), zvyšuje se efektivita jejich využití, zjednodušuje se přenos dat mezi vlákny (např. použití globálních proměnných ale POZOR na kritické sekce!!! v programu) Přepínání kontextu vláken je výrazně rychlejší než přepínání kontextu u procesů Efektivní provádění pomalých I/O operací (I/O operace se mohou překrývat s výpočetními operacemi) Výrazné zrychlení programu v případě multiprocesorové architektury (= počítačový systém obsahuje několik procesorů nebo vícejádrové procesory); vlákna běží skutečně paralelně (NE pseudoparalelně!!!) Lepší strukturování programu (Ale s rozumem!!! Nepřehánět počet vláken, zvyšuje časovou režii při přepínání kontextu)

Implementace vláken - ULT Přepínání kontextu vláken: na úrovni uživatele (a), jádra (b) nebo (c) kombinované. (a) Na uživatelské úrovni (ULT User-level Thread) Na úrovni aplikačního procesu (User Mode) musí být implementována speciální knihovna pro správu vláken (thread library) Výhody: Nezávislost na podpoře jádra Rychlejší přepínání kontextu a vytváření nových vláken Plná kontrola procesu nad správou vláken?! Neýhody: volání služby (blokujícího volání jádra) jedním vláknem blokuje všechna vlákna procesu nutnost dodatečného programování (řízení vláken programátorem) Vlákna jednoho procesu nemohou běžet na více procesorech

Implementace vláken - KLT (b) Na úrovni jádra (KLT Kernel-level Thread) Výhody: Systémová volání neblokují ostatní vlákna téhož procesu Vlákna jednoho procesu mohou běžet na více procesorech Programy jádra mohou být vícevláknová Neýhody: Správa vláken je nákladnější (časově náročnější) než u čistě uživatelských vláken Příklady: MS Windows NT (včetně XP, Vista, 2007) Linux. 4 BSD Unix

Implementace vláken ULT + KLT (c) Kombinace ULT+KLT Některé OS podporují oba způsoby běhu vláken. Uživatelská vlákna se k systémovým přiřazují automaticky nebo programátor specifikuje uživatelská vlákna jako ULT nebo KLT. Příklady: WAX Windows 2000/XP s nadstavbou ThreadFiber FreeBSD 5.x

ÚVOD DO OPERAČNÍCH SYSTÉMŮ KONEC 4. přednášky České vysoké učení technické Fakulta elektrotechnická