Zamykání v kernelu. Tomáš Pop tomas.pop at seznam.cz Připraveno na seminář linux kernel na MFF UK
|
|
- Radomír Špringl
- před 8 lety
- Počet zobrazení:
Transkript
1 Tomáš Pop tomas.pop at seznam.cz Připraveno na seminář linux kernel na MFF UK
2 Dnešní kernel je multitaskový (samozřejmě) Potřeba zamykat konkurence reentrance Výsledek procesu bez pořádného zamykání se nazývá Race condition Problémy preemptivního plánování a SMP (symmetric multiprocessing) oproti UP (uniprocessor)
3 Příklad race condition
4 Jak tomu předejít?? používání atomických operací atomic_t v; atomic_set(&v, 5); /* v = 5 (atomically) */ atomic_add(3, &v); /* v = v + 3 (atomically) */ atomic_dec(&v); /* v = v - 1 (atomically) */ printf("this will print 7: %d\n", atomic_read(&v)); Používání synchronizačních primitiv Lockless data acces
5 Synchronizační primitiva - základní Spinlocks Semaphores Mutexes Ostatní Reader/Writer Locks Big-Reader Locks The Big Kernel Lock Completion variables Memory Barriers
6 Spinlock include/asm/spinlock.h a include/linux/spinlock.h zámek vlastněný jedním procesem aktivní čekání není rekursivní (deadlocky, když to zkusíte) základní užití (i na SMP) spinlock_t mr_lock = SPIN_LOCK_UNLOCKED; unsigned long flags; spin_lock_irqsave(&mr_lock, flags); /* critical section... */ spin_unlock_irqrestore(&mr_lock, flags);
7 Spinlock Totéž jako na předchozím slidu na UP unsigned long flags; save_flags(flags); cli(); //zakazat interrupty /* critical section... */ restore_flags(flags);
8 Spinlock Totéž na UP, ale nesměly být před tím zakázané interrupty (nebudou obnoveny) spinlock_t mr_lock = SPIN_LOCK_UNLOCKED; spin_lock_irq(&mr_lock); /* critical section... */ spin_unlock_irq(&mr_lock);
9 Spinlock Pokud víme, že jsme v user-context kernel code (e.g., a system call) spin_lock() spin_unlock() Bottom halves spin locky (BH je starý název pro softirq) pokud máme kód vně softirq a může být použit i uvnitř softirq spin_lock_bh() spin_unlock_bh()
10 Spinlock Mohou se použít kdekoliv Aktivní čekání neměly být okolo delších sekcí nic co má spinlock by nemělo zavolat sleep Na zamykání delších sekcí jsou lepší semafory a mutexy Na multiprocesorech jsou někdy jediným řešením
11 Semaphory include/asm/semaphore.h struct semaphore, obsahuje wait queue a count sema_init(), inicializace použití down_interruptible(), dekrementuje count up() if (nová hodnota < 0), proces je zařazen do wait queue pokud přijde signál, je vráceno EINTR, a semafor není zamčen pokud je nová hodnota větší než 0, jsou probuzeny čekající proc
12 Semaphory použití down(), podobné jako down_interruptible dává volajícího do spánku, kdy ignoruje signály down_trylock() příklad struct semaphore mr_sem; sema_init(&mr_sem, 1); /* usage count is 1 */ if (down_interruptible(&mr_sem)) /* semaphore not acquired; received a signal... */ /* critical region (semaphore acquired)... */ up(&mr_sem);
13 Mutexy nejsou implementovány jako semafory (dříve byly) jsou o něco menší (asi o 4 byty na některch architekturách), lepší pro cachování na procesoru Hlavní rysy Jen jeden proces může držet zámek jen vlastník ho může odemknout několikanásobné odemčení je zakázáno task nemůže skončit, pokud má mutex mutexes nemohou být použity v irq contexts
14 Mutexy Použití DEFINE_MUTEX(name); mutex_init(mutex); void mutex_lock(struct mutex *lock); int mutex_lock_interruptible(struct mutex *lock); int mutex_trylock(struct mutex *lock); void mutex_unlock(struct mutex *lock); int mutex_is_locked(struct mutex *lock);
15 Completion Variables Používané podobně jako semafory Jeden nebo více procesů čeká na dokončení nějaké práce na completion variable, když je práce dodělána, jsou probuzeni je reprezentován completion type, linux/completion.h používá je třeba vfork() na vzbuzení otce????
16 Reader/Writer Locks semafory a spinlocky poskytují RW formu klasicky, může být mnoho čtenářů, ale jen jeden zapisovatel rwlock_t mr_rwlock = RW_LOCK_UNLOCKED; read_lock(&mr_rwlock); /* critical section (read only)... */ read_unlock(&mr_rwlock); write_lock(&mr_rwlock); /* critical section (read and write)... */ write_unlock(&mr_rwlock); struct rw_semaphore mr_rwsem; init_rwsem(&mr_rwsem); down_read(&mr_rwsem); /* critical region (read only)... */ up_read(&mr_rwsem); down_write(&mr_rwsem); /* critical region (read and write)... */ up_write(&mr_rwsem);
17 Big-Reader Locks include/linux/brlock.h jsou velice rychlé pro synchronizaci readerů jsou velice pomalé pro synchronizaci writerů br_read_lock(br_mr_lock); /* critical region (read only)... */ br_read_unlock(br_mr_lock);
18 The Big Kernel Lock původně z kernelu 2.0, jako jediný SMP lock mělo by se mu co nejvíc vyhýbat, v kernelu 2.6 by měl být jen minimálně je to rekursivní spinlock proces v něm může usnout nebo zavolat scheduler lock_kernel(); /* critical region... */ unlock_kernel();
19 Preemption control Od 2.5 je kernel preemptivní, s tím může někdy nastat problém mohou se použít preempt_disable() preempt_enable()
20 Jak a kdy co používat Podle aktuálního kernelu (! ale vše by mělo chodit všem, takže vše by se mělo psát korektně) kernely se liší podle toho jak byly kompilovány CONFIG_SMP # pro viceprocesory CONFIG_PREEMPT # kompilovat kernel jako preemptivni pokud jsou obě vypnuté, nesjou potřeba spinlocky pokud je zapnuté jen CONFIG_PREEMPT spinlocky jen zabraňují preempci Podle toho, odkud můžeme k datům přistoupit z user-contextu (syscally), z timerů, softirq, hardirq,taskletů
21 Jak a kdy co používat Pokud se k datům přistupuje jen ze syscallů, měli by být použity mutexy nebo semafory používat down_interruptible(), aby nebyl problém se signály Pokud datová struktura může být přistupována ze softirq handlerů a syscalů syscall může být přerušen softirq kritická sekce může být přistupována z jiného CPU použít spin_lock_bh(), zakáže softirq a zamkne zámek
22 Jak a kdy co používat Pokud datová struktura může být přistupována z handlerů timerů a syscallů timery jsou volán ze sotirq použít spin_lock_bh(), zakáže softirq a zamkne zámek Pokud datová struktura může být přistupována ze taskletů (dynamický softirq, vždy jeho handler běží jen na jednom CPU) a syscallů tasklet je volán ze sotirq použít spin_lock_bh(), zakáže softirq a zamkne zámek
23 Jak a kdy co používat stejný tasklet/tasklet nemůže nastat ani na multiprocesoru použít spin_lock_bh(), zakáže softirq a zamkne zámek tasklet/jiný tasklet, tasklet/timer spin_lock(), není potřeba spin_lock_bh(), protože jsme v taskletu a nic jiného na tomhle procesoru nepoběží??? stejné softirq/softirq spin_lock(), spin_unlock() růzdné softirq/softirq spin_lock(), spin_unlock
24 Jak a kdy co používat hardirq a softirq, spin_lock_irq(), zakáže interrupty na daném CPU na UP to vpodstatě jen použije local_irq_disable() spin_lock_irqsave(), spin_unlock_irqrestore() hardirq a hardirq spin_lock_irqsave()
25 Shrnutí (Minimální použitelné synchronizační primitivum pro kombinaci X Y)
26 Memory barriers Jde o synchronizaci přístupu do paměti CPU 1 CPU 2 MEMORY Device (e.g Síťovka)
27 Memory barriers Jde o synchronizaci přístupu do paměti jeden CPU změní data druhému CPU 1 CPU =============== { A == 1; B == 2 } A = 3; x = A; B = 4; y = B; Výsledky, které jsou možné x == 1, y == 2 x == 1, y == 4 x == 3, y == 2 x == 3, y == 4 CPU 1 CPU 2 MEMORY Device (e.g Síťovka)
28 Memory barriers Jde o synchronizaci přístupu do paměti Přístup na device přes data a adress registr *A = 5; // nastavit adres registr na 5 x = *D; // do x prescist data na adrese 5 (v data registru) Výsledek STORE *A = 5, x = LOAD *D x = LOAD *D, STORE *A = 5 CPU 1 CPU 2 MEMORY Device (e.g Síťovka)
29 Memory barriers cíl : garantovat pořadí přístupů do paměti Požadavky, které se kladou na systém, aby MB fungovali: Na každém CPU jdou Memory access za sebou jak mají Některé další předpoklady Nezávislé data accessy mohou být přeuspožádany libovolně X = *A; Y = *(A + 4); může dopadnout libovolnou z následujících variant X = LOAD *A; Y = LOAD *(A + 4); Y = LOAD *(A + 4); X = LOAD *A; {X, Y} = LOAD {*A, *(A + 4) };
30 Memory barriers Typy barrier Write (or store) memory barriers všechny STORE operace před barierou budou provedeny (budou viditelné) dříve než všechny STORE za barrierou Data dependency barrier Pro případy typu X = &Y; Z = *X; zajišťují, že to, co je na pozici kam ukazuje X bude updatovano, než to zkusíme číst. Read (or load) memory barrier DDB a a garance, ze všechny LOAD před barrierou budou vidět dřív než ty za barrierou General memory barriers vše před bude vidět dřív než vše za barrierou
31 Memory barriers Co od nich nejde čekat Nic negarantuje, že memory accessy před barierou budou dokončené ve chvíli dokončení MB Nic negarantuje, že MB na jednom CPU bude mít přímý vliv na data na jiném CPU (viz příklad později) Neexistuje garance, že NĚCO JINÉHO NEŽ PROCESOR přerovná přístupy do paměti (jiný hardware)
32 Memory barriers Příklad CPU 1 CPU 2 ================ { A == 1, B == 2, C = 3, P == &A, Q == &C } B = 4; <write barrier> P = &B Q = P; D = *Q; co když CPU 2 uvidí zápis do B později než zápis do P?
33 Memory barriers Příklad CPU 1 CPU 2 ================ { A == 1, B == 2, C = 3, P == &A, Q == &C } B = 4; <write barrier> P = &B Q = P; D = *Q; co když CPU 2 uvidí zápis do B později než zápis do P? (Q == &A) implies (D == 1) (Q == &B) implies (D == 4) Ale taky (to pry realne je, třeba na Alphach) (Q == &B) and (D == 2)
34 Memory barriers Řešení CPU 1 CPU 2 + =============== =============== + { M[0] == 1, M[1] == 2, M[3] = 3, P == 0, Q == 3 } + M[1] = 4; + <write barrier> + P = 1 + Q = P; + <data dependency barrier> + D = M[Q]; Obecně bariery se párují (W/DD, W/R, ALL/ALL)
35 Memory barriers Implementace Compiler barriers barrier();, obecná bariera CPU memory barriers general mb(), wmb(), rmb() - RW/barriers, read_barrier_depends() - data-dependency barrier. Mají i SMP varianty smp_xxx(), které něco dělají jen na SMP MMIO memmory barriers pro memory- mapped operace write mmiowb();
36 Memory barriers implicitní memmory barrier vpodstě pomocí zámků zámky viz dříve. *A = a; *B = b; LOCK *C = c; *D = d; UNLOCK *E = e; *F = f;
37 RCU, Read Copy Update, lockless data acces dá se s ní předejít READ zámků tedy WRITERS musí být schopni je měnit tak, aby to nevadilo new->next = list->next; wmb(); list->next = new; Odpojení ještě jednodušší list->next = old->next;
38 RCU, Read Copy Update, Kdy můžeme zlikvidovat odpojený element Problematické Ve knihovné list include/linux/list.h je funkce call_rcu() pro registrování funkce, která to zlikviduje, až skončí všichni readři Pozná to, podle toho, že si readři zamykají rcu_read_lock() rcu_read_unlock() nemohou u toho usnout, pokud se přeplánovává, může se zavolat callback procedura
39 Konec Zamykání v kernelu
40 Odkazy mem bar
Principy 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í
ZOS 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
Principy 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)
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é
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ů
Procesy 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
Von 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í
Paralelní 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í
Vláknové programování část III
Vláknové programování část III Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2008 05 06 1/36 Přehled přednášky Další nástroje pro synchronizaci
Operač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é
Obsah. 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í
C++ 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
Paralelní 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
03. 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é
Sprá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ě:
SWI 075 Linux Kernel. Úvod
SWI 075 Linux Kernel Úvod Outline Organizace semináře Vývojový model kernelu Developer essentials jak si kernel stáhnout, zkompilovat,... Dokumentace Témata referátů, zápočťáky,... Organizace semináře
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é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í
Pavel 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
Ovladač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í
2010/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ý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í
Výpočet v módu jádro v důsledku událostí - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení řízení se předá na proceduru pro ošetření odpovídající události část stavu přerušeného procesu
Paralelní 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
Služ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é
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.
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
Ř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
Paralelní 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á =
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
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 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Architektury paralelních počítačů II.
Architektury paralelních počítačů II. Sekvenční konzistence paměti Implementace synchronizačních událostí Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc. Osnova přednášky Opakování definice
Procesy 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
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)
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í,
Uká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ěď.
Management 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
Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.
Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící
04. 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
Paralelní programování
Paralelní programování přednáška 3 Michal Krupka 1. března 2011 Michal Krupka (KI UP) Paralelní programování 1. března 2011 1 / 14 Ještě k atomickým proměnným Další neatomické proměnné Mohou to být proměnné,
Vlákna Co je to vlákno?
Vlákna Co je to vlákno? Hierarchie z pohledu operačního systému: Proces o největší výpočetní entita plánovače o vlastní prostředky, paměť a další zdroje o v závislosti na OS možnost preemptivního multitaskingu
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ř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
30. 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ří
Synchronizace 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:
Cvič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
Operač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
vjj 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
Procesy 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
Synchronizace 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ý
HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán
HelenOS ARM port Pavel Jančík Michal Kebrt Petr Štěpán HelenOS experimentální operační systém (MFF) multiplatformní microkernel amd64, ia32, ia32xen, ia64, mips32, ppc32, ppc64, sparc64 plánování správa
Systémová volání Mgr. Josef Horálek
Systémová volání Mgr. Josef Horálek Systémová volání = Systémová volání = volání jádra = základní komunikace aplikačních programů s jádrem = Tvůrce programu obvykle oddělen vrstvou standardní knihovny
Transakce a zamykání Jiří Tomeš
Transakce a zamykání Jiří Tomeš Administrace MS SQL Serveru (NDBI039) O čem to dnes bude Úvodní opakování základních pojmů Jištění transakcí Speciální konstrukce Typy transakcí Závěrečný souhrn, použité
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden
Metody připojování periferií BI-MPP Přednáška 2
Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
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)
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)
Té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
Synchronizace 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ý
Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno
Operační systémy IOS 2009/2010 Tomáš Vojnar Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno ÚÓ Ò Ö ØºÚÙØ ÖºÞ Úvod do UNIXu p.1/11 Unix úvod Úvod do UNIXu p.2/11
Přerušovací systém s prioritním řetězem
Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním
Linux jako real-time systém. Red Hat Czech Michal Schmidt Duben 2009
Linux jako real-time systém Red Hat Czech Michal Schmidt mschmidt@redhat.com Duben 2009 Část I Úvod do real-time Úvod do real-time 1 Real-time úloha 2 Soft vs. hard real-time 3 Real-time operační systémy
Operační systémy. Přednáška 1: Úvod
Operační systémy Přednáška 1: Úvod 1 Organizace předmětu Přednášky každé úterý 18:00-19:30 v K1 Přednášející Jan Trdlička email: trdlicka@fel.cvut.z kancelář: K324 Cvičení pondělí, úterý, středa Informace
MS 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ů
Poslední aktualizace: 25. května 2017
Operační systémy seznam otázek ke zkoušce Poslední aktualizace: 25. května 2017 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
Stručný obsah. Rejstřík 463
Stručný obsah 1. Operační systémy 17 2. Architektura rodiny operačních systémů Windows NT 45 3. Vývoj ovladačů jádra 65 4. Synchronizace 113 5. Výjimky, přerušení a systémová volání 147 6. Správce objektů
Petr Holášek / 1 of 21
"Klidně to přeruš!" aneb pojednání o zpracovávání HW přerušení na OS Linux Petr Holášek / pholasek@redhat.com 1 of 21 Koho by měly zajímat přerušení? Administrátory Systémové inženýry Uživatele, které
Paralelní 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)
Vláknové programování část VI
Vláknové programování část VI Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2015 04 14 1/95 Vytváření vláken a procesů v Linuxu Vlákno vzniká
Vlá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
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
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
Synchronizace 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í
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) 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).
Paměti Flash. Paměti Flash. Základní charakteristiky
Paměti Flash K.D. - přednášky 1 Základní charakteristiky (Flash EEPROM): Přepis dat bez mazání: ne. Mazání: po blocích nebo celý čip. Zápis: po slovech nebo po blocích. Typická životnost: 100 000 1 000
Programování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS DATOVÉ STRUKTURY
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Správa paměti v zos 1 2 3 4 5 6 7 Data se ukládají do: REAL STORAGE = "rychlá" pamět např. RAM AUXILIARY
PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000. 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1
PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1 PESlib Popis knihoven PASCAL a C 03.2000 2. verze dokumentu Zmìny a doplòky proti 1.
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Správa paměti v z/os 1 2 3 4 5 6 7 8 Data se ukládají do: REAL STORAGE = "rychlá" pamět např. RAM AUXILIARY
Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.
1 Přerušení Při výskytu určité události procesor přeruší vykonávání hlavního programu a začne vykonávat obslužnou proceduru pro danou událost. Po dokončení obslužné procedury pokračuje výpočet hlavního
Konzistentnost. Přednášky z distribuovaných systémů
Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické
Memory Management vjj 1
Memory Management 10.01.2018 vjj 1 10.01.2018 vjj 2 sledování stavu paměti free used správa paměti strategie přidělování paměti techniky přidělování paměti realizace uvolňování paměti 10.01.2018 vjj 3
Chapter 6: Process Synchronization
Module 6: Process Synchronization Chapter 6: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Semaphores Classic Problems of Synchronization
x86 assembler and inline assembler in GCC
x86 assembler and inline assembler in GCC Michal Sojka sojkam1@fel.cvut.cz ČVUT, FEL License: CC-BY-SA 4.0 Useful instructions mov moves data between registers and memory mov $1,%eax # move 1 to register
a co je operační systém?
a co je operační systém? Funkce vylepšení HW sjednocení různosti zařízení ulehčení programování (např. časové závislosti) přiblížení k potřebám aplikací o soubory namísto diskových bloků o více procesorů
Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty
Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace
Cvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body
Cvičení č. 3 Sdílené prostředky a synchronizace Program Banka 4 body Datum: 12.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...3 4.2. Požadavky
Operační systémy. Přednáška 2: Procesy a vlákna
Operační systémy Přednáška 2: Procesy a vlákna 1 Procesy Všechen běžící software v systému je organizován jako množina sekvenčně běžících procesů. (Sekvenční) proces Abstrakce běžícího programu. Sekvence
Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.
p 1 Koncepce DMA Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW. Čekání na připravenost V/V Přenos paměť V/V nebo V/V paměť Posun pointeru
Metody připojování periferií
Metody připojování periferií BI-MPP Přednáška 3 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Střední odborná škola elektrotechnická, Centrum odborné přípravy Zvolenovská 537, Hluboká nad Vltavou Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 CZ.1.07/1.5.00/34.0448 1 Číslo projektu
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ DOKTORSKÁ DISERTAČNÍ PRÁCE
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ DOKTORSKÁ DISERTAČNÍ PRÁCE srpen 1996 Ing. Petr Hanáček VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Model pro vyjádření synchronizačních a komunikačních mechanismů DOKTORSKÁ DISERTAČNÍ
Připravil: David Procházka. Vertex Buffer Objects
30. září 2013, Brno Připravil: David Procházka Vertex Buffer Objects Počítačová grafika 2 Obsah přednášky Strana 2 / 22 Obsah přednášky 1 Obsah přednášky 2 Vertex Buffer Objects 3 Příklady 4 Shrnutí Obsah
Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí
Transakce = programová jednotka, která: - zachovává konzistenci databáze - končí v konečném čase - se provede celá nebo vůbec Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer
Chapter 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
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
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 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna
Principy operačních systémů Lekce 5: Multiprogramming a multitasking, vlákna Multiprogramování předchůdce multitaskingu Vzájemné volání: Implementován procesem (nikoliv OS) Procesu je přidělen procesor,
Chapter 6: Process Synchronization
Chapter 6: Process Synchronization Module 6: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Semaphores Classic Problems of Synchronization
Př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í
PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora
JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz
Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2
Základy informatiky 2. Přednáška HW Lenka Carr Motyčková February 22, 2011 Základy informatiky 1 February 22, 2011 Základy informatiky 2 February 22, 2011 Základy informatiky 3 February 22, 2011 Základy
Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček
Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PRC, LS2010/11, Predn.2
Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.
Přednáška 11 Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna. 1 Historie MS Windows I 1980 1981 1983 1990 1995 1998 2000 8-bitový procesor Intel 8080
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Principy operačních systémů. Lekce 4: Správa procesů
Principy operačních systémů Lekce 4: Správa procesů Základní pojmy Program = zápis algoritmu v programovacím jazyce Je statický (neměnný) Proces = instance programu běžícího v počítači Je tvořen nejen
Implementace systémů HIPS: historie a současnost. Martin Dráb
Implementace systémů HIPS: historie a současnost Martin Dráb martin.drab@secit.sk HIPS: základní definice Majoritně používané operační systémy disponují bezpečnostními modely, které dovolují jednotlivým