UNIX 10. Procesy © Milan Keršláger

Slides:



Advertisements
Podobné prezentace
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Advertisements

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ů.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Operační systém Adam Greguš, 4.A.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Principy překladačů Interpretované jazyky Jakub Yaghob.
Vzdělávací materiál / DUMVY_32_INOVACE_02B2 Správa procesů AutorIng. Petr Haman Období vytvořeníProsinec 2012 Ročník / věková kategorie2. ročník Vyučovací.
25. ALGORITMIZACE A PROGRAMOVÁNÍ
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.
Základy algoritmizace a programování
Š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.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Informatika / programování
Operační systémy.
Operační systémy.
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,
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
OPERAČNÍ SYSTÉMY Správa zdrojů Historie Funkce Ovládání počítače
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Algoritmizace a programování Úvod do Delphi - 04 Mgr. Josef Nožička IKT Algoritmizace a programování
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
ICT – Informační a komunikační technologie Ing. Libor Měsíček, Ph.D. CN460
Operační systémy Název a adresa školy
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
OPERAČNÍ SYSTÉMY.
doc. RNDr. Zdeněk Botek, CSc.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
XSLT překladač Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Základy operačních systémů
Počítačová bezpečnost Cvičení 1: Zabezpečení startu PC © Milan Keršláger
Základy programování mikropočítačů První program v jazyce symbolických adres.
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
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,
Překladače Operační paměť © Milan Keršláger
UNIX 12. Komunikace mezi procesy © Milan Keršláger
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Vypracoval / Roman Málek
Programování mikropočítačů Platforma Arduino
SW počítače - operační systém
UNIX 6. Procesy a jejich správa
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: 
Výukový materiál zpracován v rámci projektu
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 Číslo projektu CZ.1.07/1.5.00/ Název školy
Operační systémy Vývoj počítačů
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.
Překladače 3. Zápis programu
Překladače 9. Generování cílového kódu
Výukový materiál zpracován v rámci projektu
Počítačová bezpečnost 2. Bezpečnost v OS
Operační systémy 13. Knihovny, spustitelné soubory
Překladače 3. Zápis programu
Operační systémy Vnitřní struktura překladače
Operační systémy 9. Spolupráce mezi procesy
1. ročník oboru Mechanik opravář motorových vozidel
Operační systémy 13. Knihovny, spustitelné soubory
Překladače Zápis programu
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: 
Správa procesů.
Transkript prezentace:

UNIX 10. Procesy © Milan Keršláger 26.04.2018 http://www.pslib.cz/ke/slajdy http://creativecommons.org/licenses/by-nc-nd/3.0/

Co je proces algoritmus zápis postupu pro vyřešení úlohy program zápis algoritmu v nějakém programovacím jazyce proces spuštěný program thread (vlákno) odlehčený proces (proces má jeden či více vláken)

Algoritmus Al-Chorezmí perský matematik – algebra – algoritmy výpočtů 1145 přeloženo do latiny (Algorithmi...) původně návody, jak pracovat s čísly (včetně nuly) vlastnosti algoritmů konečnost obecnost (hromadnost) determinovanost stejné vstupy produkují stejné výsledky výstup (resultativnost)

Program realizace algoritmu v programovacím jazyce tomu však nerozumí procesor (CPU) nutný převod z prog. jazyka do instrukcí CPU překladač – kód vytvořen předem interpret – kód vytvářen průběžně za běhu souhrnně označováno jako software systémový zajišťuje chod počítače (režie chodu počítače) aplikační software konkrétní užitečná činnost (vlastní činnost)

Proces spuštěný program jeden program lze spustit vícekrát s různými daty umístěn v operační paměti počítače je prováděn procesorem proces se skládá z: vlastního kódu programu proměnlivých dat typicky v OS prováděno více procesů zároveň multitasking – rychlé střídání procesů na CPU

Thread (vlákno) odlehčený proces nižší režie při změně kontextu (střídání procesů na CPU) sdílí společný paměťový prostor stejná oprávnění, otevřené soubory, proměnné prostředí, ... rychlé vytváření a rušení vlákna efektivnější sdílení dat, synchronizace za cenu komplikací (tzv. souběh) využití v masivním paralelismu oblíbené ve Windows klasické procesy mají velkou režii problém bezpečnosti → webový prohlížeč s taby, Flash

Spustitelný soubor program ve vykonatelné podobě typicky soubor se strojovým kódem různé formáty (ELF, EXE, ...) též bytecode (Java) nebo skript (interpretace) specifické odlišení od ostatních souborů unixové systémy: nastaveno oprávnění „spustitelný“ Windows: přípona .EXE, .COM atd. specifický obsah pro danou platformu, architekturu systémová volání, instrukční sada, metadata → ABI (binární rozhraní) → též Wine na Linuxu

ELF Executable and Linkable Format původně pro Unix System V jako definované ABI 1999 – zvoleno pro unixové systémy spustitelné soubory, sdílené knihovny, object kód, core flexibilní a rozšiřitelný formát hlavička, segmenty, sekce, data není vztažen k jedné architektuře Linux, PlayStation, Nintendo, OpenVMS, ... nástroje: readelf, objdump, file

Knihovny soustředění často používaných funkcí snaha o opakované použití kódu první úspěšný pokrok ve stylu programování v Pascalu tzv. unity v jazyce C je standardní knihovna (libc) zjednodušuje jazyk, standardizuje šířeji jazyk nemusí být klíčová slova pro I/O apod. problém API, ABI, chyb v knihovních funkcích rozhraní se může měnit → binární tvar vydávání nových verzí knihoven

API Application Programming Interface způsob volání funkcí a návratové hodnoty funkce má parametry různých typů obvykle snaha o obecnost, přenositelnost, nezávislost API v unixových systémech definuje POSIX Windows mají vlastní Win32 (Windows API) kromě knihoven i systémová volání jádra (syscall) Windows skrývají syscall za meziprocesovou komunikaci mění se s novými verzemi (knihoven) API pak vzájemně nekompatibilní použité API volí programátor

Typy knihoven statické knihovny soubory s příponou .a knihovna se po překladu „přilepí“ k programu obstarává tzv. linker dynamické knihovny soubory s příponou .so (ve Windows DLL) program obsahuje jen seznam knihoven a funkcí při spuštění musí loader zavést též knihovnu bez knihovny program nefunguje knihovna může být sdílena mezi více procesy významná úspora místa v operační paměti

Loader zavaděč programu do paměti část v jádře OS rozpoznání formátu spustitelného souboru nakopírování spustitelného souboru do RAM typicky jen malý začátek skok na začátek zavedeného programu druhá část obsluhuje dynamické knihovny velký měnící se počet knihoven, netriviální optimalizace specializovaný program (dynamický linker) volá se ještě před spuštěním vlastního programu jeho umístění do binárky zajišťuje překladač (resp. linker) rozhodne o umístění dynamických knihoven v paměti nastaví sdílení knihoven s ostatními procesy

Dynamic loading knihovna se zavádí až za běhu programu využívá se speciální knihovní funkce nezajišťuje OS, ale sám program rozhoduje programátor modularizace programů při startu nemusí být všechny knihovny k dispozici → úspora paměti, automatické přizpůsobení problém: co když se knihovna změní za běhu programu?

ABI Application Binary Interface rozhraní na úrovni binárních souborů formát binárky (ELF, typ knihovny, …) začátek programu, rozlišení programu, datové části, ... konvence volání (knihovních) funkcí předávání parametrů v jistých registrech, zásobníku ABI vytváří kompilátor (překladač) změna ABI → nutno znovu přeložit (aplikace, knihovny) v Linuxu poměrně běžné s novou generací překladače není problém, protože ke všemu jsou zdrojové kódy u komerčních aplikací lze řešit statickým linkováním nezaměňovat s API (→ zaměřeno na data)

Životní cyklus procesu Vytvořený Ukončený Běžící Změna kontextu Připravený Blokovaný Fronta připravených procesů Fronta blokovaných procesů

Stavy procesů R – running (běžící) S – sleeping (spící) proces nevyužívá procesor D – uninterruptible sleep (nepřerušitelný spánek) během čekání na dokončení I/O operace T – stopped (zastavený) pozastavený běh procesu nebo krokování (ladění) Z – zombie ukončený proces, ale rodič nevyzvedl návratový kód

Priority procesů nastavené uživatelem uživatel (správce) ovlivňuje běh úloh scheduler podle toho přiděluje procesu čas CPU nastavené jádrem používá interně scheduler pro svůj algoritmus scheduler zajišťuje změnu kontextu obsluhuje frontu připravených procesů při rozhodování o pořadí respektuje priority procesů

nice změna priority procesu běžný uživatel může prioritu jen snížit hodnoty -20 (nejvyšší) až 19 (nejnižší priorita) záporné hodnoty jen root používají se na systémové procesy (swapper atp.) nižší priorita → méně času CPU ovlivňuje krátkodobé plánování CPU nejnižší znamená, že běží jen je-li CPU iddle typicky např. zálohování nebo dlouhodobé úlohy příklad použití: nice program změna za běhu → příkaz renice