Meziprocesová komunikace
|
|
- Vojtěch Kraus
- před 6 lety
- Počet zobrazení:
Transkript
1 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 je prostředky meziprocesové komunikace jejich účelem je - přenos údajů - sdílení dat - oznámení vzniku událostí - sdílení prostředků - sledování a řízení běhu procesu, např. při ladění programů signály umožňují oznámit procesům asynchronní události roury (pipes) umožňuje zapisovat data na konec roury a číst je ze začátku
2 nepojmenované roury vytvářejí se systémovým voláním pipe(), které vrátí dva deskriptory jeden pro čtení a druhý pro zápis deskriptory roury jsou při vytváření procesů děděné, do roury může zapisovat a číst z ní více procesů, přičemž data jsou čtena v pořadí v jakém byla zapsána procesy můžou komunikovat prostřednictvím roury byla-li vytvořena společným předchůdcem, po skončení všech procesů roura přestává existovat pojmenované roury, FIFO soubory jsou perzistentní, existují jako soubory i když je nepoužívají žádné procesy FIFO musí být explicitně zrušen, jako obyčejné soubory - unlink na rozdíl od obyčejných souborů přečtená data jsou odstraněna a z pohledu komunikace mají stejnou sémantiku jako nepojmenované roury vytvoření FIFO souboru mknode(cesta, mód, zařízení) mkfifo(cesta, mód) mód obsahuje obvyklá oprávnění
3 v případě mknode obsahuje disjunkci S_IFIFO a oprávnění třetí parametr slouží pro vytváření speciálních souborů pro zařízení dev_t dev; int status;... status = mknod("/home/cnd/mod_done", S_IFIFO S_IWUSR S_IRUSR S_IRGRP S_IROTH, dev); int status;... status = mkfifo("/home/cnd/mod_done", S_IWUSR S_IRUSR S_IRGRP S_IROTH); FIFO jsou potom jako obvykle otevřena systémovým voláním open(), které vrátí deskriptor souboru a do FIFO můžeme zapisovat systémovým voláním write() anebo z něho číst systémovým voláním read()
4 sledování procesů ptrace(příkaz, pid, adr, data); - umožňuje sledovat a řídit běh procesu pid - příkaz == 0, slouží na informování jádra, že proces je sledován (PTRACE_TRACEME) ostatní příkazy používá sledující proces na řízení vykonávání sledovaného procesu #include <sys/ptrace.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <linux/user.h> /* pro ORIG_EAX */ int main() { pid_t child; long orig_eax; child = fork(); if(child == 0) { ptrace(ptrace_traceme, 0, NULL, NULL); execl("/bin/ls", "ls", NULL); } else { wait(null); orig_eax = ptrace(ptrace_peekuser, child, 4 * ORIG_EAX, NULL); printf("potomek volal " "sluzbu %ld\n", orig_eax); ptrace(ptrace_cont, child, NULL, NULL); } return 0; }
5 struktura ladícího programu... if ((pid = fork()) == 0) { /*potomek sledovaný proces*/ ptrace(0,0,0,0); exec( jméno sledovaného programu ); } /*tady pokračuje ladící proces*/ for(;;) { wait((int *) 0); read(vstup ladícího příkazu); ptrace(příkaz,...); if(konec ladění) break; } ptrace potomkovi nastaví trace bit v deskriptoru potomka potomek vykoná exec, jádro zjistí, že trace bit je nastaven a pošle potomkovi TRAP signál při návratu z exec jádro obslouží TRAP signál, který poslalo vzbudí rodiče a potomek přejde do stavu trace (obdoba sleep) rodič zadává systémovým voláním ptrace() požadované příkazy jádro vzbudí sledovaného potomka, ladící proces se uspí, potomek vykoná příkaz a vzbudí ladící proces
6 Systém V IPC předcházející mechanizmy meziprocesové komunikace nejsou pro mnohé aplikace postačující System V poskytl tři mechanizmy (objekty) - semafory (semaphores) - fronty zpráv (message queues) - sdílenou paměť (shared memory) postupně byly implementovány v dalších systémech - BSD, Linux, Solaris uvedené mechanizmy mají podobné uživatelské rozhraní a podobnou implementaci - existují na jednom počítači - žijí tak dlouho jako jádro (reboot) - jsou identifikovány IPC klíčem (obdoba cesty k souboru) - jsou spřístupňovány identifikátory (obdoba deskriptoru souboru) - identifikátory nejsou vázány na proces, nemění se v průběhu života objektu - nemají i-uzly, nemůžeme použít open, unlink, stat, read, write proces získa identifikátor IPC prostředku voláním semget() msgget() shmget()
7 prvním parametrem xxxget je klíč, kterým procesy identifikují prostředek a uvedené funkce vrátí identifikátor prostředku, který procesy dál používají pro přístup k prostředku identifikátor může proces dále získat jako argument exec, posláním zprávou, přečtením ze souboru každý mechanizmus má tabulku jejíž položky obsahují všechny jeho prostředky každá položka obsahuje klíč a pořadové číslo použití položky identifikátor prostředku, vzhledem ke své perzistentnosti, není přímo index do tabulky, vypočte se podle vztahu id = seq * velikost_tabulky + index naopak, jádro z identifikátoru prostředku, který je parameterem dalších systémových volání, určí index prostředku v tabulce podle vztahu index = id % velikost_tabulky
8 index klíč, seq seq je inicalizován na nulu a inkrementován po každém uvolnění položky tabulky Příklad velikost: 100 index: 2 seq: id :
9 společné data IPC (semafor, fronta zpráv, sdílená paměť) jsou uložena v záznamu ipc_perm, který obsahuje položky: key - klíč, 32 bitová hodnota zadaná uživatelem, který identifikuje konkrétní prostředek uid - uživatelský ID vlastníka prostředku gid - skupinový ID vlastníka prostředku cuid - uživatelský ID tvůrce prostředku cgid - skupinový ID tvůrce prostředku mode - oprávnění rwx pro vlastníka, skupinu a ostatních seq - pořadové číslo použití položky tabulky jsou uloženy položkách tabulky každého mechanizmu spolu s daty specifickými pro typ prostředku správa klíčů mezi aplikacemi není, klíč můžeme vytvořit voláním ftok z cesty k souboru key_t ftok( const char *cesta, int id ); pro jednu cestu může generovat různé klíče pro různá id hodnota IPC_PRIVATE parametru klíč funkcí xxxget zajistí vytvoření nového prostředku
10 dalším společným parametrem funkcí xxxget je parametr příznaky příznak IPC_CREAT způsobí vytvoření prostředku jádrem, pokud ještě neexistuje ve spojení s příznakem IPC_EXCL jádro oznámí chybu jestliže prostředek se zadaným klíčem existuje příkazy IPC_SET a IPC_STAT funkcí semctl(), msgctl() a shmctl() umožňují nastavit a zjistit stavové informace prostředků příkaz IPC_RMID v xxxctl odstraní IPC prostředek
11 Semafory semid = semget (klíč, počet, příznak); vrátí identidikátor pole semaforů o velikosti počet stav = semop(semid, sops, nsops); atomicky vykoná operace nad polem semaforů sops je ukazatel na pole s nsops prvky typu sembuf struct sembuf { unsigned short sem_num; short sem_op; short sem_flg; }; specifikují operaci sem_op nad semaforem s indexem sem_num
12 sem_op < 0 je-li hodnota semaforu větší nebo rovná absolutní hodnotě sem_op, absolutní hodnota sem_op, se odečte od hodnoty semaforu je-li menší, proces je blokován (spící) dokud není zvýšena hodnota semaforu sem_op > 0 zvýší se hodnota semaforu o hodnotu sem_op a vzbudí se procesy čekající na její zvýšení sem_op = 0 proces je blokován dokud hodnota semaforu není 0 jde tedy o zobecněný semafor je-li proces spící uprostřed operace, je spící na přerušitelné úrovni
13 #define SEMKEY 52 int semid; struct sembuf psembuf, vsembuf; short init[2]; /*inicializace*/ semid = semget(semkey,2,ipc_creat S_IRUSR S_IWUSR S_IRGRP S_IWGRP S_IROTH S_IWOTH); init[0] = init[1] = 1; semctl(semid,2,setall,init); /*P operace*/ psembuf.sem_op = -1; psembuf.sem_flg = 0; /*V operace*/ vsembuf.sem_op = 1; vsembuf.sem_flg = 0; /*proces 1*/... psembuf.sem_num = 0; semop(semid, &psembuf, 1); psembuf.sem_num = 1; semop(semid, &psembuf, 1);... vsembuf.sem_num = 1; semop(semid, &vsembuf, 1); vsembuf.sem_num = 0; semop(semid, &vsembuf, 1);
14 /*proces 2*/... psembuf.sem_num = 1; semop(semid, &psembuf, 1); psembuf.sem_num = 0; semop(semid, &psembuf, 1);... možnost uvíznutí řešení struct sembuf psembuf[2]; psembuf[0].sem_num = 0; psembuf[1].sem_num = 1; psembuf[0].sem_op = -1; psembuf[1].sem_op = -1; semop(semid,psembuf,2); v příznacích operace semop může proces nastavit příznak IPC_NOWAIT, jádro namísto blokování vrátí chybu když po zamknutí přístupu k prostředku proces skončí, další procesy ho nemůžou získat, příznak SEM_UNDO v operaci semop způsobí, že jádro anuluje vykonané operace
15 implementace (Linux) jednotlivý semafor implementuje záznam sem obsahující položky semval - hodnota počítadla sempid - PID posledního procesu pracujícího se semaforem položky tabulky semaforů jsou záznamy semid_ds obsahující položky sem_perm - ipc_perm sem_otime - čas poslední operace sem_base - ukazatel na první sem záznam sem_pending - nevyřízené operace sem_pending_last - poslední nevyřízená operace undo seznam operací na anulování sem_nsems - počet semaforů v poli seznam všech anulovatelných operací se udržuje: pro proces jehož prvky obsahují upravující hodnotu (adjustment value) pro jednotlivé semafory, s kterými proces pracuje je použit když proces skončí pro semafor jenž se použije při nastavení hodnoty funkcí semctl() a při odstranění (zrušení) semaforu
16
17 Fronty zpráv procesy komunikují prostřednictvím zpráv zpráva vytvořená procesem je zaslána do fronty zpráv dokud ji jiný proces nepřečte zpráva obsahuje 32 bitový typ zprávy a data zprávy typ zprávy umožňuje selektivně vybírat zprávy z fronty proces získá nebo vytvoří frontu zpráv voláním msgqid = msgget(klíč, příznak); zpráva se uloží do fronty voláním msgsnd(msgqid, msgp, počet, příznak); msgp - je ukazatel na zprávu obsahující typ zprávy následován daty počet - velikost zprávy včetně typu v bytech zprávy jsou ve frontě v pořadí jejich příchodu
18 zprávy jsou vybírány voláním počet = msgrcv(msgqid, msgp, maxpct, msgtyp, příznak); je-li čtená zpráva delší než maxpct zpráva je useknutá msgp - je ukazatel na zprávu obsahující typ zprávy následován daty - je-li msgtyp nulový, vráti se první zpráva z fronty - je-li msgtyp kladný, vrátí první zprávu typu msgtyp - je-li msgtyp záporný, vráti se první zpráva nejnižšího typu než je absolutní hodnota msgtyp
19 Sdílená paměť sdílená paměť je oblast paměti, která je sdílená více procesy proces sdílenou oblast pamětí vytvoří nebo ji získá voláním shmid = shmget(klíč, velikost, příznak); proces připojí oblast na virtuální adresu voláním adr = shmat(shmid, shmadr, shmpříznak); shmadr je návrh adresy pro připojení oblasti shmpříznak SHM_RND způsobí zaokrouhlení adresy dolů je-li shmadr nula, jádro vybere adresu skutečná adresa je návratová hodnota odpojení oblasti shmdt(shmaddr);
20 #include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <unistd.h> #include <sys/wait.h> int main() { key_t key = 100; int shm_id; int shm_size = 1024; char *shm_addr; struct shmid_ds shm_buf; pid_t child_pid; /* vytvoreni sdilene pameti ke klici key */ shm_id = shmget(key, shm_size, IPC_CREAT IPC_EXCL S_IRUSR S_IWUSR); child_pid = fork(); if (child_pid == 0) { /* pripojeni */ shm_addr = (char *)shmat(shm_id, NULL, 0); printf("potomek: sdilena pamet pripojena na adresu: %p\n", shm_addr); printf("zapis...\n"); sprintf(shm_addr, "Sdilena pamet"); } /* odpojeni */ shmdt(shm_addr);
21 else if (child_pid!= -1) { shm_addr = (char *)shmat(shm_id, NULL, SHM_RDONLY); printf("rodic: sdilena pamet pripojena na adresu: %p\n", shm_addr); sleep(1); printf("cteni..."); printf(" %s\n", shm_addr); shmdt(shm_addr); waitpid(child_pid, NULL, 0); /* dealokovani*/ shmctl(shm_id, IPC_RMID, NULL); } else return 1; } return 0; Výstup: potomek: sdilena pamet pripojena na adresu: 0xb7f8d000 zapis... rodic: sdilena pamet pripojena na adresu: 0xb7f8d000 cteni:... Sdilena pamet
22
23
Práce s pamětí. Tématicky zaměřený vývoj aplikací v jazyce C skupina Systémové programování Linux. Martin Husák, Petr Velan, Martin Drašar
Práce s pamětí Tématicky zaměřený vývoj aplikací v jazyce C skupina Systémové programování Linux Martin Husák, Petr Velan, Martin Drašar Fakulta informatiky Masarykova univerzita {husakm velan drasar}@ics.muni.cz
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
Roury a zprávy Mgr. Josef Horálek
Roury a zprávy Mgr. Josef Horálek Roury a zprávy = Jde o metodu místní komunikace mezi procesy. = Jedná se o: = Anonymní roury = Pojmenované roury = Komunikace pomocí zpráv Anonymní roury (pipe) = Nejjednodušší
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
OS Konkurence procesů a IPC
OS Konkurence procesů a IPC Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Konkurence procesů sdílení prostředků paměť, CPU, soubory komunikace procesů přístup ke sdílené
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,
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í,
B4B35OSY: Operační systémy
B4B35OSY: Operační systémy Lekce 5. Meziprocesní komunikace Petr Štěpán stepan@fel.cvut.cz November 2, 2017 1 / 43 Outline 1 2 Meziprocesní komunikace 2 / 43 Outline 1 2 Meziprocesní komunikace 3 / 43
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
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
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í
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
Systém souborů (file system, FS)
UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je
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
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
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
int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N
Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze
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
Ú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í
Programování v C++ 2, 8. cvičení
Programování v C++ 2, 8. cvičení návrhový vzor iterátor 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené látky
Programování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
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
Mělká a hluboká kopie
Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta
Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí
02 Jazyk C - je imperativní říkáme, co se má udělat, voláme příkazy - další imperativní jazyky: Pascal, Java, C/C++ apod. - na rozdíl od jazyků deklarativních např. Prolog, Haskell, Scheme, Lisp (funkcionální
Odvozené a strukturované typy dat
Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu
Struktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
Algoritmizace a programování
Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura
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ů
- 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í
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Abstraktní třídy, polymorfní struktury
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní třídy, polymorfní struktury BI-PA2, 2011, Přednáška 9 1/32 Abstraktní třídy, polymorfní struktury Ing. Josef Vogel, CSc Katedra softwarového inženýrství
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
Programování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2
Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura
Ř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
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
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
- 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á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
5. Čtení/zápis sektorů z/do USB paměťového média I
BI-MPP Cvičení 5,6 - USB Mass Storage, Miroslav Skrbek (C)2010,2011 1 z 5 5. Čtení/zápis sektorů z/do USB paměťového média I Náplň cvičení V tomto cvičení se naučíte číst/zapisovat data z/na datovou USB
Operační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
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
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
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í
príznaky sychronizujúca nezávislé na procesoch Správy priznaky struct ipc_perm - 1 -
príznaky sychronizujúca nezávislé na procesoch Správy priznaky struct ipc_perm - 1 - Téma: Správy Kľúčové slova Ciele Odhadovaný čas Scenár medziprocesová komunikácia, správy Zapamätať si: služby pre prácu
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ů
Práce s binárními soubory. Základy programování 2 Tomáš Kühr
Práce s binárními soubory Základy programování 2 Tomáš Kühr Binární soubory Mohou mít libovolnou strukturu Data jsou uložena ve stejné podobě jako v paměti za běhu programu Výhody: Pro uložení je potřeba
Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C
Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace
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
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
Programování v C++ 2, 7. cvičení
Programování v C++ 2, 7. cvičení spojový seznam 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené látky Dědění
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
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
Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr
Strukturované typy a ukazatele Úvod do programování 1 Tomáš Kühr Motivace Se základními datovými typy si sice vystačíme Někdy to ale může být nepříjemně nepřehledné Příklady: long double soucet(const long
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ěď.
Pří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
Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8
Přednáška 8 Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. 1 Proměnné Jména nových proměnných by neměly kolidovat se jmény předdefinovaných proměnných.
Jazyk C++, některá rozšíření oproti C
Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra
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
Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr
Bitové operátory a bitová pole Úvod do programování 2 Tomáš Kühr Bitové operátory Provádějí danou operaci s jednotlivými bity svých operandů Operandy bitových operátorů mohou být pouze celočíselné Vyhodnocení
Programování v jazyce C a C++
Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu
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é
Opakování programování
Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování
LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.
LINUX SOUBORY Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. Dlouhý výpis příkazu ls Zadejte příkaz ls s parametrem l. Před každou položkou (souborem
Programování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy
Česká letecká servisní a. s.
Česká letecká servisní a. s. 1/20 Česká letecká servisní a. s. Your integrator of the avionics Česká letecká servisní a. s. Česká letecká servisní a. s. 2/20 Úvod do problematiky synchronizace tasků O
Stručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787
Stručný obsah První týden 25 den 1 Začínáme 27 den 2 Anatomie programu C++ 43 den 3 Proměnné a konstanty 57 den 4 Výrazy a příkazy 79 den 5 Funkce 107 den 6 Objektově orientované programování 141 den 7
11. Implementace ovladače ve Windows
BI-MPP Cvičení 11 - Ovladače (Windows), Miroslav Skrbek (C)2010,2011 1 z 6 11. Implementace ovladače ve Windows Náplň cvičení V tomto cvičení se naučíte napsat ovladač zařízení pro operační systém Windows.
Implementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru
Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Textové řetězce V jazyce C neexistuje typ proměnné, který by byl určen výhradně pro ukládání textu V jazyce C používáme
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í
ZPRO v "C" Ing. Vít Hanousek. verze 0.3
verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout
1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
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
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
Abstraktní datové typy
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,
OS Správa paměti. Tomáš Hudec. Tomas.Hudec@upce.cz. http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/
OS Správa paměti Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Operační paměť jeden z nejdůležitějších prostředků spravovaných operačním systémem procesy pro svůj běh
Př. další použití pointerů
Př. další použití pointerů char *p_ch; int *p_i; p_ch = (char *) p_i; // konverze int * na char * 8 int i = 5; int *p_i; p_i = &i; POZOR!!!! scanf("%d", p_i); printf("%d", *p_i); Obecný pointer na cokoliv:
Přidělování paměti II Mgr. Josef Horálek
Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování
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í,
Pole a Funkce. Úvod do programování 1 Tomáš Kühr
Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně
Operační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.
Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby
type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;
Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016
Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start
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
Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů
Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské
Základy programování (IZP)
Základy programování (IZP) Pá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 5. týden
Použití databází na Webu
4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové
C2110 Operační systém UNIX a základy programování
C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém
Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Ú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 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
ETH2CAN CAN firmware
ETH2CAN CAN firmware Obsah: ZÁKLADNÍ POPIS 2 KOMUNIKACE PO ROZHRANÍ ETHERNET 3 Paket UNKNOWN_PACKET_ID 4 Paket RUN 4 Paket MODE 5 Paket RESET 5 Paket SETTINGS 6 Paket PACKET_FULL_SETTINGS 6 Paket FIRMWARE
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
PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2
PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C
2.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