Vl akna PB 152 Operacn syst emy Jan ÐStaudek Û Å«Æ ±²³ µ ¹º»¼½¾ Ý http://www..muni.cz/usr/staudek/vyuka/ Verze : jaro 2015
Proces, resp. tak e task { drzitel zdroj u, vc. prostoru ve virtu aln pam eti pro uchov an obrazu procesu { jednotka pl anov an cl dynamick eho prid elov an procesoru pro b eh procesu Vl akno Sekvencn d ej denovateln y v procesu. Pro OS jednotka pl anov an, nikoli vlastnictv zdroj u Vsechna vl akna denovan a v procesu se res soubezne, multitasking. Proces a vl akna Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 1
Koncept sekvencnho procesu m uze b yt neefektivn Textov y editor cte z kl avesnice prkazy k editaci fom atuje text podle prkaz u z d uvodu spolehlivosti se pozaduje periodicky koprovat editovan y text do diskov eho souboru Resen editoru cist e sekvencnm procesem b ehem archivace bude ignorovat kl avesnici a mys dokud se archivace neukonc, v ykon editov an bude nzk y Naprogramov an do editoru obsluhy prerusen od mysi a kl avesnice b ehem archivace v ykon se vyleps, program bude slozit y Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 2
Resen editoru pomoc vl aken Resen probl emu tremi procesy probl em neres, vsechny tri procesy by musely pracovat s jedin ym dokumentem Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 3
vl akno (thread) Proces a vl akno syst emov y objekt, kter y se vytv ar v r amci procesu je viditeln y pouze uvnitr procesu je charakterizov an sv ym stavem (procesory se prid eluj vl akn um),,klasick y process"{ proces s jednm vl aknem vl akno se nach az ve stavech: bez, pripraven e,... kdyz vl akno neb ez, kontext vl akna je ulozen y v TCB (Thread Control Block): { jeho prov adec z asobnk, obraz PC, obraz registr u,... vl akno m uze pristupovat k LAP a k ostatnm zdroj um sv eho procesu tyto zdroje sdlej vsechny vl akna jednoho procesu { jakmile 1 vl akno zmen obsah nekter e bu nky LAP, vsechny ostatn vl akna (t ehoz procesu) nov y obsah vid { soubor otevren y jednm vl aknem vid vsechny ostatn vl akna (t ehoz procesu) skupina vl aken jednoho procesu sdl promenn e (LAP, pridelen y FAP), otevren e soubory,... Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 4
Multitasking / multithreading Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 5
Vl akna vs. Procesy Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 6
Web server resen y pomoc vl aken Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 7
Klient-server resen y pomoc vl aken Proces m uze denovat vce aktivit provediteln ych soub ezn e Napr. server m uze obsluhovat vce pozadavk u klient u soub ezn e Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 8
Pouzit vl aken Univerz aln n astroj pro vsechny aplikace od interaktivnho kreslen po hry napr. b ehem cten kl avesnice jednm vl aknem jin e vl akno vykresluje obr azek Efektivn vyuzit multiprocesorov ych poctac u moznost skutecn e paralelnho b ehu vl aken na r uzn ych procesorech msto multitaskingu sdlejcho jedin y procesor Prednosti Vl akno se vytvor rychleji nez proces Vl akno se ukonc rychleji nez proces Mezi vl akny se rychleji prepn a nez mezi procesy Dos ahne se leps strukturalizace programu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 9
Prnosy pouzit vl aken, prklady aplikac proc se zav ad vl akna v r amci procesu, prklady prnos u menu vypisovan e soub ezn e se zpracov anm periodicky prov ad en automatick e kopie souboru prekreslov an obrazovky soub ezn e se zpracov anm dat paralelizace algoritmu v multiprocesoru dosazen leps strukturalizace programu Prklady Souborov y server LAN { mus vyrizovat behem kr atk e doby nekolik pozadavk u na soubory { pro vyrzen kazd eho pozadavku se zrd samostatn e vl akno Symetrick y multiprocesor { na r uzn ych procesorech m uze bezet vce vl aken soucasne jedno vl akno zobrazuje menu a cte vstup od uzivatele a soucasn e jin e vl akno prov ad prkazy uzivatele periodick e prov ad en automatick e kopie souboru prekreslov an obrazovky soub ezn e se zpracov anm Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 10
Co se zsk a pouzitm vl aken schopnost l epe reagovat na resen y probl em multivl aknov a interaktivn aplikace m uze st ale b ezet, i kdyz jej c ast je blokovan a / se dlouho res /... interakce s prohlzecem v jednom vl aknu prohlzece, zav aden obr azku jin ym vl aknem snazs sdlen zdroj u aplikace, kter e se lis pouze n ekolika odlisn ymi aktivitami resen ymi samostatn e vl akny, mohou sdlet stejn y adresov y prostor, hlavn program,... Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 11
Co se zsk a pouzitm vl aken snzen syst emov e rezie prepn an kontextu mezi vl akny je jednoduss nez prepn an kontextu mezi procesy napr. Solaris { vytvoren procesu je 30x pomalejs nez vytvoren vl akna { prepn an kontextu mezi procesy je 5x pomalejs nez mezi vl akny ucinn ejs vyuzit multiprocesorov ych architektur soub eznost resen vl aken m uze nab yt formy paralelismu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 12
Prklad pouzit vl aken: RPC, Remote Procedure Call Program prov ad dve RPC ke 2 r uzn ym server um a poct a v ysledek z obou hodnot Implementace pomoc 1-vl aknov eho procesu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 13
Prklad pouzit vl aken: RPC, Remote Procedure Call Program prov ad dve RPC ke 2 r uzn ym server um a poct a v ysledek z obou hodnot Implementace pomoc vce-vl aknov eho procesu na monoprocesoru { 1 vl akno na 1 server Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 14
Probl em konzistence mezi vl akny Mejme aplikaci kter a sest av a z vce nez avisl ych c ast C asti nemus b ezet v sekvenci Kazd a c ast se implementuje jako vl akno Vlastnosti takov e implementace Kdyz vl akno cek a konec I/O operace, m uze bezet jin e vl akno t ehoz procesu, aniz by se prepojovalo mezi procesy vl akna jednoho procesu sdl pam et' a soubory a tudz mohou mezi sebou komunikovat, aniz by k tomu potrebovaly sluzby j adra vl akna jedn e aplikace se proto mus mezi sebou synchronizovat, aby se zachovala konzistentnost zpracov avan ych dat Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 15
Prklad probl emu zachov an konzistence dat Sc en ar v procesu jsou vytvorena vl akna T 1 a T 2 T 1 poct a C = A + B, T 2 pren as hodnotu X z A do B: A = A X; B = B + X T 1 a T 2 bez soubezne, nevme jak rychle kazd e z nich Form aln predstava o chov an syst emu vl aken T 1 a T 2 T 2 udel a A = A X a B = B + X T 1 poct a C = A + B, hodnota C se tudz proveden T 2 nezmen Mozn a realita T 2 udel a A = A X T 1 spoct a C = A + B = A X + B T 2 udel a B = B + X, coz C uz neovlivn Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 16
Stavy vl aken tri klcov e stavy bez pripraven e cekajc vsechny vl akna jednoho procesu sdlej stejn y adresov y prostor vl akna se samostatn e neodkl adaj ukoncen procesu ukoncuje vsechny vl akna existujc v r amci tohoto procesu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 17
Typy vl aken User-Level Threads (ULT) j adro OS podporuje procesy vl akna podporuje vl aknov a knihovna sestavovan a do programu uzivatele Kernel-Level Threads (KLT) podporuje je prmo j adro OS tak e lightweight processes nebo kernel-supported threads Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 18
Vl akna na uzivatelsk e urovni, ULT User-Level Threads (ULT) vlastnosti Spr ava vl aken se prov ad prostrednictvm vl aknov e knihovny (thread library) na urovni uzivatelsk eho / aplikacnho procesu, j adro o jejich existenci nev Prepojov an mezi vl akny nepozaduje prov ad en funkc j adra neprepn a se ani kontext procesu ani rezim procesoru Pl anov an prepn an vl aken je specick e pro konkr etn aplikaci aplikace si vol pro sebe nejvhodn ejs algoritmus prklady POSIX { Pthreads Mach { C-threads Solaris { threads Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 19
Vl akna na uzivatelsk e urovni, ULT Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 20
Vztahy mezi ULT vl akny a stavy procesu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 21
Vl akna na uzivatelsk e urovni, ULT vl aknov a knihovna obsahuje funkce pro vytv aren a rusen vl aken pred av an zpr av a dat mezi vl akny pl anov an beh u vl aken uchov av an a obnova kontext u vl aken Co del a j adro pro vl akna na uzivatelsk e urovni J adro nev o aktivite vl aken, manipuluje pouze s procesy Kdyz nekter e vl akno zavol a sluzbu j adra a cek a dokud se sluzba nespln je blokov an cel y proces, viz predchoz bod Stavy vl aken jsou na stavech procesu nez avisl e pro vl aknovou knihovnu m uze vl akno b yt st ale ve stavu,,bezc" i kdyz je proces vr acen y mezi,,pripraven e"procesy Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 22
Vl akna na uzivatelsk e urovni, ULT Prednosti Prepojov an mezi vl akny nepozaduje prov ad en j adra neprepn a se ani kontext ani rezim procesoru Pl anov an je specick e pro konkr etn aplikaci { vol si pro sebe nejvhodn ejs algoritmus { ULT mohou bezet pod kter ymkoliv OS { ULT potrebuj pouze adekv atn vl aknovou knihovnu Nedostatky V etsina vol an sluzeb zp usobuje blokov an procesu J adro blokuje procesy a ne vl akna Takze z adn e vl akno existujc v r amci procesu nem uze bezet J adro m uze prid elovat procesor pouze proces um, takze dv e vl akna jednoho procesu nemohou b ezet paraleln e, i kdyz proces b ez v multiprocesoru Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 23
Vl akna na urovni j adra, KLT Kernel-Level Threads (KLT) vlastnosti Celou spr avu vl aken podporuje j adro, vl aknov a knihovna se nepouzv a pouzv a se API na vl aknov e sluzby j adra Informaci o kontextu procesu a vl aken udrzuje j adro Prepojov an mezi vl akny aktivuje j adro Pl anov an se res na b azi vl aken prklady OS/2 Windows 95/98/NT/2000/XP Solaris, Tru64 UNIX, Linux Mac OS X Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 24
Vl akna na urovni j adra, KLT Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 25
Vl akna na urovni j adra, KLT Prednosti j adro m uze soucasne pl anovat beh vce vl aken stejn eho procesu na vce procesorech k blokov an doch az na urovni vl aken i programy j adra mohou mt multi{vl aknov y charakter Nedostatky prepojov an mezi vl akny t ehoz procesu zprostredkov av a j adro pri prepnut vl akna se 2x se prepn a rezim procesoru v ysledkem je zpomalen, snzen dostupn eho aplikacnho v ykonu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 26
Kombinace ULT/KLT vl akna se vytv arej v uzivatelsk em prostoru program ator m uze nastavit pocet vl aken na urovni j adra lze kombinovat prnosy obou prstup u podporuje Solaris Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 27
Kombinace ULT/KLT Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 28
1 : 1 Multivl aknov e modely Kazd y ULT se zobrazuje do jednoho KLT tradicn Unixy verze n : 1 Vce ULT se zobrazuje do jednoho KLT pouzv a se na syst emech, kter e nepodporuj KLT Windows 95/98/NT/2000/XP, Linux, Solaris 9 a vyss verze. Solaris Green Threads, GNU Portable Threads n : m vce ULT se m uze zobrazovat do vce KLT OS m uze vytvorit dostatecn y pocet KLT Solaris do verze 9, Windows NT/2000 with the ThreadFiber package two-level model { model n : m s moznost v azat konkr etn ULT na konkr etn KLT (IRIX, HP=UX, True64 Unix) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 29
Multivl aknov e modely Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 30
Vl akna v syst emu Solaris OS nevid ULT OS prid eluje procesor KLT Lightweight process (LWP) rozhran pro paralelismus pro aplikace kazd y LWP podporuje 1 nebo vce ULT a zobrazuje je do jednoho KLT Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 31
Proces ve Windows a jeho zdroje Jsou implementovan e jako objekty Proces lze vytvorit jako nov y proces nebo jako kopii existujcho procesu V procesu lze denovat jedno nebo vce vl aken Procesy i vl akna maj vestav en e synchronizacn vlastnosti Proces je denovan y jist ym poctem akc /sluzeb, kter e m uze vykon avat prov ad sluzbu, kdyz je volan y n ekterou z publikovan ych metod rozhran vznik a jako nov y proces generov anm instance objektu ze sablony vlastnostem objektu se prirad hodnoty pri generov an objektu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 32
Vztah proces u a zdroj u ve Windows Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 33
Vlastnosti objektu proces ve Windows Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 34
Vlastnosti objektu vl akno ve Windows Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 35
Stavy vl akna ve Windows Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 36
Windows 7 Architecture, vl akna a SMP vl akna vsech proces u vc. syst emov ych (Executive) mohou b ezet na kter emkoliv dostupn em procesoru vl akna mohou bezet paralelne vl akna jednoho procesu mohou bezet paralelne na r uzn ych procesorech v r amci jednoho procesu server m uze pouzt vce vl aken pro soucasnou obsluhu vce klient u soucasn e data a zdroje mohou procesy sdlet procesy mohou mezi sebou komunikovat Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 37
Vl akna Java, prklad Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 38
Vlakna Java, p r klad Jan Staudek, FI MU Brno PB152 Operacn systemy { Vlakna 39
Vl akna Java vl akna jsou fundament alnm model resen javovsk eho programu jak implementovat JVM do hostitelsk eho OS z adn y standard neres { napr. XP: model 1:1 vl aknov a knihovna Java b yv a mapovan a na vl aknovou knihovnu hostitelsk eho OS { JVM ve XP: na API Win32 { JVM v Linux/Solaris: na API Pthreads Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 40
Pozn amky k pr aci s vl akny s emantika fork() a exec() fork duplikuje proces v jednovl aknov em procesu m a duplikovat cel y proces nebo jenom vl akno, kter e fork vyvolalo? jak ukoncit beh (clov eho) vl akna, kter y dosud neskoncil? asynchronn zrusen { jedno vl akno bezprostredn e ukonc clov e vl akno odlozen e zrusen { clov e vl akno se periodicky dotazuje, zda m a skoncit Ozn amen prerusen clov eho vl akna Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 41
Pozn amky k pr aci s vl akny odlozen e zrusen { kontrolov an stavu,,prerusen" Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 42
Pozn amky k pr aci s vl akny zvl ad an sign al u sign al { Unixovsk a softwarov a notikace procesu, ze se stala (oznamovan a) ud alost sign aly spravuje spr avce sign al u sign al se procesu dopravuje operacnm syst emem (programov e) volby: { m a se sign al dorucit 1 konkr etnmu vl aknu v clov em procesu? { m a se sign al dorucit vsem vl akn um v clov em procesu? { m a se sign al dorucit jen jist ym vl akn um v clov em procesu? { m a jedno vl akno spravovat vsechny sign aly dorucen e procesu? Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 43
Pozn amky k pr aci s vl akny pr ace s bankem vl aken (Thread Pool) bank vl aken { skupina vl aken pripraven ych na spusten pri z adosti o n asobnou obsluhu serverem se nemus generovat nov e vl akno neomezen e generov an nov ych vl aken by mohlo vycerpat dostupn e zdroje pripraven e vl akno se rychleji spust nez vytv aren e vl akno tri javovsk e architektury banku vl aken: 1. Single thread executor { bank o rozmeru 1 2. Fixed thread executor { bank o rozmeru > 1 3. Cached thread pool - bank neomezen eho rozsahu pr ace s vlastnmi daty vl akna (Thread Specific Data) vl akno m uze mt vlastn kopii dat, nesdlenou s ostatnmi vl akny procesu napr. pri pouzv an banku vl aken Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 44
Prklady vl aknov ych knihoven Pthreads standard API, IEEE 1003.1c, pro vytv aren a synchronicazi vl aken API urcuje chov an, implementaci standard nepredpisuje pouzvaj unixov e orientovan e syst emy (Solaris, Linux, Mac OS X) Windows XP Threads implementuje mapov an 1:1 kazd e vl akno sest av a z: id vl akna, sestava registr u, samostatn y uzivatelsk y z asobnk a z asobnk j adra a priv atn pamet'ov a oblast { kontext vl akna vl akna v Linuxu Linux pouzv a pojem tasks msto threads (vl akno) vl akno se vytv ar vol anm syst emu clone() vl akno je potomek a sdl s rodicovsk ym procesem adresov y prostor Jan Staudek, FI MU Brno PB152 Operacn syst emy { Vl akna 45