UNIX 12. Komunikace mezi procesy © Milan Keršláger

Slides:



Advertisements
Podobné prezentace
Základy databázových systémů
Advertisements

Komunikace periférii.
Souborové systémy.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Vzdělávací materiál / DUMVY_32_INOVACE_02B17 Příkazový řádek: procesy AutorIng. Petr Haman Období vytvořeníÚnor 2013 Ročník / věková kategorie3. ročník.
Přístupová práva, maska přístupových práv Jiří Hořejší.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Pravidelné zálohování dat
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Shell Team Jan Kupka Petr Kykal Tomáš Paríšek si Vám dovoluje představit
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Migrace kódu a procesů Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
Sběrnice Obr. 1.
Signály, jejich význam a použití Jan Kolařík. Co to je Signály fungují jako softwarová přerušení Po přijetí signálu může proces nebo skript provést nějakou.
Linux Souborový systém Roman Danel. Organizace dat na disku Prvních 512 bytů na pevném disku tvoří MBR, kde se nachází zavaděč operačního systému (446.
Správce virtuálních strojů Natalia Rubinova Martin Sloup Jiří Kučera.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Základy informatiky část 6
1 Seminář 9 MAC adresa – fyzická adresa interface (rozhraní) Je zapsána v síťové kartě. Je identifikátor uzlu na spoji. MAC adresu v paketu čte switch.
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Operační systémy Název a adresa školy
Základy operačních systémů
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Typy počítačových sítí Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je PaedDr. Pavel.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
Stanice v síti učební texty pro deváté ročníky ZŠ.
Operační systém GNU Linux
si Vám dovoluje představit
SVAZEK NEDEDIKOVANÝCH PRACOVNÍCH STANIC NA BÁZI OS LINUX DANIEL LANGR DIPLOMOVÁ PRÁCE 2004.
Funkce operačního systému (11). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro.
Počítačová bezpečnost Cvičení 1: Zabezpečení startu PC © Milan Keršláger
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Počítačová bezpečnost 2. Bezpečnost v OS © Milan Keršlágerhttp:// Obsah: ● jádro,
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
VIRTUÁLNÍ PAMĚŤ EP1. Kryštof Supek. Umožňuje předložit běžícímu procesu adresní prostor paměti, který je větší, než je fyzicky připojená paměť RAM Procesor.
UNIX 7. Meziprocesová komunikace a sítě © Milan Keršlágerhttp:// Obsah: ● meziprocesová.
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
FTP-SSL FTP-SSL Martin Dušek Martin Fúsek Josef Vlček.
UNIX 12. Komunikace mezi procesy © Milan Keršlágerhttp:// Obsah: ● meziprocesová.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Operační systémy 10. Souběh a uváznutí
Vypracoval / Roman Málek
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 ISSN: 
UNIX 12. Komunikace mezi procesy
Operační systémy 9. Spolupráce mezi procesy
Operační systémy 9. Spolupráce mezi procesy
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Operační systémy - úvod
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
UNIX 10. Procesy © Milan Keršláger
UNIX 6. Soubory a adresáře
Počítačová bezpečnost 2. Bezpečnost v OS
Operační systémy 9. Spolupráce mezi procesy
Tato prezentace byla vytvořena
UNIX 7. Deskriptory a proudy
1. ročník oboru Mechanik opravář motorových vozidel
UNIX 10. Procesy Obsah: algoritmus, program, proces, thread
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Operační systémy.
Přednášky z Distribuovaných systémů
Monitor Object 1.
Transkript prezentace:

UNIX 12. Komunikace mezi procesy © Milan Keršláger

Účely komunikace ● Inter-Process Communication (IPC) ● multiprogramování – úloha je rozdělena na více samostatných úloh, aby mohly být zpracovávány odděleně – je nutné zajistit synchronizaci, signalizaci a výměnu dat ● clustery – výpočty probíhají na oddělených počítačích – je nutné zajistit synchronizaci, signalizaci a výměnu dat při využití počítačové sítě

Meziprocesová komunikace ● soubor ● sdílená paměť ● mapování souborů do paměti ● signály ● zasílání zpráv ● roura ● pojmenovaná roura ● IPC socket ● zamykání souborů

Soubor ● nejjednodušší výměna dat mezi procesy ● dočasné soubory ● v unixových systémech v adresáři /tmp, /var/tmp – všichni mají právo zápisu → mohou si vzájemně škodit ● používá se sticky bit → nelze si vzájemně mazat i přes „w“ ● i tak vyžaduje vytváření dočasných souborů speciální zacházení ● zejména u privilegovaných procesů je riziko poměrně velké ● též problém souběhu → náhodné názvy, zamykání ● komunikace je však poměrně těžkopádná ● velká režie (zápis na HDD) ● mají však všechny systémy → přenositelnost

Sdílená paměť ● procesy jsou normálně odděleny ● kromě threadů, které mají sdílenou paměť záměrně ● sdílená paměť je shodná s částí jiného procesu ● při zápisu problém souběhu – řeší se zamykáním, synchronizačními primitivy ● funkce pro ovládání definuje POSIX – definuje vytvoření, připojení, získání ukazatele – pak zápisy i čtení, odpojení, zrušení sdílené paměti – zaručuje přenositelnost

Mapování souborů do paměti ● původně metoda nahrazující klasické operace ● otevření, čtení, zápis, posun ukazatele, zavření – nevýhodou je neustále kopírování dat mezi cache, bufferem a paměťovým prostorem procesu ● využívá mechanismu „výpadku stránky“ – odkládání nepoužívaných částí paměti na disk – využíváno u stránkování paměti ● lze využít i pro meziprocesovou komunikaci ● namapovaný soubor může být sdílen více procesy ● samozřejmě je nutné řešit souběh atp.

Signály ● jednoduchá meziprocesová komunikace ● implementováno v jádře OS ● asynchronní signalizace mezi procesy – v unixových OS může odesílat signál i jádro OS ● lze poslat jen vlastním procesům – správce (root) může poslat signál všem procesům ● proces zpracovává signál vyvoláním procedury – implicitní akce, ignorování signálu, vlastní obsluha signálu – ne všel lze předefinovat (KILL bohužel, resp. naštěstí nejde) – při zpracování volat jen bezpečné funkce (! reentrantnost) ● odesláním signálu systémovým voláním kill()

Syscall: kill() ● název podle signálu KILL ● signály odlišeny názvy, ty mapovány na čísla – HUP – „zavěšení“ + ukončení, dnes rekonfigurace – INT – přerušení (z terminálu CTRL+c) – QUIT – ukončení + core dump – KILL – nepodmíněné ukončení procesu („vražda“) ● nelze ve stavu D (proces je v jádře, čeká na dokončení I/O) – SEGV – porušení ochrany paměti – PIPE – signalizace rozpadu roury (ukončení skupiny) – TERM – slušná žádost o ukončení procesu – STOP – pozastavení procesu – CONT – obnovení běhu procesu

Příkaz kill ● zasílání signálů z příkazového řádku ● kill -l → vypíše seznam signálů + jejich čísla ● kill – zaslání signálu TERM (žádost o ukončení) – je číslo procesu – signál lze posílat jen svým procesům, root může všem ● kill -1 nebo kill -HUP – dnes někdy znovunačtení konfigurace (rekonfigurace) ● kill -9 nebo kill -KILL – bezpodmínečné ukončení procesu

Zasílání zpráv ● univerzálnější, než signály ● mezi procesy lze přenášet i data ● implementace v jádře nebo jako sdílená paměť ● řešení mezních situací ● synchronní a asynchronní ● jednosměrné, obousměrné ● spolehlivý přenos nebo bez záruk – nutnost implementovat fronty, potvrzování zpráv ● řešení duplikace, ztráty, příjemce skončil atd.

Kolona (roura) ● propojení příbuzných procesů ● propojení přes deskriptory – jednosměrné spojení (jeden zapisuje, druhý čte) ● vytváří se skupina procesů – jádro posílá při přerušení roury signál SIGPIPE – skupina reaguje ukončením („broken pipe“) ● v paměti kruhový vyrovnávací paměť – buffer ● typicky se využívá v příkazovém řádku grep ro /etc/passwd | sort

Pojmenovaná roura ● umožňuje spojení nepříbuzných procesů ● definuje POSIX ● styčné místo je speciální soubor typu roura – název lze nějak předat nepříbuzným procesům – vytvořená pojmenovaná roura „přežije“ ukončení procesů ● data vyměňována v paměti (buffer) ● pouze jednosměrná komunikace (FIFO) – jeden proces zapisuje, další čte

IPC socket ● též tzv. Unix Domain Socket, definuje POSIX ● speciální soubor, ale implementováno v RAM ● obdoba síťové komunikace – od roury přidává obousměrnou komunikaci – navíc možnost více klientů ● například PostgreSQL server + klient – /tmp/.s.PGSQL.5432 – klient otevře a připojí se

Zamykání souborů ● pro zabránění souběhu ● v unixových systémech jen informativní (advisory) – i když je na soubor aplikován zámek, jádro ho nevynutí – všechny programy musí zámky respektovat – funkce fcntl() a flock() → též na části souboru ● sdílené zámky – též nazývány jako zámky pro čtení ● exkluzivní zámky – též nazývány jako zámky pro zápis ● souborové zámky

Souborové zámky ● soubor signalizující zamčeno ● např. /etc/shadow.lock – znamená: někdo si mění heslo, tak počkáme – někdy název včetně PID procesu, který ho vytvořil ● opět jde o záležitost respektu, jádro nevynucuje ● používá se ve shellu a na FS bez podpory zámků – např. starší verze NFS bez lock démona ● vytvoření musí být atomická operace – v shellu „noclobber“ nebo vytvoření adresáře – v zásadě poměrně komplikovaná logika – problém „opuštěných zámků“ (anglicky: stale lock file)