Synchronizace vjj 1
|
|
- Jiří Bureš
- před 5 lety
- Počet zobrazení:
Transkript
1 Synchronizace vjj 1
2 vjj 2 Synchronizace obraz a zvuk
3 vjj 3 Synchronizace procesy/vlákna
4 vjj 4 čeho?!?!?! Synchronizace dvou (a více) paralelně běžících procesů dvou (a více) paralelně běžících vláken jednoho procesu dvou (a více) paralelně běžících vláken dvou (a více) procesů
5 vjj 5 proč?!?!?! Synchronizace sdílení dat čekání na zprávu, že data jsou připravena exkluzivní práce se sdílenými daty (kritické sekce)
6 vjj 6 1. proces / vlákno synchronizace I. Signalizace (že data jsou už připravena) 2. proces / vlákno Čekání (až budou data připravena)
7 vjj 7 příklad F1 () { }... return X ; F2 () { }... return Y ; main (... ) { A = F1() ; B = F2() //nezávislé na výsledku F1 } ; F3(A,B)
8 vjj 8 příklad F1 () { }... return X ; F2 () { }... return Y ; main (... ) { B = F2() ; A = F1() //nezávislé na výsledku F2 } ; F3(A,B)
9 vjj 9 problém F1 () { }... return X ; F2 () { }... return Y ; main (... ) { A = F1() ; B = F2() ; čekej na F1 a F2 } ; F3(A,B)
10 vjj 10 problém F1 () { }... return X ; F2 () { }... return Y ; main (... ) { CreateThread (..., F1,... ) ; CreateThread (..., F2,... ) ; čekej na F1 a F2 } ; F3(A,B)
11 vjj 11 to umí každý F1 () {... HOTOVO1 = TRUE ; return X ; } F2 () {... HOTOVO2 = TRUE ; return Y ; } main (... ) { bool HOTOVO1 = FALSE ; bool HOTOVO2 = FALSE ; CreateThread (..., F1,... ) ; CreateThread (..., F2,... ) ; while (! ( HOTOVO1 and HOTOVO2 ) ) ; } ; F3(A,B)
12 vjj 12 malé vylepšení F1 () {... HOTOVO1 = TRUE ; return X ; } F2 () {... HOTOVO2 = TRUE ; return Y ; } main (... ) { bool HOTOVO1 = FALSE ; bool HOTOVO2 = FALSE ; CreateThread (..., F1,... ) ; CreateThread (..., F2,... ) ; while (! ( HOTOVO1 and HOTOVO2 ) ) Sleep(...) ; } ; F3(A,B)
13 vjj 13 ale jde to i jinak F1 () {... } SetEvent (HOTOVO1) ; return X ; F2 () {... } SetEvent (HOTOVO2) ; return Y ; main (... ) { event HOTOVO1 = CreateEvent (NULL, true, false, ""); event HOTOVO2 = CreateEvent (NULL, true, false, ""); CreateThread (..., F1,... ) ; CreateThread (..., F2,... ) ; Wait ( HOTOVO1, HOTOVO2 ) ; } ; F3(A,B)
14 vjj 14 a ještě jinak F1 () { }... return X ; F2 () { }... return Y ; main (... ) { mythread1 = CreateThread (..., F1,... ) ; mythread2 = CreateThread (..., F2,... ) ; Wait (mythread1, mythread2 ) ; } ; F3(A,B)
15 vjj 15 Event HANDLE CreateEvent (LPSECURITY_ATTRIBUTES lpsa, BOOL bmanualreset, BOOL InitialState, LPCTSTR lpszname) ; HANDLE OpenEvent (DWORD fdwaccess, BOOL finherit, LPCTSTR lpszname) ;
16 vjj 16 Event BOOL SetEvent (hevent) ; Wait... manuální - zůstane nastaven automatický - zruší se nastavení BOOL ResetEvent (hevent) ; BOOL PulseEvent (hevent) ; Wait... manuální - všichni automatický - první
17 vjj 17 AutoResetEvent static AutoResetEvent autoev = new AutoResetEvent (false) ; po zasignalizování propustí jedno vlákno a opět přejde do nesignalizovaného stavu autoev. Set () ; autoev. WaitOne () ; autoev. WaitOne (int ms, false) ; autoev. Reset () ;
18 vjj 18 ManualResetEvent static ManualResetEvent autoev = new ManualResetEvent (false) ; po zasignalizování propouští všechna vlákna dokud není explicitně resetován autoev. Set () ; autoev. WaitOne () ; autoev. WaitOne (int ms, false) ; autoev. Reset () ;
19 synchronizace II vjj 19
20 vjj 20 kritické sekce 1. proces / vlákno... úprava fotografie v RAM proces / vlákno... jiná úprava fotografie v RAM...
21 vjj 21 kritické sekce 1. proces / vlákno Wait... úprava fotografie v RAM Release proces / vlákno Wait... jiná úprava fotografie v RAM Release...
22 vjj 22 binární semafor Dijkstra proměnná typu integer hodnota 1 znamená volno/pokračuj hodnota 0 znamená obsazeno/čekej Wait(S) : if S = 0 (zavřeno)... čekej ve frontě if S = 1 (otevřeno)... kritické místo S <- 0 (zavři)... a pokračuj Signal(S) : S <- 1 (otevři) vzbuď (první) vlákno, které čeká ve frontě před semaforem S
23 Wait co znamená "čekej ve frontě"??? TryToGetThrough: if S = goto TryToGetThrough kdyby to takhle jednoduše dělali i ostatní, nebyla by to fronta (proč?)
24 vjj 25 Wait DWORD WaitForSingleObject (HANDLE hobject, DWORD milisekundy) ; xFFFFFFFF = INFINITE WAIT_OBJECT_0 WAIT_TIMEOUT WAIT_ABANDONED WAIT_FAILED DWORD WaitForSingleObjectEx (HANDLE hobject, DWORD milisekundy, BOOL falert) ;
25 vjj 26 Wait DWORD WaitForMultipleObjects (DWORD počet, CONST HANDLE * lphobjects, BOOL fwaitall, DWORD milisekundy) ; MAXIMUM_WAIT_OBJECTS WAIT_OBJECT_0 WAIT_OBJECT_ WAIT_OBJECT_0 + počet 1 WAIT_TIMEOUT WAIT_ABANDONED_0 WAIT_ABANDONED_ WAIT_ABANDONED_0 + počet 1 WAIT_FAILED
26 vjj 27 Čekání na "už mám čas" DWORD WaitForInputIdle (HANDLE hprocess, DWORD milisekundy) ; PostMessage (hwin2, WM_KEYDOWN, VK_MENU, 0); PostMessage (hwin2, WM_KEYDOWN, VK_F, 0); PostMessage (hwin2, WM_KEYUP, VK_F, 0); PostMessage (hwin2, WM_KEYUP, VK_MENU, 0); PostMessage (hwin2, WM_KEYDOWN, VK_O, 0); PostMessage (hwin2, WM_KEYUP, VK_O, 0); WaitForInputIdle (hproc2, ) ;
27 vjj 28 Kombinované čekání DWORD MsgWaitForMultipleObjects (DWORD počet, LPHANDLE phandles, BOOL ČekejNaVšechny, DWORD Milisekundy, DWORD ZpůsobČekání); Jeden nebo všechny (v závislosti na třetím parametru) objekty signalizují konec Specifikovaný typ vstupu se nově objevil ve frontě vlákna Uplynul předepsaný interval
28 vjj 29 QS_ALLINPUT QS_HOTKEY QS_INPUT QS_KEY QS_MOUSE QS_MOUSEBUTTON QS_MOUSEMOVE QS_PAINT QS_POSTMESSAGE QS_SENDMESSAGE QS_TIMER Způsob čekání
29 vjj 30 Semafor HANDLE hsemafor = CreateSemaphore (LPSECURITY_ATTRIBUTES lpsa, LONG MaxValue, LPSTR lpszname) ; HANDLE hsemafor = OpenSemaphore (DWORD Access, BOOL finherit, LPCTSTR lpszname) ; BOOL ReleaseSemaphore (HANDLE hsemaphore, LONG Počet, LPLONG PůvodníPočet) ;
30 vjj 31 parametr "access" 1. parametr funkce OpenSemaphor SEMAPHORE_ALL_ACCESS úplný přístup SEMAPHORE_MODIFY_STATE použití v ReleaseSemaphor SYNCHRONIZE použití v libovolné funkci Wait...
31 vjj proces / vlákno sdílení semaforu HANDLE hsemafor ; hsemafor = CreateSemaphore (..., "mys") ; 2. proces / vlákno HANDLE hsemafor ; hsemafor = CreateSemaphore (..., "mys") ; if (GetLastError() == ERROR_ALREADY_EXISTS) { // je to sdílený semafor
32 vjj 33 Mutex HANDLE CreateMutex (LPSECURITY_ATTRIBUTES lpsa, BOOL InitialOwner, LPSTR lpszmutexname) ; HANDLE OpenMutex (DWORD fdwaccess, BOOL finherit, LPCTSTR lpszmutexname) ; MUTEX_ALL_ACCESS SYNCHRONIZE BOOL ReleaseMutex (HANDLE mutex) ;
33 vjj 34 Mutex using System. Threading ; static Mutex gm1 ; gm1. WaitOne () ; gm1. WaitOne (Timeout.Infinite, false) ; gm1. ReleaseMutex () ;
34 vjj 35 Mutex static Mutex gm2 ; static Mutex[] gms = new Mutex[2] ; gms[0] = gm1 ; gms[1] = gm2 ; Mutex. WaitAll (gms) ; Mutex. WaitAny (gms) ; if (gm1.waitone (0, false))
35 vjj 36 aplikace Synchronizační objekty binární semafor vícehodnotový semafor mutex událost, event monitor system semaphor spin-lock
36 vjj 37 System semaphor omezený počet spinlock test-and-set fronty čekajících vláken nemůže dojít během práce se semaforem a s frontami čekajících vláken k přerušení a přepnutí kontextu? IRQL = "hardwarové priority" - režim procesoru
37 IRQL Windows Priority vjj 38
38 tak v čem je problém? vjj 39
39 vjj 40 tak v čem je problém? DEADLOCK
40 vjj 41 deadlock producent x konzument
41 producent x konzument v průměru pracují producent i konzument přibližně stejně rychle, krátkodobě se jejich rychlosti mohou podstatně lišit producent konzument ~~~ compile (X) F ~~~... send (X, F) receive (X, F) ~~~ process (X) ~~~
42 vjj 43 pravidla / podmínky producent zapisuje do fronty stále dokola, ale nesmí přepsat data, která konzument ještě nepřečetl nebo je právě čte konzument čte z fronty stále dokola, ale nesmí předběhnout producenta a číst data, která už jednou přečetl, nebo data, která producent právě zapisuje
43 vjj 44 producent x konzument sdílení dat -> semaphore Allow binary (0 / 1) producent konzument ~~~ compile(x) ~~~ Wait(Allow) send (X, F) Signal(Allow) F... Wait(Allow) receive (X, F) Signal(Allow) ~~~ process (X) ~~~
44 vjj 45 producent x konzument sdílení dat -> semaphore Allow binary (0 / 1) čekání na událost producent konzument ~~~ compile (X) ~~~ if (Empty(F)) { Wait(Allow) send (X, F) Signal(Allow) } F... if (Full(F)) { Wait(Allow) receive (X, F) Signal(Allow) } ~~~ process (X) ~~~
45 vjj 46 producent x konzument sdílení dat -> semaphore Allow binary (0 / 1) čekání na událost producent konzument ~~~ compile (X) ~~~ Wait(Allow) if (Empty(F)) { send (X, F) } Signal(Allow) F... Wait(Allow) if (Full(F)) { receive (X, F) } Signal(Allow) ~~~ process (X) ~~~
46 vjj 47 producent x konzument semaphore Allow binary (0 / 1) semaphore Empty 0, 1,..., N (= queue capacity) semaphore Full 0, 1,..., N (= queue capacity) producent konzument ~~~ compile (X) ~~~ Wait(Allow) Wait(Empty) send (X, F) Signal(Full) Signal(Allow) F... Wait(Full) Wait(Allow) receive (X, F) Signal(Allow) Signal(Empty) ~~~ process (X) ~~~
47 vjj 48 producent x konzument nastane-li delší zdržení Konzumenta, může nastat situace, kdy Empty = 0 a Full = N pokud se Producent pokusí zapsat do fronty, zůstane čekat, dokud konzument něco z fronty nepřečte producent konzument ~~~ compile (X) ~~~ Wait(Allow) Wait(Empty) send (X, F) Signal(Full) Signal(Allow) x x x x F... x x x Wait(Full) Wait(Allow) receive (X, F) Signal(Allow) Signal(Empty) ~~~ process (X) ~~~
48 vjj 49 producent x konzument Konzument se konečně vzpamatuje a pokusí se něco z fronty přečíst Ale přístup k frontě je zablokován... producent konzument ~~~ compile (X) ~~~ Wait(Allow) Wait(Empty) send (X, F) Signal(Full) Signal(Allow) x x x x F... x x x Wait(Full) Wait(Allow) receive (X, F) Signal(Allow) Signal(Empty) ~~~ process (X) ~~~
49 vjj 50 nebezpečí: deadlock (deadly embrace) Deadlock podmínky nutné pro vznik deadlocku protiopatření
50 Dining philosophers vjj 51
51 vjj 52 Dining philosophers problem It was originally formulated in 1965 by Edsger Wybe Dijkstra as a student exam exercise, presented in terms of computers competing for access to tape drive peripherals. Soon after, Tony Hoare gave the problem its present formulation.
52 vjj 53 Dining philosophers problem Plato Confucius Socrates Voltaire Descartes
53 vjj 54 philosopher's algorithm think until the left fork is available; when it is, pick it up; think until the right fork is available; when it is, pick it up; when both forks are held, eat for a fixed amount of time; then, put the right fork down; then, put the left fork down; repeat from the beginning
54 deadlock vjj 55
55 Dining philosophers problem P1 P2 get LEFT fork LEFT fork RIGHT get LEFT fork get RIGHT fork get RIGHT fork dining release RIGHT fork release LEFT fork RIGHT fork LEFT dining release RIGHT fork release LEFT fork
56 Dining philosophers problem P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
57 start P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
58 za chvíli P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
59 a dále P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
60 a dále P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
61 a dále P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
62 a dále P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
63 a dále P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
64 a dále - deadlock P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
65 vjj 66 detekce deadlocku dynamický orientovaný graf kdo na co čeká co komu patří vznikne-li cyklus, nastal deadlock
66 deadlock P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
67 deadlock P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
68 vjj 69 podmínky vzniku deadlocku Coffman conditions (pro binární semafory) 1. mutual exclusion vzájemná vyloučenost prostředek má vždy jen jediného (dočasného) uživatele/vlastníka (tj. nikdo jiný ho nesmí používat) 2. přidělování bez preempce (bez odebírání) prostředek může uvolnit jen jeho (dočasný) majitel, tj. cyklické čekání nelze násilně ukončit nějakým externím správcem 3. hold and wait tj. mohu blokovat jeden prostředek a přitom čekat na jiný, resp. o prostředky lze žádat postupně/jednotlivě a v libovolném pořadí 4. může dojít k cyklickému čekání
69 vjj 70 deadlock aby mohlo dojít k deadlocku, musí "systém" splňovat všechny Coffmanovy podmínky najednou k tomu, aby byl "systém" bezpečný (tj. aby nemohlo dojít k cyklickému čekání) stačí, aby v systému alespoň jedna z těchto podmínek neplatila
70 vjj 71 virtuální prostředky 1. prevence deadlocku každý si myslí, že má žádaný prostředek sám pro sebe a taky se tak chová (např. tiskárny - Spooling) není nutné omezovat přístup k prostředkům není zapotřebí prostředky jejich majitelům odebírat
71 vjj 72 preempce 2. ukončení deadlocku jeden z procesů je zavražděn (proč?) prostředky, které vlastnil, jsou opět volné násilné odebírání prostředků slouží jen k rozseknutí už vzniklého deadlocku
72 vjj prevence deadlocku a) povinnost žádat o všechny používané prostředky najednou Wait (F1, F2) dining Signal (F1) Signal (F2)
73 vjj prevence deadlocku b) hierarchie prostředků pokud proces potřebuje více prostředků najednou, musí o ně žádat v předepsaném pořadí Wait (F1) Wait (F2) dining Signal (F2) Signal (F1)
74 virtuální vidličky (???) P1 fork P2 Wait (F1) Wait (F2) F1 F1 Wait (F2) Wait (F1) dining F2 F2 dining Release (F1) Release (F2) Release (F1) Release (F2) fork
75 preempce P1 P2 Wait (F1) Wait (F2) dining Release (F1) Release (F2) F1 F2 Wait (F2) Wait (F1) dining Release (F1) Release (F2)
76 předepsané pořadí P1 P2 Wait (F1) Wait (F2) dining Release (F2) Release (F1) F1 F2 Wait (F1) Wait (F2) dining Release (F2) Release (F1)
77 vše najednou P1 P2 Wait (F1, F2) F1 Wait (F1, F2) dining Release (F2) Release (F1) F2 dining Release (F2) Release (F1)
78 vjj prevence deadlocku zabránit vzniku cyklu Bankéřův algoritmus Bankéř průběžně financuje investiční projekty svých klientů - bezúročně (!?). Klienti nemusí požadovat celou potřebnou sumu najednou Při žádosti o schválení projektu musí ale každý klient předložit celkový plán financování. Ihned po dokončení projektu klient všechny zapůjčené miliardy vrátí. Nesmí se stát, aby bankéř neměl prostředky na dokončení již započatého projektu. Bankéř může vyplácet jednotlivé části půjčky s libovolně dlouhou prodlevou
79 vjj 80 1) nový požadavek Bankéřův algoritmus 2) simulace přidělení prostředku 3) zrušení příznaku "skončil" u všech procesů 4) existuje proces, který ještě nemá nastaven příznak "skončil"? a) ano: existuje proces který by za dané situace mohl skončit, tj. má bankéř dost prostředků, aby mohl uspokojit jeho již dříve oznámené požadavky? a. ano: simuluj jeho dokončení, tj. nastav jeho příznak "skončil" a simuluj vrácení všech jeho prostředků, potom se vrať do bodu 4). b. ne: odmítni nový požadavek b) ne: přiděl požadovaný prostředek
80 vjj 81 nový požadavek Bankéřův algoritmus simulace přidělení prostředku zrušení příznaku "skončil" u všech procesů existuje proces, který ještě nemá nastaven příznak "skončil" a který by za dané situace mohl skončit, tj. má bankéř dost prostředků, aby mohl uspokojit jeho již dříve oznámené požadavky? ano simuluj jeho dokončení, tj. nastav jeho příznak "skončil" a simuluj vrácení všech jeho prostředků ne existuje proces, který ještě nemá nastaven příznak "skončil"? ne ano přiděl požadovaný prostředek odmítni požadavek
81 vjj 82 příklad bankéř: celkem 12 mld, 10 půjčeno, 2 zbývají přišel požadavek na jednu miliardu s tím, že před jejím vrácením budou požadovány ještě tři další (1+3) zápis: x+y = klient si už vypůjčil x miliard, před jejich vrácením bude (postupně) požadovat ještě y dalších
82 vjj 83 bankéř na začátku, tj. když má bankéř ještě všechno, se jedná o tzv. bezpečný stav bezpečný stav - existuje alespoň jedna posloupnost postupného ukončování projektů (procesů), která skončí tím, že bankéř má zase všechno bankéř si vždy ověřuje, vznikne-li splněním nového požadavku opět bezpečný stav, jinak požadavek odmítne v předchozím příkladu se předpokládalo, že počáteční stav je bezpečný (taky že byl), a ověřilo se, že splněním požadavku "1+3" vznikne opět bezpečný stav (tím se dodatečně dokázalo, že i ten předchozí byl bezpečný)
83 vjj 84 příklad ze stejného bezpečného počátečního stavu by splněním požadavku "1+4" vzniknul nebezpečný stav dál to nejde, tj. splněním nového požadavku by vzniknul nebezpečný stav, požadavek bude odmítnut 1+4
84 vjj 85 kritická sekce různá řešení
85 vjj 86 podmíněná kritická sekce = semafor + podmínka region Přístup when Plných<N do send(x,f) Plných = Plných + 1
86 vjj 87 Kritická sekce - příprava CRITICAL_SECTION mycritsect ; InitializeCriticalSection (&mycritsect) ; HANDLE hthreads[2] ; hthread[0] = CreateThread (, mythread, ) ; hthread[1] = CreateThread (, mythread, ) ; WaitForMultipleObjects (2, hthreads, TRUE, INFINITE) ; CloseHandle (hthread[0]) ; CloseHandle (hthread[1]) ; DeleteCriticalSection (&mycritsect) ;
87 vjj 88 kritická sekce - synchronizace 2. a 3. vlákno DWORD WINAPI mythread (LPVOID parm) {... EnterCriticalSection (&mycritsect) ;... kritická sekce } LeaveCriticalSection (&mycritsect) ;... return (0) ;
88 vjj 89 monitor kritické sekce jsou soustředěny do objektu Monitor, který hlídá jejich exkluzivní volání monitor Přístup function Zapiš(X)... function Přečti(X)... producent Přístup.Zapiš(X) klient Přístup.Přečti(X)
89 vjj 90.NET Monitor pro práci se sdílenými daty static byte[] buffer = new byte[100] ; static void myfce() { Monitor.Enter( buffer ) ;... Monitor.Exit( buffer ) ; } C# lock( buffer ) {... }
90 vjj 91.NET Monitor Monitor. Wait (buffer) ; Monitor. Pulse (buffer) ; Monitor. PulseAll (buffer) ;
Vývoj aplikačních programů pro systémy DAQ Možnosti vývoje aplikačního SW Jazyk C/C++ Pokročilé techniky programování Vícevláknové aplikace
Vývoj aplikačních programů pro systémy DAQ Možnosti vývoje aplikačního SW Jazyk C/C++ Pokročilé techniky programování Vícevláknové aplikace A3B38PRT Přístrojová technika - přednáška 5 Jaké znalosti jsou
VíceVirtuální přístroje. Použitá literatura. Operační systémy, vývoj aplikačních programů, speciální techniky programování
Virtuální přístroje Operační systémy, vývoj aplikačních programů, speciální techniky programování 1 Použitá literatura [1] Stallings, W.: Operating Systems. Internals and Design Principles. 4th Edition.
VíceCvičení č. 6. Synchronizace ve Windows. 3 Body
Cvičení č. 6 Synchronizace ve Windows 3 Body Datum: 3.4.2008 1 Obsah 1. Úvod...2 2. Pokyny pro odevzdání...2 3. Příprava...2 4. Úlohy...3 4.1 Doporučení pro implementaci...3 4.5 Přehled použitých funkcí
VíceVirtuální přístroje. Operační systémy, vývoj aplikačních programů, speciální techniky programování
Virtuální přístroje Operační systémy, vývoj aplikačních programů, speciální techniky programování 1 Použitá literatura [1] Stallings, W.: Operating Systems. Internals and Design Principles. 4th Edition.
VíceOperační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu. 6.1.1 Obědvající filosofové
Operační systémy Tomáš Hudec 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu, 6.1.1 Obědvající filosofové, 6.1.2 Producenti a konzumenti, 6.1.3 Problém spících holičů, 6.1.4 Problém pisatelů
VíceProcesy a vlákna - synchronizace
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody
VíceMožnosti programování se sdílenými proměnnými. Týden 6 Programování se sdílenými proměnnými (Shared Variables, SV) Procesy a vlákna.
Možnosti programování se sdílenými proměnnými Týden 6 Programování se sdílenými proměnnými (Shared Variables, SV). Sekvenční jazyk + paralelizující kompilátor = zatím málo efektivní (implicitní paralelismus).
VíceSemafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP.
Semafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP. Dvě sémantiky vzhledem k hodnotám čítače: 1. čítač >= 0 Operace DOWN zkontroluje
VíceOperační systémy. Přednáška 5: Komunikace mezi procesy
Operační systémy Přednáška 5: Komunikace mezi procesy 1 Semafory Datový typ semafor obsahuje čítač a frontu čekajících procesů. Nabízí tři základní operace: Init(): Čítač se nastaví na zadané číslo (většinou
VícePrincipy počítačů a operačních systémů
Principy počítačů a operačních systémů Operační systémy Synchronizace procesů, zablokování Zimní semestr 2011/2012 Přístup ke sdíleným datům Terminologie: souběžné vs. paralelní zpracování Paralelní provádění
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 16 Semafory Await synchronizace používající await běží na železe = využívají
VícePrincipy operačních systémů. Lekce 7: Obrana proti deadlocku
Principy operačních systémů Lekce 7: Obrana proti deadlocku Deadlock Deadlock = uváznutí, zablokování Vznik problému: proces drží určité prostředky, požaduje přidělení dalších prostředků, tyto nedostane
VícePavel Procházka. 3. prosince 2014
Jazyk C# (seminář 11) Pavel Procházka KMI 3. prosince 2014 Motivace Dnes už se prakticky nedělají jednojádrové procesory pokud potřebujeme výkon, musíme zapojit všechna jádra Často potřebujeme dělat více
VícePrincipy operačních systémů. Lekce 6: Synchronizace procesů
Principy operačních systémů Lekce 6: Synchronizace procesů Kritická sekce Při multitaskingu (multithreadingu) různé procesy často pracují nad společnou datovou strukturou (např. zápis a čtení do/z fronty)
VíceŘada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.
Operační systémy Tomáš Hudec 7 Prostředky programovacích jazyků pro IPC Obsah: 7.1 Monitor, 7.1.1 Použití monitoru pro řízení přístupu do kritické sekce, 7.1.2 Použití monitoru pro synchronizaci, 7.1.3
Vícevjj 1. Priority. Dispatcher
13.06.18 vjj 1 Priority Dispatcher 13.06.18 vjj 2 round-robin cyklická fronta připravených vláken 13.06.18 vjj 3 round-robin cyklická fronta připravených vláken čekající vlákna 13.06.18 vjj 4 Priority
VícePřidělování zdrojů (prostředků)
Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné
VícePARA Filozofové, kuřáci a holič
PARA Filozofové, kuřáci a holič Lenka Carr Motyčková 22. duben 2014 PDS Semafory 1 1. Večeřící filozofové (Dijkstra 1968) Problém: N (typicky 5) flozofů sedí u kulatého stolu, přemýšlí nebo jedí pomocí
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 17 Monitor Semafor vedle aktivní (čekací smyčka, busy-wait) i pasivní implementace
VíceProcesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication) České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace
VíceVon Neumannovo schéma
Multitasking Von Neumannovo schéma RAM 3 ADD SUB ZA input 20 28 010 100 registr dat 2 registr instrukcí op. code adr 7 LOAD 28 mikroprogramy 30 32 LOAD 28 ADD 20 registr adres 1 4 6 R W 30 čítač instrukcí
VíceOperační systémy. Přednáška 4: Komunikace mezi procesy
Operační systémy Přednáška 4: Komunikace mezi procesy 1 Časově závislé chyby Dva nebo několik procesů používá (čte/zapisuje) společné sdílené prostředky (např. sdílená paměť, sdílení proměnné, sdílené
VíceCvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;
Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru
VícePB153 Operační systémy a jejich rozhraní
PB153 Operační systémy a jejich rozhraní Uváznutí 1 Problém uváznutí Existuje množina blokovaných procesů, každý proces vlastní nějaký prostředek (zdroj) a čeká na zdroj držený jiným procesem z této množiny
VíceÚVOD DO OPERAČNÍCH SYSTÉMŮ
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna Plánování procesů (Process Scheduling) České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody
VíceSynchronizace paralelních procesů
SU Media: Student Středník ČWUT AVC SH Akropolis ikariéra Synchronizace paralelních procesů z ČWUT Obsah 1 Časově závislé chyby, kritické sekce, vzájemné vyloučení 2 Metody vzájemného vyloučení
Více2010/2011 ZS. Operační systém. prostředky, zablokování
Principy počítačů a operačních systémů Operační systém prostředky, zablokování Základní pojmy Prostředek cokoliv, k čemu je potřeba hlídat přístup např.hwzařízení, záznamy v DB Odnímatelné vs. neodnímatelné
VíceObsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21
Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní
VíceSprá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émy 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, 2014 1 / 23 Procesy (1/2) neformálně: proces = běžící
VíceOS Deadlock a prevence
OS Deadlock a prevence Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Prostředky poskytované OS OS poskytuje procesům systémové prostředky (zdroje, resources) HW zařízení,
VíceC++ a vnitřní svět. David Bednárek Jakub Yaghob Filip Zavoral
C++ a vnitřní svět David Bednárek Jakub Yaghob Filip Zavoral Vazby na OS Co není řešeno ISO normou Pokročilá práce se soubory Paměťově mapované soubory, asynchronní soubory Práce s adresáři Práce s procesy
VíceSynchronizace Mgr. Josef Horálek
Synchronizace Mgr. Josef Horálek Synchronizace procesu = Kooperující proces je proces, který může ovlivnit nebo být ovlivněn jiným procesem právě spuštěným v systému = Spolupracující procesy mohou sdílet:
Více2010/2011 ZS. Operační systém. procesy a vlákna. interakce a synchronizace
Principy počítačů a operačních systémů Operační systém procesy a vlákna plánování interakce a synchronizace Základní pojmy proces vykonávaný program vlákno (thread) oddělení místa vykonávání instrukcí
VícePřednáška 3. Synchronizace procesů/vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška 3 Synchronizace procesů/vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným
VíceChapter 7: Process Synchronization
Chapter 7: Process Synchronization Background The Critical-Section Problem Synchronization Hardware Semaphores Classical Problems of Synchronization Critical Regions Monitors Synchronization in Solaris
VíceZOS 9. cvičení, ukázky kódu. Pavel Bžoch
ZOS 9. cvičení, ukázky kódu Pavel Bžoch Obsah Komunikace mezi procesy Atomické operace TSL a CAS Zámky Semafory Semafory vypsání věty Monitor Bariéra pomocí monitoru Implementace semaforu pomocí monitoru
VíceVlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty
Vlákna a přístup ke sdílené paměti B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Paralelizace nám může pomoct... 1 Minulé cvičení: Paralelizace nám může pomoct... B4B36PDV: Ale ne všechny
VíceSpráva procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 11. březen, 2011
Operační systémy Správa procesoru Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 11. březen, 2011 Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 1 / 18 Procesy (1/2) neformálně:
VíceUkázka zkouškové písemka OSY
Ukázka zkouškové písemka OSY Jméno a příjmení:.......................................... Odpovězte na otázky zaškrtnutím příslušného políčka. Otázky označené znakem mohou mít více než jednu správnou odpověď.
VíceParalelní programování
Paralelní programování cvičení Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 13 Cvičení 1 Jazyk C POSIX Threads (UNIX) hlavičkový soubor pthread.h, knihovna
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
VíceSlužba ve Windows. Služba (service) je program
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 www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání, školské
VíceDistribuovaná synchronizace. Paralelní a distribuované systémy. 11. Přednáška Vzájemné vyloučení. Centralizovaný algoritmus - fronta procesů
Distribuovaná synchronizace Využití kritické sekce při vzájemném vyloučení v distribuovaném systému Paralelní a distribuované systémy 11. Přednáška Vzájemné vyloučení Logicky distribuovaný systém s vlákny
Více04. Mutexy, monitory. ZOS 2006, L. Pešička
04. Mutexy, monitory ZOS 2006, L. Pešička Administrativa změna termínů zápočtových testů 7.11.2006 (út), EP130, 18:30 12.12.2006 (út), EP130, 18:30 Semafory Ošetření kritické sekce ukázka více nezávislých
VíceC++ 0x aka C++11. Základním kamenem je třída std::thread
C++ 0x aka C++11 Jako jiné jazyky, např. Free/Object Pascal, se C++ ve standardu ++0x dočkal podpory vláken Výhodou je, že standardní knihovna je platformě nezávislá na úrovni zdrojového kódu Základním
VíceOperační systémy - modelování a algoritmy paralelních výpočtů
Operační systémy - modelování a algoritmy paralelních výpočtů texty pro distanční studium Doc. Ing. Cyril Klimeš, CSc. Ostravská univerzita v Ostravě, Přírodovědecká fakulta Katedra informatiky a počítačů
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.
VíceParalelní a asynchronní programování. Zdeněk Jurka
Paralelní a asynchronní programování Zdeněk Jurka Obsah přednášky Paralelní vs. Asynchronní programování Thread ThreadPool TPL Async await Synchronizace PLINQ Paralelní vs. Asynchronní programování Paralelní
VícePřidělování CPU Mgr. Josef Horálek
Přidělování CPU Mgr. Josef Horálek Přidělování CPU = Přidělování CPU je základ multiprogramového OS = pomocí přidělování CPU různým procesům OS zvyšuje výkon výpočetního systému; = Základní myšlenka multiprogramování
VícePříklad aplikace Klient/Server s Boss/Worker modelem (informativní)
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2
VíceSynchronizace procesů
Synchronizace procesů Tomáš Vojnar vojnar@fit.vutbr.cz Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 BRNO 11. dubna 2011 Operační systémy Synchronizace procesů Současný
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.
VíceTéma 36. Petr Husa
Přesné zadání: Téma 36 Petr Husa husap1@fel.cvut.cz Sdílení prostředků, časově závislé chyby, kritické sekce procesu. Synchronizační nástroje, uváznutí - původ, detekce, prevence. Komponenty JOS pro podporu
VíceManagement procesu I Mgr. Josef Horálek
Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více
VíceProcesy a vlákna (Processes and Threads)
Ú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
VíceAsynchronní programování v.net
Asynchronní programování v.net Tomáš Jecha Microsoft MVP Mail: tomas@jecha.net Twitter: @jechtom http://www.jecha.net http://www.vbnet.cz Agenda Procesy, vlákna, synchronizační primitiva, ThreadPool Task
VícePROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ Ing. Ivo Špička, Ph.D. Ostrava 2013 Ing. Ivo Špička, Ph.D. Vysoká škola báňská Technická univerzita Ostrava
VíceCvičení č. 5. Programování ve Windows program stopky 3 Body
Cvičení č. 5 Programování ve Windows program stopky 3 Body Datum: 31.3.2008 1 Obsah 1. Úvod...2 2. Pokyny pro odevzdání...2 3. Příprava...2 4. Úlohy...3 4.1. Požadavky na program SleepTest...3 4.2. Požadavky
VíceStředoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL
Středoškolská technika 2017 Setkání a prezentace prací středoškolských studentů na ČVUT PROGRAM NA GENEROVÁNÍ PRVOČÍSEL Vojtěch Pchálek Střední škola technická Kouřílkova 8, Přerov ANOTACE Bratr, který
VíceSynchronizace procesů
Synchronizace procesů Tomáš Vojnar vojnar@fit.vutbr.cz Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 BRNO 3. dubna 2018 Operační systémy Synchronizace procesů Současný
VíceChapter 6: Process Syncronization
Chapter 6: Process Syncronization Chapter 6: Process Syncronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Mutex Locks Semaphores Classic Problems of Synchronization
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
VíceSimulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 Jiří Douša, katedra číslicového návrhu (K18103), České vysoké učení technické
Více2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5
Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou
Více03. Synchronizace procesů. ZOS 2006, L. Pešička
03. Synchronizace procesů ZOS 2006, L. Pešička Administrativa 1. zápočtový test 7.11.2006 (út), EP130, 18:30 praktická cvičení před testem (slide upraven na aktuální termín) Plánování procesů Krátkodobé
VíceTeoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Paralelní programování
Tomáš Foltýnek foltynek@pef.mendelu.cz Paralelní programování strana 2 Opakování Co je to síť? Co je to tok? Co je to velikost toku? Co je to řez? Co je to velikost řezu? Jaký je vztah mezi velikostí toku
VícePRINCIPY OPERAČNÍCH SYSTÉMŮ
Metodický list č. 1 Název tématického celku: Přehled operačních systémů a jejich funkcí Základním cílem tohoto tematického celku je seznámení se s předmětem (vědním oborem) Operační systémy (OS) a se základními
Více08. Deadlock Přidělování paměti. ZOS 2006, L. Pešička
08. Deadlock Přidělování paměti ZOS 2006, L. Pešička Obsah Deadlock Jak předcházet, detekovat, reagovat Metody přidělování paměti Jak se vypořádat s uvíznutím 1. Problém uvíznutí je zcela ignorován 2.
VíceOvladače pro Windows. Ovladače Windows A4M38KRP. Str. 1
Ovladače Windows A4M38KRP Str. 1 Struktura OS Windows Str. 2 Typy ovladačů Str. 3 Typy ovladačů Virtual Device Driver User mode ovladač Virtualizace HW pro DOS aplikace Legacy Driver Pro zařízení nepodporující
VíceJazykové konstrukce pro paralelní výpočty
Paralelismus se vyskytuje na: Jazykové konstrukce pro paralelní výpočty 1. Úrovni strojových instrukcí 2. Úrovni příkazů programovacího jazyka 3. Úrovni podprogramů 4. Úrovni programů Vývoj multiprocesorových
VícePoslední aktualizace: 21. května 2015
Operační systémy seznam otázek ke zkoušce Poslední aktualizace: 21. května 2015 Průběh zkoušky: Zkouška je písemná, obvykle cca 6 7 otázek vybraných z níže uvedených. Po vyhodnocení budou výsledky na webu
VíceSeminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr
Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)
VíceVzájemné vyloučení procesů
PDV 10 2017/2018 Vzájemné vyloučení procesů Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Příklad Bankovní server v cloudu. Dva zákaznici současně vloží 10
VícePŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
VíceParalelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
VícePřednáška 4. Klasické synchronizační úlohy. Implementace procesů, vláken.
Přednáška 4 Klasické synchronizační úlohy. Implementace procesů, vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika
VíceVlákna. První jednoduchý program s vlákny:
Vlákna Současné operační systémy jsou víceúlohové. Z uživatelského pohledu se zdá, že běží několik úloh zároveň. Je tedy možné napsat i jeden program tak, aby v něm běželo vedle sebe několik relativně
Více07. Plánování procesů Deadlock. ZOS 2006, L. Pešička
07. Plánování procesů Deadlock ZOS 2006, L. Pešička Pozvánka na přednášku Xen na ZČU architektura migrace virtuálního stroje reálná konfigurace na ZČU praktická ukázka konfigurace a instalace virtuálního
VíceZOS. Verze 2010-srpen-31, v3 L. Pešička
ZOS Verze 2010-srpen-31, v3 L. Pešička Základní znalosti vhodné k opakování Rozhodně prosím neberte jako jediný materiál na učení ke zkouškám / státnicím obsahuje jen vybrané části Jde zde o zopakování,
VíceMS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti
MS WINDOWS II Jádro Správa objektů Správa procesů Zabezpečení Správa paměti JÁDRO I ntoskrnl.exe napsán v C (příp. assembler) základní mechanismy poskytované executivám trap dispečink synchronizace přístupů
Více30. Vlákna, jejich atributy, metody, organizace a stavy. Možnosti synchronizace. (A7B36PVJ)
30. Vlákna, jejich atributy, metody, organizace a stavy. Možnosti synchronizace. (A7B36PVJ) Procesy a vlákna Proces Každá aplikace je vlastně běžící proces. Pokud je aplikace spuštěna vícekrát, vytvoří
VíceWindows a real-time. Windows Embedded
Windows a real-time Windows Embedded Windows pro Embedded zařízení Současnost (2008): Windows Embedded WINDOWS EMBEDDED Windows Embedded CE Windows XP Embedded Windows Embedded for Point of Service Minulé
VíceZablokování (Deadlock) Mgr. Josef Horálek
Zablokování (Deadlock) Mgr. Josef Horálek Deadlock = V multiprogramovém prostředí si mohou různé prostředky konkurovat v získaní konečného počtu zdrojů = může se tedy stát, že čekající proces svůj stav
VíceJazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Jazyk VHDL konstanty, signály a proměnné Jazyk VHDL paralelní a sekvenční doména Kurz A0B38FPGA
VíceIRAE 07/08 Přednáška č. 7. Začátek (head)
Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků
VíceSpuš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)
Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,
VíceVISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor květen 2011 Jan Outrata (KI UP) Paralelní programování únor květen 2011 1 / 15 Simulátor konkurence abstrakce = libovolné proložení atom. akcí sekvenčních
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
VíceDruhá generace palivoměru LUN 5275 pro letoun EV-55
Druhá generace palivoměru LUN 5275 pro letoun EV-55 The second generation of the fuel gauge measuring system LUN 5275 for the EV-55 airplane Ing. Martin Moštěk, Ph.D. MESIT přístroje spol. s r. o., email:
VíceŘídicí struktury. alg3 1
Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení
VíceVlákna. První jednoduchý program s vlákny:
Vlákna Současné operační systémy jsou víceúlohové. Z uživatelského pohledu se zdá, že běží několik úloh zároveň. Jednotlivé úlohy se nazývají procesy nebo také vlákna (tento termín používá i Java). Operační
VícePB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory
PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory Výhody objektového řešení Nástroje pro IO operace jsou v C++ součástí knihoven Hierarchie objektových
VícePetr Štěpán, K13133 KN-E-129 Téma 5. Synchronizace a deadlock
Operační systémy a sítě Petr Štěpán, K13133 KN-E-129 stepan@fel.cvut.cz Téma 5. Synchronizace a deadlock A4B33OSS 1 Problém synchronizace vláken Souběžný přístup ke sdíleným datům může způsobit jejich
VíceGrafické znázornění vláken a klasické problémy synchronizace
Grafické znázornění vláken a klasické problémy synchronizace Naďa Jašíková Vít Koumar Jindřich Samec 1 Grafické znázornění vláken a jejich komunikace v UML Unified Modelling Language (UML) se používá k
VíceFronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4
Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first
VíceLogické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
VíceStromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.
Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start
VíceArchitektura 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)
Architektura a koncepce OS OS a HW (archos_hw) Aby fungoval OS s preemptivním multitaskingem, musí HW obsahovat: 1. (+2) přerušovací systém (interrupt system) 2. (+2) časovač Při používání DMA: 1. (+1)
VíceParalelní programování
Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)
Více