Operační systémy 9. Spolupráce mezi procesy

Slides:



Advertisements
Podobné prezentace
Obecně o operačních systémech
Advertisements

Komunikace periférii.
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Operační systém Adam Greguš, 4.A.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Maturitní okruh č. 7. Odstínit aplikace od specifik HWSpráva procesůSpráva pamětiSpráva souborůSpráva vstupů a výstupůSpráva sítěSystém ochrany a bezpečnostiSystém.
Štěpán Lískovec, 4.A.  =základní programové vybavení počítače (tj.software)  hlavní úkol:  A, zajistit uživateli možnost ovládat PC  B, vytvořit pro.
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á.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Operační systémy.
Operační systémy.
Databázové systémy Architektury DBS.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
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.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Lokální počítačové sítě Novell Netware Ing. Zdeněk Votruba Technická fakulta ČZU Laboratoř výpočetních aplikací.
OPERAČNÍ SYSTÉMY Správa zdrojů Historie Funkce Ovládání počítače
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Operační systémy.
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.
Počítačové sítě Informatika – 7. ročník
VY_32_INOVACE_8_10_Počítačové sítě
ICT – Informační a komunikační technologie Ing. Libor Měsíček, Ph.D. CN460
Vnitřní (operační paměť)
Operační systémy Název a adresa školy
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.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
OPERAČNÍ SYSTÉMY.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
SVAZEK NEDEDIKOVANÝCH PRACOVNÍCH STANIC NA BÁZI OS LINUX DANIEL LANGR DIPLOMOVÁ PRÁCE 2004.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
 nejvíce využívaná služba internetu založená na www stránkách  poskytuje virtuální informační prostor, přístupný pomocí prohlížeče  výhodou www stránek.
Počítačová bezpečnost Cvičení 1: Zabezpečení startu PC © Milan Keršláger
Počítačová bezpečnost 2. Bezpečnost v OS © Milan Keršlágerhttp:// Obsah: ● jádro,
ÚVOD DO PŘEDMĚTU INFORMAČNÍ TECHNOLOGIE. OPERAČNÍ SYSTÉM Je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti.
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.
Operační systém (OS) Základní funkce operačního systému: – Zajištění komunikace s okolím. – Řízení a zpracování programů. – Údržba informací na externích.
UNIX 12. Komunikace mezi procesy © Milan Keršláger
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.
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: 
Operační Systém Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho.
Operační systémy 9. Spolupráce mezi procesy
OPERAČNÍ SYSTÉMY Číslo projektu CZ.1.07/1.5.00/ Název školy
Vlastnosti souborů Jaroslava Černá.
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.
DIGITÁLNÍ UČEBNÍ MATERIÁL
UNIX 10. Procesy © Milan Keršláger
Počítačová bezpečnost 2. Bezpečnost v OS
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
1. ročník oboru Mechanik opravář motorových vozidel
Segmentace 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 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řepínání procesů 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: 
Paměť.
Přednášky z Distribuovaných systémů
Transkript prezentace:

Operační systémy 9. Spolupráce mezi procesy Obsah: signály, zasílání zpráv kolona, pojmenovaná roura IPC socket sdílená paměť problém souběhu © Milan Keršláger http://www.pslib.cz/ke/slajdy 19. 2. 2015 http://creativecommons.org/licenses/by-nc-nd/3.0/

Spolupráce mezi procesy využívána při multitaskingu tj. současný běh více úloh slouží ke vzájemné komunikaci procesů, předávání dat mezi procesy, synchronizaci využíváme při multiprogramování programátor využije multitasking zjednodušení naprogramování příslušné úlohy rozdělení na procesy zjednodušuje programování využití více jader procesorů

Příklady spolupráce systray (ikony, oznamovací oblast) síťová aplikace pošle zprávu appletu applet zobrazí bublinu (nový e-mail, IM zpráva) renderování scény v 3D hře arbitr přiděluje práci výpočetním procesům zároveň synchronizace s pohybem hráče ovládání GUI události o pohybu myši sbírá správce oken informace o pohybu či kliknutí posílá aplikacím

Komunikace mezi procesy zajišťuje několik činností synchronizace čekání na událost v druhém procesu vzájemné informování o postupu výpočtu signalizace jednoduchá asynchronní komunikace proces reaguje spuštěním obsluhy signálu výměna dat vysoké nároky na flexibilitu (specifické požadavky) pomocí výměny dat lze realizovat prakticky cokoliv

Mechanismy spolupráce zasílání zpráv flexibilní, s daty nebo bez dat i mezi různými počítači (např. cluster) sdílená paměť silnější nástroj, (neomezené) možnosti knihovny → jednoduchá implementace některé OS podporují oba mechanismy lze však implementovat i dodatečně knihovní fce umožňují zjednodušení, přenositelnost

Signály jde o asynchronní oznámení události realizace jako jednoduché zprávy (bez přenosu dat) jádro přeruší provádění procesu vyvolána obsluha signálu implicitní obsluha v jádře OS proces definuje vlastní obsluhu (proceduru) jsou oblíbené pro manipulaci s procesy ukončení procesu (slušné, násilné, chybou) znovunačtení (změněné) konfigurace

Signály v Unixu propojení na řídící znaky terminálu může být změněno příkazem stty CTRL+c → SIGINT → implicitně ukončení procesu CTRL+z → SIGTSTP → pozastavení procesu CTRL+\ → QUIT → ukončení + zápis core ošetření výjimek (standardně ukončení + core) SIGFPE → dělení nulou SIGSEGV → porušení ochrany paměti signalizace od jádra SIGPIPE → po ukončení procesu, který čte z roury

Použití signálů v Unixu systémové volání jádra – kill() knihovní funkce z programu nebo příkaz kill pro daný proces (PID) nebo pro skupinu procesů definice handleru proces sám definuje obsluhu signálu ignorování nebo procedura (vlastní nebo implicitní) není-li definována, tak implicitní handler nelze pro SIGKILL a SIGSTOP problémy souběh, globální proměnné, non-reentrantní funkce

Zasílání zpráv velmi flexibilní lze předávat v rámci 1 systému, ale i přes síť zasílání zpráv použito i u sběrnice PCI, PCIe umístění zprávy sdílená paměť → předání ukazatele buffer, fronta zpráv možné problémy + ošetření chyb ztráta nebo duplicita zprávy zkomolení zprávy jeden z procesů skončí

Odlišnosti zasílání zpráv počet participujících procesů dva nebo více → způsob vytváření spojení vlastnosti spojení kapacita spojení (kolik nezpracovaných) při nulové se odesílatel blokuje nebo se zpráva ztratí → nutnost kombinovat se synchronizačními prostředky omezená a neomezená kapacita velikost zpráv – pevná, proměnná duplex – jednosměrnost, obousměrnost synchronní, asynchronní – bez čekání na odpověď

Zprávy v Linuxu ipcs -l kromě informací a limitech zpráv poskytuje též informace o sdílené paměti

Zprávy ve Windows MS Windows nemají signály (nejsou POSIX) WinAPI (nízkoúrovňové) vyšší jazyky mohou zprávy řešit jinak používá se zasílání zpráv funkce PostMessage a DispatchMessage program má funkce „WinMain“ a „WinProc“ zpráva WM_CLOSE (zavření okna křížkem) posláno po stisku „End Task“ ve správce procesů po stisku „End Process“ program ukončen bez signálu/zprávy WM_DESTROY (není okno, program běží) „nezavřitelný“ program nedělá po WM_CLOSE nic

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

Sdílená paměť velmi flexibilní, definuje ji POSIX lze využít pro komunikaci programátor si (komunikaci) přizpůsobí dle svých potřeb funkce pro ovládání → syscall, knihovny definuje vytvoření, připojení, získání ukazatele pak zápisy i čtení, odpojení, zrušení sdílené paměti jednotné API (POSIX) zaručuje přenositelnost vzniká problém souběhu tj. problém současného zápisu do jednoho místa způsobuje ho multitasking, vícejádrové systémy

Řešení sdílené paměti využívá tabulky stránek dva různé procesy mají v tabulce stejnou stránku proces vytvoří sdílenou paměť o velikosti X lze definovat omezení: jen pro čtení, i pro zápis jádro vrátí identifikátor identifikátor je potřeba předat jinému procesu třeba skrze společný soubor (roura, socket) nebo tím, teprve pak proces odštěpí potomka jiný proces se ke sdílené paměti připojí získá ukazatel (adresu v paměti) řešíme problém souběhu (zámky, synchronizace) po ukončení práce je nutno sdílený úsek zrušit

Problém souběhu dva (i více) procesů mění stejná data při samostatném přístupu se problém neprojeví problémem je neatomická operace první proces upravuje sekvenčně data dojde ke změně kontextu na druhý proces druhý proces čte nekonzistentní data řešíme zamykáním zámky jsou knihovní funkce → univerzální použití též možnost atomické funkce + serializace

Thready běžné procesy jsou v paměti odděleny thready sdílí společnou paměť při zápisu čehokoliv do paměti je problém souběhu řeší se zamykáním, synchronizačními primitivy nebo oddělené proměnné pro každý thread chyba v jednom threadu ovlivní ostatní typicky ukončení všech threadů problém pluginů v prohlížečích chyba ve Flashi → pád celého prohlížeče vyvedení pluginu do samostatného procesu → výkon!