OS Procesy a vlákna. Tomáš Hudec. Tomas.Hudec@upce.cz.
|
|
- Sára Navrátilová
- před 9 lety
- Počet zobrazení:
Transkript
1 OS Procesy a vlákna Tomáš Hudec Tomas.Hudec@upce.cz
2 Osnova procesy příkazy pro procesy procesy systémová volání signály signály systémová volání vlákna vlákna posixová volání
3 Proces instance programu v paměti systému program = recept na dort proces = pečení (podle tohoto receptu) provádění: sekvenční multiprogramming tabulka procesů, PCB (process control block) identifikace procesu, adresový prostor, stav, přidělené prostředky, práva, čas běhu, hierarchie procesů
4 Vznik a zánik procesu vznik procesu při inicializaci systému systémové volání požadavek uživatele, start dávky ukončení procesu normální (dobrovolné) při chybě (dobrovolné) fatální chyba (nedobrovolné) zabití (jiným procesem, jádrem)
5 Stavy procesů stavy: běžící (running) používá CPU připravený (ready) pozastaven jádrem OS blokovaný (blocked) čekající na vnější událost scheduler plánovač vybírá připravený proces pro běh přiděluje CPU odebírá CPU běžícím procesům preempce aktivuje se také při systémových voláních řídí se plánovacím algoritmem
6 Rozšířené stavy procesů základní stavy lze rozšířit nový (new) nelze zatím spustit (nemá ještě všechny prostředky) ukončený (exit) již se nemůže spustit, ale je třeba ještě držet v paměti jeho informace, např. kvůli účtování (accounting) odložený blokovaný (blocked, suspended) blokovaný proces zabírá paměť, více takových procesů pak ubírá paměť běžícím, proto se proces z paměti odloží na disk (swap) odložený připravený (ready, suspended) nastala již událost, na niž blokovaný proces čekal, ale proces je stále ještě na disku
7 Stavy procesů (obrázek) sedmistavový model
8 Implementace procesů tabulka procesů nebo též PCB adresový prostor: kód (text), stack, data, heap přidělené prostředky: otevřené soubory, semafory, kontext (stav): registry CPU, mapování paměti atributy: id, údaje plánovače, práva, časy, účtování, při přerušení (např. při V/V) přepnutí kontextu uložení kontextu (stavu) procesu obsluha ovladačem v jádře plánovač rozhodne, který proces poběží poté
9 Manuálové stránky rozděleny do sekcí, uloženy v /usr/share/man sekce popis 1 základní uživatelské příkazy 2 služby jádra systémová volání 3 knihovní funkce 5 formáty souborů, protokoly, struktury v C 7 různé (protokoly, normy apod.) 8 příkazy pro správu systému příkaz man(1) číslo v závorce udává sekci např. pro příkaz kill(1) a systémové volání kill(2): man kill man 2 kill
10 Příkazy pro procesy (UNIX) (1) seznam procesů: ps(1), pstree(1) všechny procesy: ps -ef sledování zátěže: top(1), prstat(1) sledování délky fronty procesů: xload(1) nebo uptime(1), také cat /proc/loadavg sledování využití procesoru: mpstat(1) např. 10 měření po 1 sekundě: mpstat 1 10
11 Příkazy pro procesy (UNIX) (2) získání PID podle jména: pidof(1) nalezení podle kritérií: pgrep(1) poslání signálu: kill(1) poslání signálu podle jména: killall(1) poslání signálu dle kritérií: pkill(1) nastavení priority: nice(1), renice(1) nice: od 20 (maximální priorita) do 19 (min.)
12 Atributy procesů podle ps (UNIX) označení id popis PID pid identifikace procesu %CPU %cpu využití CPU %MEM %mem využití paměti CMD args příkaz s argumenty START bsdstart čas vzniku procesu TIME bsdtime celkový čas využití CPU MMM:SS TIME cputime celkový čas využití CPU [DD-]HH:MM:SS ELAPSED etime celkový čas běhu procesu [DD-]HH:MM:SS USER user efektivní uživatel (UID), aliasy euser, uname GROUP group efektivní skupina (GID), alias egroup RUSER ruser reálný uživatel (UID) RGROUP rgroup reálná skupina (GID) NI nice hodnota priority nice STAT stat stavy: D, R, S, T, Z, X; atributy: <, N, L, s, l, + SZ sz velikost ve fyzických stránkách (text, data, stack) VSZ vsize velikost virtuální paměti v KiB
13 Stavy procesů (Linux) stavy procesů jak je vypisuje ps(1): R připravený nebo běžící (runnable/running) S blokovaný (sleep) Z ukončený (defunct, zombie) T pozastavený nebo krokovaný (stopped, traced) D nepřerušitelný spánek (uninterruptible sleep) X mrtvý (dead) nemělo by se nikdy vyskytovat W paging jen před jádrem 2.6
14 Stavy procesů (Linux) (obrázek) stavový model procesu v Linuxu
15 Procesy vytvoření, nahrazení vytvoření procesu fork(2) #include <unistd.h> pid_t fork(void); vrací: 0 = potomek, 0 < PID = rodič, 1 = chyba nahrazení procesu execve(2) #include <unistd.h> int execve(const char *filename, char *const argv[], char *const envp[]); vrací: úspěch = bez návratu, 1 = chyba viz též knihovní funkce system(3), exec(3)
16 Procesy získání PID, signalizace zjištění PID, PPID (parent PID) getpid(2) #include <sys/types.h> #include <unistd.h> pid_t getpid(void); pid_t getppid(void); poslání signálu procesu kill(2) #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); vrací: 0 = úspěch, 1 = chyba
17 Procesy ukončení ukončení _exit(2) #include <unistd.h> void _exit(int status); ukončí proces okamžitě, raději tedy: exit(3) #include <stdlib.h> void exit(int status); návratovou hodnotu může rodič získat voláním wait(2) nebo waitpid(2)
18 Procesy čekání na ukončení čekání na změnu stavu wait(2) změny: ukončení, signál pozastavení, signál pokračování #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status); ekvivalentní: waitpid(-1, &status, 0); pid_t waitpid(pid_t pid, int *status, int options); Příklad kompletní je např. v manuálové stránce wait(2): w = waitpid(cpid, &status, WUNTRACED WCONTINUED); if (w == -1) { perror("waitpid"); exit(exit_failure); } if (WIFEXITED(status)) { printf("exited, status=%d\n", WEXITSTATUS(status)); }
19 Signály jednoduché zprávy signal(7) SW obdoba HW přerušení posixové systémy implicitně je posílá OS při určitých událostech explicitně se posílají příkazem kill(1) zpracování: ukončení (s eventuálním coredump), pozastavení, pokračování procesu, některé lze ignorovat
20 Seznam (některých) signálů č. signál akce popis 1 SIGHUP exit zavěšení, ukončení session 2 SIGINT exit ukončení CTRL+C 3 SIGQUIT core ukončení CTRL+\ 6 SIGABRT core ukončení 15 SIGTERM exit ukončení 9 SIGKILL exit ukončení (nelze zachytit) SIGTSTP stop pozastavení CTRL+Z SIGSTOP stop pozastavení (nelze zachytit) SIGCONT restart pokračování pozastaveného 11 SIGSEGV core porušení ochrany paměti SIGCHLD ignore potomek skončil 14 SIGALRM exit alarm 4 SIGILL core neplatná instrukce 5 SIGTRAP core krokování, ladění 8 SIGFPE core výjimka plovoucí řádové čárky
21 Signály poslání signálu, obsluha poslání signálu procesu kill(2) #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); vrací: 0 = úspěch, 1 = chyba nastavení obsluhy signálu (zastaralé, zavrženo) #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);
22 Signály nastavení obsluhy změna obsluhy signálu sigaction(2) #include <signal.h> int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); vrací: 0 = úspěch, 1 = chyba struct sigaction { void (*sa_handler)(int); /* obsluha, SIG_DFL, SIG_IGN */ void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; /* maska blokovaných signálů při obsluze */ int sa_flags; /* nastavení chování */ void (*sa_restorer)(void); /* zastaralé, nepoužívat */ };
23 Signály maskování, množiny blokování signálů, nastavení množin signálů #include <signal.h> int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); how: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signum); int sigdelset(sigset_t *set, int signum); vrací: 0 = úspěch, 1 = chyba int sigismember(const sigset_t *set, int signum); vrací: 1 nebo 0 = úspěch, 1 = chyba
24 Signály alarm, čekání na signál nastavení poslání upozornění alarm(2) #include <unistd.h> unsigned int alarm(unsigned int seconds); vrací: počet sekund zbývajících do alarmu, který byl nastaven předchozím voláním (0 = nebyl) čekání na konkrétní signály sigsuspend(2) #include <signal.h> int sigsuspend(const sigset_t *mask); vrací: vždy 1 (s chybou EINTR)
25 Signály nastavení časovače nastavení upozornění po čase setitimer(2) #include <sys/time.h> int getitimer(int which, struct itimerval *value); int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue); tři časovače (hodnota which): ITIMER_REAL SIGALRM, měří reálný čas ITIMER_VIRTUAL SIGVTALRM, měří čas CPU procesu ITIMER_PROF SIGPROF, čas CPU procesu + jádra vrací: 0 = úspěch, 1 = chyba
26 Vlákna proces související prostředky jako celek adresní prostor, otevřené soubory, alarmy, obsluha signálů, účtování (accounting), vlákno odlehčený proces má následující položky samostatně: program counter, registry, stack, stav ostatní je sdíleno s ostatními vlákny procesu multithreading možnost běhu více vláken problém globálních proměnných
27 Vlákna motivace kvaziparalelismus stejný motiv jako proces jednodušší a rychlejší správa (vznik, ) výkon záleží na aplikaci (CPU V/V) určitě užitečné na SMP příklady využití: textový procesor (vstup, V/V, formátování) web-server (síťové spojení, předání stránky)
28 Vlákna procesy příklad web-serveru vlákna paralelismus, blokovaná syst. volání proces bez paralelismu, blokovaná syst. volání konečný automat paralelismus, neblokovaná systémová volání blokovaná SV jednodušší programování paralelismus zvýšení výkonu
29 Implementace vláken implementace vláken bez podpory OS pomocí knihovních funkcí problémy: blokovaná volání převést na neblokovaná page-fault stránka není v operační paměti obvykle pracné (potřeba plánovače vláken) implementace v jádře OS vzdálená volání více režie není potřeba neblokovaných volání hybridní implementace (např. Solaris)
30 Výhody a nevýhody implementací implementace bez podpory jádra OS + lepší režie rychlejší vznik, přepnutí kontextu + nevyžaduje se přechod do kernel mode + strategie plánovače se dá přizpůsobit aplikaci složitá implementace (neblokovaná volání) page-fault zastaví všechna vlákna
31 Výhody a nevýhody implementací implementace v jádře OS + lze provádět i vlákno procesu, jehož jiné vlákno způsobilo page-fault + není třeba neblokovaných volání horší režie přechod do režimu jádra pevná strategie plánovače vláken
32 Problémy při používání vláken globální proměnné (např. errno) potřeba samostatných alokací pro každé vlákno nereentrantní volání některých knih. funkcí např. alokace paměti (malloc) signály a jejich obsluha (např. alarm, INT, ) které vlákno má dostat signál, které se má přerušit stack (při přetečení jádro nemusí vědět o více zásobnících pro každé vlákno)
33 Posixová vlákna posixová knihovna pthread.h(7) #include <pthread.h> POSIX.1c redefinice globální proměnné errno #include <errno.h> špatně: extern int errno; kompilace se symbolem _REENTRANT gcc -D_REENTRANT -lpthread -o prog prog.c zajistí reentrantnost funkcí zajistí přenositelnost
34 Vlákna POSIX vytvoření vytvoření vlákna pthread_create(3) int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void*), void *restrict arg); spustí nové vlákno funkci start_routine(arg) thread identifikace vlákna attr nastavení atributů, může být NULL vrací: 0 = úspěch, jinak číslo chyby
35 Vlákna POSIX ukončení ukončení vlákna pthread_exit(3) void pthread_exit(void *value_ptr); volá se implicitně při ukončení funkce (return) čekání na ukončení vlákna pthread_join(3) void pthread_join(pthread_t thread, void **value_ptr); value_ptr návratová hodnota z pthread_exit může být NULL, pokud ji nepotřebujeme
36 Vlákna POSIX odpojení odpojení vlákna pthread_detach(3) int pthread_detach(pthread_t thread); nastaví automatické uvolnění zdrojů vlákna na vlákno pak nelze čekat pomocí pthread_join nelze tedy získat návratovou hodnotu informace lze ale předat pomocí globální proměnné lze též nastavit atributem vrací: 0 = úspěch, jinak číslo chyby
37 Vlákna POSIX zrušení zrušení vlákna pthread_cancel(3) int pthread_cancel(pthread_t thread); ukončí vlákno thread vlákno může registrovat ukončovací funkce pthread_cleanup_push(3) zavolají se před ukončením vlákna typ ukončení může být asynchronní nebo odložené pthread_setcanceltype(3) vrací: 0 = úspěch, jinak číslo chyby
38 Vlákna POSIX id, atributy získání identifikace vlákna pthread_self(3) pthread_t pthread_self(void); porovnání vláken pthread_equal(3) int pthread_equal(pthread_t t1, pthread_t t1); vrací: 0 = t1 a t2 jsou různá vlákna, 0 stejná manipulace s atributy vláken pthread_attr_destroy(3), pthread_attr_getdetachstate(3), pthread_attr_getstackaddr(3), pthread_attr_getstack(3), pthread_attr_getstacksize(3), pthread_attr_getschedpolicy(3), pthread_attr_getschedparam(3), pthread_attr_getscope(3), pthread_attr_getinheritsched(3)
Operační systémy. Cvičení 5: Volání jádra, procesy, vlákna.
Operační systémy Cvičení 5: Volání jádra, procesy, vlákna. 1 Obsah cvičení Systémová volání Knihovní funkce jazyka C Procesy informace o procesech vytváření, ukončování procesů, signály POSIX vlákna vytváření,
Přednáška 6. Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. Úvod do Operačních Systémů Přednáška 6
Přednáška 6 Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. 1 Procesy I Proces je spuštěný program. Každý proces má v rámci systému přiřazeno jednoznačné číslo
Programování v OS Linux
Programování v OS Linux Argumenty programu Synchronizace vláken 1. Mutexy 2. Semafory vláken 3. Signály ve vláknech Komunikace mezi procesy (IPC) 0. Pomocí argumentů příkazového řádku 1. Signály 2. Semafory
X36UNX. UNIX - signály. jejich význam a použití. Martin Plicka -
X36UNX UNIX - signály jejich význam a použití Martin Plicka - plickm1@fel.cvut.cz Co jsou signály? Softwarová přerušení zaslaná procesu jiným procesem, terminal driverem, jádrem Druhy signálů jsou očíslovány
Linux Teorie operačních systémů a realita
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Linux Teorie operačních systémů a realita České vysoké učení technické Fakulta elektrotechnická Ver.1.00 2010 Historie Unixu a Linuxu MULTICS 50. - 60. léta minulého století,
Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu
Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro
Linux a vlákna - Linuxové noviny 8-9/1998. Linuxové noviny 08-09/98
Page 1 of 9 - předchozí článek - následující článek - obsah - úvodní stránka - Linuxové noviny 08-09/98 Linux a vlákna Vladimír Michl, 7. srpna 1998 Tento článek si klade za úkol seznámit čtenáře s vlákny
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
Vláknové programování část I
Vláknové programování část I Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2012 02 21 1/46 For the past thirty years, computer performance has
Vláknové programování část I
Vláknové programování část I Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2015 04 07 1/27 Vláknové programování v C/C++ 1. Procesy, vlákna, přepínání
Téma 3. Procesy a vlákna
Operační systémy a sítě Petr Štěpán, K13133 KN-E-129 stepan@fel.cvut.cz Téma 3. Procesy a vlákna Pojem Výpočetní proces Výpočetní proces (job, task) spuštěný program Proces je identifikovatelný jednoznačné
Procesy a vlákna Mgr. Josef Horálek
Procesy a vlákna Mgr. Josef Horálek Procesy a vlákna = Základním úkolem jádra je = Správa běžících procesů a vláken: = vytváření = plánování = nastavování = ukončování Proces, vlákno, úloha = Proces běžící
Příkaz find, práce s procesy a úlohami, plánování úloh
A7B38UOS Úvod do operačních systémů 7. Cvičení Příkaz find, práce s procesy a úlohami, plánování úloh Find find adresář [výraz] V daném adresáři hledá soubory podle zadaného výrazu. Výraz se vyhodnocuje
2.Moderní koncepce OS, architektura jádra: monolitický systém, vrstvený systém, virtuální stroj, mikrojádro.
1. Definice os, typy os, služby a vrstvy, systémová volání, virtuální počítač Definice: -softwarova nadstavba HW -společně s hw představuje virtualni počitač -je rozhranim mezi živitelem a systemem (laik,
Operační systémy. Tomáš Hudec. Tomas.Hudec@upce.cz. http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/
Operační systémy Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Osnova definice OS historie rozdělení dle určení koncepce systémová volání rozdělení dle struktury 2 Literatura
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á
ZOS OPAKOVÁNÍ. L. Pešička
ZOS OPAKOVÁNÍ L. Pešička ZÁKLADNÍ PRAVIDLO Důležité je znát nejen fakta, ale porozumět jim a zasadit je do kontextu celého OS Př. algoritmus Second Chance využívá bitu Referenced tak, že (fakta) a kdy
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
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ů
Stavy procesů. Požadavky na OS při práci s procesy
Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna
Stavba operačního systému
Stavba operačního systému 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í,
Operační systémy. Tomáš Vojnar IOS 2010/2011. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno
Operační systémy IOS 2010/2011 Tomáš Vojnar ÚÓ Ò Ö ØºÚÙØ ÖºÞ Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno Správa souborů p.1/38 Správa procesů Správa souborů
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
Správa procesů a vláken Mgr. Josef Horálek
Správa procesů a vláken Mgr. Josef Horálek Správa procesů a vláken = Jeden z nejdůležitějších úkolů jádra operačního systému = Linuxové jádro dosáhlo důkladné implementace umožňující například plnohodnotné
Stavy procesů. Požadavky na OS při práci s procesy
Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna
Procesy a vlákna. A3B33OSD (J. Lažanský) verze: Jaro 2014
Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna
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
Úvod. unx-predn_01-uvod.odt 25.02.2008 16:13:43 1
Úvod unx-predn_01-uvod.odt 25.02.2008 16:13:43 1 Operační systém UNIX Přednášky Jan Zajic, zajic@fel.cvut.cz, K226 Web service.felk.cvut.cz/courses Cíl předmětu pokročilý uživatel začínající administrátor
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
PB071 Programování v jazyce C
Programování v jazyce C POSIX Organizační Zápočtový příklad nanečisto v tomto týdnu na cvičeních, 60 minut (naostro proběhne 5-11.5., čtvrtkové odpadnuté cvičení 15.5.) Pro účast na zkoušce je nutné mít
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
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 3 Procesy a vlákna
Téma 3 Procesy a vlákna Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7.
Pojem Výpočetní proces. Požadavky na OS při práci s procesy. Stavy procesů
Téma 3 Procesy a vlákna Obsah 1 Výpočetní procesy a jejich stavy 2 Stavový diagram procesů 3 Plánovače a přepínání kontextu 4 Typy plánování 5 Vznik a zánik procesu 6 Způsoby kooperace procesů 7 Proces
Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.
Odpovědi jsem hledala v prezentacích a na http://www.nuc.elf.stuba.sk/lit/ldp/index.htm Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je
PB071 Programování v jazyce C Jaro 2015
Programování v jazyce C Jaro 2015 Argumenty main(), Typový systém, Dynamická alokace Organizační Polosemestrální test Úterý 7. dubna v 10:00 a 11:00 v D1 20 bodů rozdíl mezi E a C Zdroj: http://www.bugemos.com/?node=342
Linux - Procesy (Processes)
Linux - Procesy (Processes) Běžící instance programu se nazývá proces. Například dvě okna terminálu jsou instancemi stejného terminálového programu, ale jsou to dva různé procesy. V každém okně běží shell,
Jádro OS je složitý asynchronní paralelní program, zaveden při startu a celou dobu v paměti, řídí hardware a
1 Jádro operačního systému Operační systém je most mezi HW a (uživatelským) programem, vytváří prostředí pro běh programů. Poskytuje tak abstrakce pro přístup k HW (čti soubor namísto instrukcí in). Operační
Změnit čas poslední modifikace souboru je možno službou jádra getrusage() stat() link() time() *truncate()
Otázky nesjou zdaleka všechny, jsou vytažené ze zveřejněných ukázkových otázek!!! Mějme program: static int pole[100]; main() { int pole1[200]; } Tento program bude mít po zkompilování sekci DATA velkou
Téma 2 Architektury OS a jejich služby
Téma 2 Obsah 1. Úkoly a skladba OS 2. Složky OS a jejich určení 3. Systémové programy 4. Standardy pro služby OS a typické služby JOS 5. Mechanismus volání služeb 6. Monolitické OS 7. OS s mikrojádrem
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
Operační systémy (OS)
Operační systémy (OS) Operační systém Základní softwarové vybavení Ovládá technické vybavení počítače Tvoří rozhraní mezi aplikačními (uživatelskými) programy a hardwarem organizace přístupu k datům spouštění
1. Definice OS: typy OS, abstrakce a služby, systémová volání.
Operační systémy okruhy k ústní zkoušce 1. Definice OS: typy OS, abstrakce a služby, systémová volání. - Definice OS Rozšíření stroje pohled shora (tvůrce prostředí pro uživatele a jejich programy) Správce
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
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ů
Obsah přednášky. Unix úvod. Literatura. Úvod do Unixu. Použitelnost Unixu. Úvod do Unixu 27.10.2011
Obsah přednášky Unix úvod Literatura Úvod do práce s Unixem Formát příkazů v Unixu Systém souborů a adresářů Příkazy pro práci se soubory a adresáři Procesy a práce s nimi Systémové proměnné 2 Literatura
Metody připojování periferií
Metody připojování periferií BI-MPP Přednáška 10 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
Management procesu II Mgr. Josef Horálek
Management procesu II Mgr. Josef Horálek Vlákna = Vlákna (Threads) = proces je definován množinou zdrojů výpočetního systému, které používá a umístěním, kde je spuštěn; = vlákno (thread) nazýváme lehký
UŽIVATEL, SKUPINA, PROCES
UŽIVATEL, SKUPINA, PROCES Systém bez uživatele je jedině Matrix? Uživatelé se seskupují a řídí práci. Group = skupina uživatelů Trocha teorie: LINUX je systémem víceuživatelským. Tzn. Že k dané instanci
Operační systém UNIX
UNIX z pohledu uživatele 1 Operační systém UNIX Nejzákladnější komponenty:! jádro (kernel)! shell! utility Jádro operačního systému! v podstatě představuje vlastní operační systém! fyzicky je to jediný
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x
Cvičení 3. ZOS 2005, L. Pešička Plán procesy, jobs Find Wildcards Příklad uživatelé Procesy eryx4> ps x PID TTY STAT TIME COMMAND 15055 pts/6 S 0:00 -tcsh 15256 pts/6 R 0:00 ps x eryx4> top & [1] 15260
Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář
Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění
IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.
IB109 Návrh a implementace paralelních systémů Organizace kurzu a úvod RNDr. Jiří Barnat, Ph.D. Sekce B109 Návrh a implementace paralelních systémů: Organizace kurzu a úvod str. 2/25 Organizace kurzu Organizace
Úvod do Operačních Systémů
Úvod do Operačních Systémů 8. cvičení Práce s procesy a úlohami, příkaz test 1 Obsah Práce s procesy ps, ptree, pgrep, time kill, trap nice, stty, truss (strace) vmstat, top Práce s úlohami test nohup,
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
Základy programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
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
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í
IUJCE 07/08 Přednáška č. 6
Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak
PB071 Programování v jazyce C Jaro 2013
Programování v jazyce C Jaro 2013 Uživatelské datové typy, dynamické struktury a jejich ladění Organizační Organizační Vnitrosemetrální test 7.4. Dotazník k domácím úkolům informační, nebodovaný, pomáhá
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
- program = vykonatelný soubor - proces = jedna instance vykonávaného programu
Proces - program = vykonatelný soubor - proces = jedna instance vykonávaného programu UNIX - souběžně (simultaneously) se může vykonávat mnoho procesů (šachový velmistr) - může se vykonávat mnoho instancí
Základy operačních systémů
Kontaktní informace Základy operačních systémů I. KIV/ZOS 2013 Ing. Ladislav Pešička UL401 pesicka@kiv.zcu.cz Předmět zprávy začít: ZOS Úřední hodiny St 10:00 až 11:00 Pa 10:00 až 11:00 Veškeré informace
Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů
Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,
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
<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************
zdroje/zdroje.xml
ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Vývoj SW aplikací. Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Vývoj SW aplikací Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení České vysoké učení technické Fakulta elektrotechnická 2012
PB161 Programování v jazyce C++ Přednáška 10
.. PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 23. listopadu 2015 PB161 přednáška 10: šablony 23. listopadu 2015 1 / 29 K zamyšlení Jaký je rozdíl mezi new int[10] a new int[10]()?
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í
Operační systém (Operating System)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Operační systém (Operating System) Definice, komponenty OS, vývoj a typy OS, služby OS, systémová volání, systémové programy, architektura České vysoké učení technické
1 Podrobná specifikace Yunifly Datasheet
1 Podrobná specifikace Yunifly Datasheet OBRAZEK fotky Yunifly obe desky zvlast + dohromady + top view - merge to one 1.1 Hmotnost a rozměry Elektronika Yunifly je složena ze dvou samostatných částí, které
Univerzita Pardubice. Fakulta elektrotechniky a informatiky. Sledování počítačů v síti s využitím HTTP serveru. Bc. Ondřej Petržilka.
Univerzita Pardubice Fakulta elektrotechniky a informatiky Sledování počítačů v síti s využitím HTTP serveru Bc. Ondřej Petržilka Diplomová práce 2011 Prohlašuji: Tuto práci jsem vypracoval samostatně.
Základy programování (IZP)
Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 27.11.2017,
Programovanie v jazyku C - to chce dynamiku
CVIČENIE 8/13 (S7) Programovanie v jazyku C - to chce dynamiku About rozdiel medzi statickou a dynamickou alokaciou pamate pre c objekty, spojkove zoznamy Basic knowledge kazda premenna musi mat pocas
Operační systémy. Tomáš Vojnar IOS 2010/2011. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno
Operační systémy IOS 2010/2011 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/15 Unix úvod Úvod do UNIXu p.2/15
Spojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
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
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,
Principy operačních systémů. Lekce 7: Souborový systém
Principy operačních systémů Lekce 7: Souborový systém Souborový systém Souborový systém (anglicky file system) je označení pro způsob organizace dat ve formě souborů (a většinou i adresářů) tak, aby k
Základní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
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ů
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)
Meziprocesová komunikace
Meziprocesová komunikace mnohé aplikace sestávají z mnoha navzájem spolupracujících procesů, které mezi sebou komunikují a sdílejí informace jádro musí poskytovat mechanizmy, které toto umožní nazýváme
Operační systémy. Přednáška 8: Správa paměti II
Operační systémy Přednáška 8: Správa paměti II 1 Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné
PROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK
PROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK ČÍSLO OPERAČNÍHO PROGRAMU: CZ.1.07 NÁZEV OPERAČNÍHO PROGRAMU: VZDĚLÁVÁNÍ PRO KONKURENCESCHOPNOST OPATŘENÍ:
PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ Procesy, paralelní procesy, souběžné zpracování Ing. Ivo Špička, Ph.D. Ostrava 2013 Ing. Ivo Špička, Ph.D.
IUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
Jazyk C++ II. Výjimky
Jazyk C++ II Výjimky AR 2013/2014 Jazyk C++ II Funkce abort Dříve byl obvyklý způsob zavolat metodu abort(). Metoda provádí okamžitě: Vyprázdnění vyrovnávací paměti, Ukončení celého programu, Vrátí číslo
Rozdělení operačních systémů
Operační systém Jde o nutný program pro činnost počítače bez něho by byl počítač jen kusem nábytku. 1.) Jedná se o program 3.) Poskytuje uživateli komunikační rozhraní. 4.) Tvoří p r o s t ř e d n í k
Principy operačních systémů. Lekce 2: Správa paměti
Principy operačních systémů Lekce 2: Správa paměti Funkce správce paměti Správce (operační) paměti je součástí kernelu. Jeho implementace může být různá, ale základní funkce jsou obdobné ve všech OS: Udržovat
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ě:
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é
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Lekce 3 Vizuální programování
algoritmizaci a programování s využitím robotů Lekce 3 Vizuální programování Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. Vytvoření
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
Operační systémy 2. Přednáška číslo 2. Přidělování paměti
Operační systémy 2 Přednáška číslo 2 Přidělování paměti Základní pojmy Paměť = operační paměť paměť, kterou přímo využívají procesory při zpracování instrukcí a dat Funkce modulu přidělování paměti: Sledování
Střední odborná škola a Střední odborné učiliště, Hořovice
Kód DUM : VY_32_INOVACE_LIN.1.09 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 09- Síťové služby konfigurace souborového serveru SAMBA DUM naučí žáky na základní úrovni ovládat a konfigurovat souborový