1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

Přednáška č. 3 Normalizace dat, Datová a funkční analýza
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Operační systém Adam Greguš, 4.A.
Přínosy a druhy počítačových sítí. Jednou z nejvýznamnějších technologií používaných v oblasti výpočetních systémů jsou již řadu let počítačové sítě.
OPERAČNÍ SYSTÉMY.
Adresářová služba Active directory
POČÍTAČOVÉ SÍTĚ PŘÍSTUPOVÁ PRÁVA
Maturitní okruh č. 7. Odstínit aplikace od specifik HWSpráva procesůSpráva pamětiSpráva souborůSpráva vstupů a výstupůSpráva sítěSystém ochrany a bezpečnostiSystém.
Štěpán Lískovec, 4.A.  =základní programové vybavení počítače (tj.software)  hlavní úkol:  A, zajistit uživateli možnost ovládat PC  B, vytvořit pro.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Operační systémy.
Operační systémy.
Název a adresa školy Střední škola zemědělská a přírodovědná Rožnov pod Radhoštěm nábřeží Dukelských Hrdinů Rožnov pod Radhoštěm Název operačního.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systém (OS) ICT Informační a komunikační technologie.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
OPERAČNÍ SYSTÉMY Správa zdrojů Historie Funkce Ovládání počítače
S O F T W A R E Šablona 32 VY_32_INOVACE_6_5_Operační systémy.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Pokročilé architektury počítačů (PAP_04.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Operační systémy Mgr. Ludmila Faltýnková EU OPVK ICT2-4/Inf12 Základní škola Olomouc, Heyrovského 33 Určeno pouze pro výuku Žádná část ani celek nesmí.
OPERAČNÍ SYSTÉMY (OS): Programy, které obsluhují základní rutiny počítače a bez nichž by žádný další program nemohl na počítači běžet. Konkrétní programy.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vnitřní (operační paměť)
A4B33OSS (J. Lažanský) verze: Podzim 2012 Procesy a vlákna 1 Obsah Téma 3 – Procesy a vlákna 1.Výpočetní procesy a jejich stavy 2.Stavový diagram procesů.
Operační systémy Název a adresa školy
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
OPERAČNÍ SYSTÉMY.
Pokročilé architektury počítačů (PAP_04.ppt)
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Základy operačních systémů
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Počítačová bezpečnost 2. Bezpečnost v OS © Milan Keršlágerhttp:// Obsah: ● jádro,
ÚVOD DO PŘEDMĚTU INFORMAČNÍ TECHNOLOGIE. OPERAČNÍ SYSTÉM Je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Operační systém (OS) Základní funkce operačního systému: – Zajištění komunikace s okolím. – Řízení a zpracování programů. – Údržba informací na externích.
Operační systémy 2015/ přednáška 21. března 2016.
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Vypracoval / Roman Málek
SW počítače - operační systém
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Operační Systém Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho.
OPERAČNÍ SYSTÉMY Číslo projektu CZ.1.07/1.5.00/ Název školy
Vlastnosti souborů Jaroslava Černá.
Operační systémy - úvod
UNIX 10. Procesy © Milan Keršláger
Téma 3 – Procesy a vlákna Obsah Výpočetní procesy a jejich stavy
Počítačová bezpečnost 2. Bezpečnost v OS
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
1. ročník oboru Mechanik opravář motorových vozidel
PB 169 Počítačové sítě a operační systémy
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
UNIX 10. Procesy Obsah: algoritmus, program, proces, thread
Přednášky z distribuovaných systémů
Operační systémy.
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Paměť.
Přednášky z Distribuovaných systémů
Transkript prezentace:

1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06

2/28 Program ●soubor definovaného formátu obsahující instrukce, data a další informace potřebné k provedení daného úkolu Proces ●systémový objekt charakterizovaný svým paměťovým prostorem a kontextem (paměť i některé další zdroje jsou přidělovány procesům) Vlákno, také „sled“ ●objekt, který vzniká v rámci procesu, je viditelný pouze uvnitř procesu a je charakterizován svým stavem (CPU se přidělují vláknům) Model – jen procesy (ne vlákna) ●proces: jednotka plánování činnosti i jednotka vlastnící prostředky Model – procesy a vlákna ●proces: jednotka vlastnící zdroje ●vlákno: jednotka plánování činnosti PROCESY A VLÁKNA PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

3/28 Každé vlákno si udržuje svůj vlastní ●zásobník ●PC (program counter) ●registry ●TCB (Thread Context Block) Vlákno může přistupovat k paměti a ostatním zdrojům svého procesu ●zdroje procesu sdílí všechny vlákna jednoho procesu ●jakmile jedno vlákno změní obsah (nelokální – mimo zásobník) buňky, všechny ostatní vlákna (téhož procesu) to vidí ●soubor otevřený jedním vláknem mají k dispozici všechny ostatní vlákna (téhož procesu) PROCESY A VLÁKNA PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

4/28 Proč využít vlákna ●využití multiprocesorových strojů (vlákna jednoho procesu mohou běžet na různých CPU) ●jednodušší programovaní ●typický příklad: jedno vlákno provádí uživatelem požadovaný úkol a druhé vlákno překresluje obrazovku 1:1 ●UNIX Systém V, (MS-DOS) ●pojem vlákno neznámý, každé „vlákno“ je procesem s vlastním adresovým prostorem a s vlastními prostředky 1:M ●OS/2, Windows XP, Mach, … ●v rámci 1 procesu lze vytvořit více vláken ●proces je vlastníkem zdrojů (vlákna sdílejí zdroje procesu) PROCESY A VLÁKNA PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

5/28 PROCESY vs. VLÁKNA PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ single-threaded processmultithreaded process code registers datafiles stack codedatafiles registersstack registers thread

6/28 Jednovláknový OS: ●nepodporuje koncept vláken (nezná pojem vlákno) ●MS-DOS: 1 proces, 1 vlákno ●UNIX: n procesů, 1 vlákno / 1 proces Multivláknový OS: ●podporuje koncept více vláken v rámci procesů ●Windows XP, Solaris, … JEDNO/MULTIVLÁKNOVÝ OS PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

7/28 Výhody ●vlákno se vytvoří rychleji než proces ●vlákno se ukončí rychleji než proces ●mezi vlákny se rychleji přepíná než mezi procesy ●jednodušší programování (jednodušší struktura programu) ●u multiprocesorových systémů může na různých procesorech běžet více vláken jednoho procesu současně Příklady ●síťový souborový (nebo i jiný ) server ●musí vyřizovat řadu požadavků klientů ●pro vyřízení každého požadavku vytváří samostatné vlákno (efektivnější než samostatný proces) ●1 vlákno zobrazuje menu a čte vstup od uživatele a současně 1 vlákno provádí příkazy uživatele ●překreslování obrazovky souběžně se zpracováním dat VÝHODY VYUŽITÍ VLÁKEN PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

8/28 Program se skládá z několika vláken, která běží paralelně Výhody ●když vlákno čeká na ukončení I/O operace, může běžet jiné vlákno téhož procesu, aniž by se přepínalo mezi procesy (což je časově náročné) ●vlákna jednoho procesu sdílí paměť a deskriptory otevřených souborů a mohou mezi sebou komunikovat, aniž by k tomu potřebovaly služby jádra (což by bylo pomalejší) Konzistence ●vlákna jedné aplikace se proto musí mezi sebou synchronizovat, aby se zachovala konzistentnost dat (musíme zabránit současné modifikaci stejných dat dvěmi vlákny apod.) PROBLÉM KONZISTENCE PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

9/28 Situace: ●3 proměnné: A, B, C ●2 vlákna: T1, T2 ●vlákno T1 počítá C = A+B ●vlákno T2 přesouvá hodnotu X z A do B (jakoby z účtu na účet) Představa o chování ●T2 dělá A = A-X a B = B+X ●T1 počítá konstantní C, tj. A + B se nezmění Ale jestliže ●T1 spočítá A+B ●po té co T2 udělá A = A-X ●ale dříve než co T2 udělá B = B+X ●pak T1 nezíská správný výsledek C = A+B PŘÍKLAD (PROBLÉM KONZISTENCE) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

10/28 Tři klíčové stavy vláken: ●běží ●připravený ●čekající Vlákna se (samostatně) neodkládají ●všechny vlákna jednoho procesu sdílejí stejný adresový prostor Ukončení procesu ukončuje všechny vlákna existující v rámci tohoto procesu STAVY VLÁKEN PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

11/28 User-Level Threads (ULT) ●Správa vláken se provádí prostřednictvím vláknové knihovny („thread library“) na úrovni uživatelského / aplikačního programu ●Jádro o jejich existenci neví ●přepojování mezi vlákny nepožaduje provádění funkcí jádra ●nepřepíná se ani kontext procesu ani režim procesoru ●Plánování přepínání vláken je specifické pro konkrétní aplikaci ●aplikace si volí pro sebe nejvhodnější (např. plánovací) algoritmus VLÁKNA NA UŽIVATELSKÉ ÚROVNI PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

12/28 „Threads library“ obsahuje funkce pro ●vytváření a rušení vláken ●předávání zpráv a dat mezi vlákny ●plánování běhů vláken ●uchovávání a obnova kontextů vláken Co dělá jádro pro vlákna na uživatelské úrovni ●jádro neví o aktivitě vláken, proto manipuluje s celými procesy ●když některé vlákno zavolá službu jádra, je blokován celý proces dokud se služba nesplní ●pro „thread library“ je takové vlákno ale stále ve stavu „běží“ ●stavy vláken jsou na stavech procesu nezávislé VLÁKNA NA UŽIVATELSKÉ ÚROVNI PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

13/28 Výhody ●přepojování mezi vlákny nepožaduje provádění jádra (tj.vyšší rychlost) ●nepřepíná se ani kontext ani režim procesoru ●plánování je specifické pro konkrétní aplikaci ●aplikace volí si pro sebe nejvhodnější algoritmus ●ULT mohou běžet pod kterýmkoliv OS ●není vyžadována podpora na úrovní jádra OS ●ULT potřebují uživatelskou knihovnu (ke slinkovaní s aplikací) Nevýhody ●většina volání služeb OS způsobí blokování celého procesu (tj. všech vláken procesu) ●jádro může přidělovat procesor pouze procesům, dvě vlákna stejného procesu nemohou běžet na dvou procesorech VLÁKNA NA UŽIVATELSKÉ ÚROVNI PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

14/28 Kernel-Level Threads (KLT) Správu vláken podporuje jádro, nepoužívá se „thread library“ ●používá se API pro vláknové služby jádra ●informaci o kontextu procesů a vláken udržuje jádro ●přepojování mezi vlákny aktivuje jádro ●plánování na bázi vláken již v jádře OS Příklady ●OS/2 ●Windows 95/98/NT/2000/XP ●Solaris ●Tru64 UNIX ●BeOS ●Linux VLÁKNA NA ÚROVNI JÁDRA PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

15/28 Výhody ●jádro může současně plánovat běh více váken stejného procesu na více procesorech ●k blokování dochází na úrovni vlákna (není blokován celý proces) ●I programy jádra mohou mít multivláknový charakter Nevýhody ●přepojování mezi vlákny stejného procesu zprostředkovává jádro (tj. pomaleji) ●při přepnutí vlákna se 2x přepíná režim procesoru (tj. režie navíc) VLÁKNA NA ÚROVNI JÁDRA PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

16/28 Vlákna se vytvářejí v uživatelském prostoru Většina plánování a synchronizace se dělá v uživatelském prostoru Programátor může nastavit počet vláken na úrovni jádra Lze kombinovat přínosy oboru přístupů Např. OS Solaris <=8 KOMBINACE VLÁKEN ULT/KLT PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

17/28 n : 1 ●více ULT se zobrazuje do 1 KLT ●používá se na systémech, které nepodporují KLT 1 : 1 ●každý ULT se zobrazuje do 1 KLT ●Windows 95/98/NT/2000/XP, OS/2 n : m ●více ULT se může zobrazovat do více KLT ●OS může vytvořit dostatečný počet KLT ●Solaris 2, Windows NT/2000 s ThreadFiber package MULTIVLÁKNOVÉ MODELY PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

18/28 MODEL n:1 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ k user thread kernel thread

19/28 MODEL 1:1 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ kkkk user thread kernel thread

20/28 MODEL m:n PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ k user thread kk kernel thread

21/28 Proces ●uživatelský adresový prostor ●zásobník ●PCB (process control block) ULT ●OS je nevidí KLT ●jednotka pro přidělování času procesoru Lightweight processes (LWP) ●LWP podporuje 1 nebo více ULT a zobrazuje je do 1 KLT ●LWP – rozhraní pro paralelismus pro aplikace PŘÍKLAD: SOLARIS 2 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

22/28 PŘÍKLAD: SOLARIS 2 (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ task 1task 2task 3 CPU kernel thread user-level thread lightweight process

23/28 Implementuje vlákna na úrovni jádra OS (implementace je zdařilá, umožňuje mimo jiné paralelní běh vláken jednoho procesu na různých procesorech) Služby OS ●CreateThread ●ExitThread ●GetExitCodeThread ●CreateRemoteThread (vytváří vlákno jiného procesu) ●SuspendThread ●ResumeThread ●GetProcessAffinityMask (běh vlákna na procesorech) ●SetProcessAffinityMask ●SetThreadIdealProcessor ●SwitchToThread (spusť jiný thread – je-li připraven) ●TlsAlloc, TlsFree, TlsSetValue, TlsGetValue (thread local storage) PŘÍKLAD: WIN32 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

24/28 „A Win32®-based application consists of one or more processes. A process, in the simplest terms, is an executing program. One or more threads run in the context of the process. A thread is the basic unit to which the operating system allocates processor time. A thread can execute any part of the process code, including parts currently being executed by another thread. A fiber is a unit of execution that must be manually scheduled by the application. Fibers run in the context of the threads that schedule them“ Služby OS ●ConvertThreadToFiber ●CreateFiber ●DeleteFiber ●GetFiberData ●SwitchToFiber PŘÍKLAD: WIN32 (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

25/28 Knihovna „pthreads“ Služby knihovny ●pthread_create ●pthread_exit ●pthread_join ●pthread_detach ●pthread_attr_init PŘÍKLAD: LINUX – UNIX - POSIX PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

26/28 Implementace POSIX threads ●LinuxThreads ●Odpovídá POSIX standardu IEEE c až na ovladače signálů. ●Vlákna mají různá PID (Process Identifier) ●Není nadále vyvíjeno ●NTPL (Native POSIX Threads Library for Linux) ●Nahradilo LinuxThreads ●Lepší výkon ●Vyžaduje jádro řady 2.6 ●Dnes součást knihovny GNU C ●Model 1:1 ● NGPT (Next Generation POSIX Threads) ●Alternativa k NTPL, které se neprosadila PŘÍKLAD: LINUX PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

27/28 Služby jádra OS #include int clone(int (*fn)(void *), void *child_stack,int flags, void *arg); _syscall2(int, clone, int, flags, void *, child_stack); služba jádra sys_clone a knihovní funkce clone ●vytvoří vlákno, které sdílí (v rámci procesu) adresový prostor, tabulku deskriptorů souborů, tabulku ovladačů signálů, trasovací informace, process ID PŘÍKLAD: LINUX (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

28/28 Výukovou pomůcku zpracovalo Servisní středisko pro e-learning na MU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ