Uživatelské nástroje

Nástroje pro tento web


inter-process-comm

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
inter-process-comm [2016/05/18 14:13] – [Zamykaní] djbuldoginter-process-comm [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
-====== Mezi-procesová komunikace ======+====== Mezi-procesová komunikace (IPC) ======
  
   * sdílená paměť   * sdílená paměť
Řádek 11: Řádek 11:
 ===== Sdílená paměť ===== ===== Sdílená paměť =====
  
-  * http://www3.physnet.uni-hamburg.de/physnet/Tru64-Unix/HTML/APS33DTE/DOCU_004.HTM +  * [[http://advancedlinuxprogramming.com/alp-folder/alp-ch05-ipc.pdf|výborné čtení o meziprocesorové komunikaci, sdílené paměti, semaforech....]]
-    * všechny procesy mají přístup do paměti ihned +
-    * začíná se voláním ''shm_open'' +
-    * pro přístup do sdílené paměti musí procesy použít stejný name... což je string, například pathname +
-    * +
  
 +  * POSIX Shared Memory Operations [[http://menehune.opt.wfu.edu/Kokua/More_SGI/007-2478-008/sgi_html/ch03.html#id29423|1]] [[http://www.cs.cf.ac.uk/Dave/C/node27.html#SECTION002740000000000000000|2]]
 +    * mmap(2) - Map a file or shared memory object into the address space.
 +    * shm_open(2) - Create, or gain access to, a shared memory object.
 +    * shm_unlink(2) - Destroy a shared memory object when no references to it remain open.
 +    * http://www3.physnet.uni-hamburg.de/physnet/Tru64-Unix/HTML/APS33DTE/DOCU_004.HTM
 +      * všechny procesy mají přístup do paměti ihned
 +      * začíná se voláním ''shm_open''
 +      * pro přístup do sdílené paměti musí procesy použít stejný name... což je string, například pathname
 +
 +  * System V Shared Memory Functions [[http://menehune.opt.wfu.edu/Kokua/More_SGI/007-2478-008/sgi_html/ch03.html#id17480|1]] [[http://www.cs.cf.ac.uk/Dave/C/node27.html|2]]
 +    * shmget(2) - Create a shared memory IPC object or return the ID of one.
 +    * shmctl(2) - Get the status of a shared memory segment, change permissions or user IDs, or lock or unlock a segment in memory.
 +    * shmat(2) - Attach a shared memory segment to the address space.
 +    * shmdt(2) - Detach a shared memory segment from the address space.
  
 ==== Zamykaní ==== ==== Zamykaní ====
Řádek 28: Řádek 38:
     * nastaví se počet X, kolik procesů/vláken může max vstoupit     * nastaví se počet X, kolik procesů/vláken může max vstoupit
     * slouží k omezení paralelního přístupu na max X     * slouží k omezení paralelního přístupu na max X
 +
 +Existuje C++ třída mutex
 +
 +POSIX semafory [[http://linux.die.net/man/7/sem_overview|1]] [[http://menehune.opt.wfu.edu/Kokua/More_SGI/007-2478-008/sgi_html/ch04.html#id82695|2]]
 +  * pojmenované semafory
 +    * identifikuje se jménem se ve tvaru "/řetězec" s max délkou 251
 +    * vytváří se jako soubor v /dev/shm s názvem "sem.řetězec"
 +    * ''sem_open'' - vytváří
 +    * ''sem_close'' - ukončuje práci s
 +    * ''sem_unlink'' - úplně likviduje (poslední proces)
 +    * ''sem_post''
 +    * ''sem_wait''
 +  * nepojmenované semafory
     * identifikuje se číslem     * identifikuje se číslem
 +    * vytváří se v paměti
 +      * jako globální proměnná - mezi vlákny
 +      * ve sdílené paměti - mezi procesy
 +    * ''sem_init'' - vytváří
 +    * ''sem_destroy'' - volat před dealokaci paměti
 +    * ''sem_post''
 +    * ''sem_wait''
 +
 +System V Semafor [[http://menehune.opt.wfu.edu/Kokua/More_SGI/007-2478-008/sgi_html/ch04.html#id16331|1]]
     * oprávnění se nastavuje 9 bitovým číslem (obdoba oprávnění u souboru), tedy například 666     * oprávnění se nastavuje 9 bitovým číslem (obdoba oprávnění u souboru), tedy například 666
-    * ''semget''vytvoří, získá semafor s daným id +    * ''semget''alokuje (ve sdílené paměti) nebo získá semafor s daným id 
-    * ''semop'' - provádí operace se smaforem+    * ''semop'' - provádí operace se smaforem jako init, wait, post nebo i dealokaci
     * semafor prý existuje, i když všechny procesy skončí!!!     * semafor prý existuje, i když všechny procesy skončí!!!
       * lze vypsat přes ipcs -s       * lze vypsat přes ipcs -s
  
-[[http://advancedlinuxprogramming.com/alp-folder/alp-ch05-ipc.pdf|výborné čtení o meziprocesorové komunikaci, sdílené paměti, semaforech....]] 
-[[http://www.cs.cf.ac.uk/Dave/C/node27.html|o sdílené, pěkné s příklady]] 
 ===== Nepojmenovaná roura ===== ===== Nepojmenovaná roura =====
  
inter-process-comm.1463573637.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki