20. maturitní okruh OS Linux – procesy v UN*Xových systémech správa procesů a systémových zdrojů, jádro a utility, signály, práce s procesy Počítačové.

Slides:



Advertisements
Podobné prezentace
UŽIVATEL, SKUPINA, PROCES Systém bez uživatele je jedině Matrix? Uživatelé se seskupují a řídí práci. SPŠ Teplice - 3.V.
Advertisements

Obecně o operačních systémech
Komunikace periférii.
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Správce virtuálních strojů Martin Sloup Natalia Rubinova Jiří Kučera.
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ů.
Bezpečnost v Linuxu Zpracoval: Roman Danel. Balíčkovací systém Způsob distribuce SW Ošetřuje a řeší závislosti Díky „podepisování“ balíčků nehrozí podstrčení.
Přínosy a druhy počítačových sítí. Jednou z nejvýznamnějších technologií používaných v oblasti výpočetních systémů jsou již řadu let počítačové sítě.
Z ČEHO SE POČÍTAČ SKLÁDÁ
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.
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.
Protokol TCP/IP a OSI model
PHP – Základy programování
Operační systémy.
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,
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.
Správa procesů.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
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)
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Správce virtuálních strojů Natalia Rubinova Martin Sloup Jiří Kučera.
Stránkový editor vi Makra Pro často používané sekvence příkazů lze použít makra. :map makro sekvence_prikazu :unmap makro Zkratky :ab zkratka plny_tvar.
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.
Správa procesů.
3. konzultace (5 hodin) Studijní materiály najdete na adrese:
Vnitřní (operační paměť)
Operační systémy Název a adresa školy
Správce virtuálních strojů Natalia Rubinova Martin Sloup Jiří Kučera.
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.
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
OPERAČNÍ SYSTÉMY.
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.
doc. RNDr. Zdeněk Botek, CSc.
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.
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.
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.
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.
Ú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.
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.
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.
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.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Paměti PC HDD, CD/DVD, USB Flash RAM a ROM Vnější paměť Disková paměť
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
SOFTWARE Operační systémy.
Bezpečnostní technologie I
Vypracoval / Roman Málek
SW počítače - operační systém
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: 
Moduly.
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.
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
1. ročník oboru Mechanik opravář motorových vozidel
PB 169 Počítačové sítě a operační systémy
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: 
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ěť.
Správa procesů.
Přednášky z Distribuovaných systémů
Transkript prezentace:

20. maturitní okruh OS Linux – procesy v UN*Xových systémech správa procesů a systémových zdrojů, jádro a utility, signály, práce s procesy Počítačové systémy

proces je všechen běžící software a je organizován jako množina běžících procesů každý proces má své PID a zná PID svého rodiče (PID je číslo, které jednoznačně určuje přenos)  viz. další snímek  fork- (téměř) vytvoří duplicitní kopii přenosu - otcem nového procesu je proces “fork( )null“  exec- nahradí program v aktuálním procesu jiným programem  wait- rodič čeká na doběhnutí potomka proces spuštěný přímo je záměrně spuštěný program nepřímo je proces spuštěný námi spuštěným procesem uživatelské procesy (ty, co spustil libovolný uživatel) systémové procesy (ty, co spustil systém při startu nebo na základě libovolné události) Procesy

Tabulka procesů Uchovává v sobě všechny procesy a informace o nich Operační systém identifikuje procesy na základě jejich PID (jedinečná identifikace) Ke sledování procesů nám výborně poslouží příkaz ps Po spuštění procesu je mu přiděleno číslo, které je jedinečné, jedná se o číslo procesu (PID - process identification), jsou to kladná z množiny integeru od 2 do Chybí tu číslo 1, to je rezervováno procesu init

Určení priority procesu Priorita neboli přednost procesu se určuje podle nice hodnoty Základní hodnota, kterou proces může obdržet, je 10 Pak závisí na běhu programu. Těm, které běží nepřerušeně delší dobu, je přidělována nižší hodnota Chceme-li zjistit tyto hodnoty, použijeme k příkazu ps přepínač -f Aby byla zajištěna rychlá odezva programů, systém sníží nice hodnotu, tím dostane program do popředí a docílí tak jeho rychlé odezvy

Životní cyklus procesu  Vznik  Na základě podmínky může být ukončen  Zaniká  Procesy se kopírují pouze virtuálně

Přepínání kontextu (stavu procesu) je to stav případného procesu, případně i stav zařízení ke změně kontextu dochází když:  multitasking: jeden proces potřebuje být vyhozen z procesu a jiný naopak musí běžet (OS poskytuje každému procesu určitou dobu – Time Slice)  obsluha přerušení  změna mezi uživatelským a jaderným režimem

Přidělování paměti procesům Jádro OS má úplný přístup k systémové paměti a musí umožnit procesům bezpečně přistupovat k této paměti, pokud to tyto procesy vyžadují. Díky virtuálnímu adresování (zvláštní způsob správy operační paměti počítače. Umožňuje operačnímu systému využívat vnitřní paměť, která je významně větší, než je skutečná fyzická velikost paměti) máme zaručenu ochranu paměťového prostoru každého procesu a navíc získáme možnost adresovat více paměti, než má systém fyzicky k dispozici

Prostředí procesu Historicky se program skládal z:  Text segment: Strojové instrukce prováděné CPU Tento segment je označen jako read-only -- ochrana proti náhodnému přepisu  Segment inicializovaných dat: Často se jmenuje jen data segment a obsahuje přiřazené proměnné  Segment neinicializovaných dat: bss (block started by symbol) Jádro vyplní tento segment před spuštěním nulami Zde bude uloženo např. pole, deklarované, mimo jakoukoli funkci  Zásobník: Zde budou ukládány lokální proměnné spolu s návratovými adresami funkcí  Hromada: Dynamické přidělování paměti Historicky byla hromada (heap) umístěna mezi konec neinicializovaných dat a zásobník

Struktura paměti:

Systémové procesy Jak jsme si již řekli, po startu systém spouští procesy, které se starají o jeho řízení, těm se říká systémové Jejich kompletní seznam získáme příkazem ps –ax Nejzákladnější proces, který má PID 1 a jmenuje se INIT Tento proces je spuštěn při startu systému, je rodičem všech dalších procesů Všechny další procesy spouští buď sám init, nebo jeden z jeho potomků. Je jakýmsi řídícím procesem pro celý systém Používá konfigurační soubor /etc/inittab, kde je veškeré jeho nastavení Dále jsou zde služby, jako je třeba httpd démon apache web serveru, databázové démony nebo cron, který se stará o časované spouštění (plánovač)

Struktura procesu Proces má své PID (běh programu - execution thread), poté jsou zde data, která program používá, proměnné, otevřené soubory, adresy deskriptorů nebo ukazatelů atd Nakonec jsou zde knihovny, které jsou sdíleny. Takže více procesů může používat jen jednou nahrané knihovny, ale nemusí tomu být vždy Spuštěný proces má 4 GB paměťového prostoru, obvykle bývá nahrán od prvních 128 MB dále, zde má pocit, že je zcela osamocen Každý proces má svůj vlastní zásobník a svou vlastní sadu proměnných

Jádro systému Jádro systému (kernel) se zavádí při startu systému a zaručuje nejzákladnější operace Svůj návrh dědí po operačním systému Unix, který ve své době způsobil převrat tím, že jádro jasně oddělil od zbytku systému a vypustil z něj většinu zbytečných služeb  Jádro Linuxu zodpovídá za: Zprostředkování k přístupu k periferiím Správa paměti

Zprostředkování k přístupu k periferiím: Je jimi možné počítač zablokovat a nebo i zničit Navíc k jednomu zařízení většinou nemůže přistupovat více programů zároveň Je nutné, aby jádro procesy na hardware nepustilo a všechny přístupy dělalo za ně O jednotlivé zařízení se starají ovladače, které v původním Unixu byly napevno zakomponované do jádra

Správa paměti Jádro používá stránkování (umožňuje zobrazit virtuální paměťový prostor (tzv. virtuální paměť) do fyzického adresového prostoru operační paměti ) k vytvoření virtuální paměti Každý proces má svůj oddělený adresní prostor a tak si programy nevidí navzájem "do karet" a nemůžou se navzájem ohrozit Jádro dovoluje procesu jeho adresní prostor modifikovat. Umí "namapovat" soubor na danou pozici - v paměti je pak vidět obsah daného souboru, který jádro v případě potřeby nahraje, nebo obnoví na disku (pokud program paměť modifikoval). Sdílet určitou část paměti mezi procesy apod… Disková cache (vyrovnávací paměť), která se dynamicky mění podle velikosti volné paměti Zavádění programu "po kouskách" - při startu programu se jeho kód nenahraje celý do paměti. Nahraje se pouze jeho první stránka a program se spustí. Pokud potřebuje další stránky, tak se mu nahrají později. Toto zrychluje start programů a šetří paměť Zpožděné přidělování paměti - pokud program požádá o volnou paměť, jádro si to pouze zapamatuje a přidělí ji až v době, kdy ji program začne používat Zpožděné kopírování paměti - když se běžící proces rozdělí na dva, jeho paměť by se měla zkopírovat. To se ale nestane a kopie se vytváří se zpožděním až v situaci, když jeden z programu do ní začne zapisovat Mezi jeho přednosti patří

Vlákna Vlákno umožňuje více samostatným segmentům systému (procesům) sdílet proměnné a vůbec data v paměti Navenek se však jedná o více procesů a vypadají a chovají se jako procesy ve vztahu child/parent Jediným rozdílem je, že sdílí ony řečené proměnné a program má díky nim více vláken běhu aplikace (execution threads) Každé vlákno má vyhrazeno svůj vlastní zásobník, na kterém má uloženy lokální proměnné, parametry a návratové adresy aktivních funkcí. Každé vlákno může vyvolat kteroukoli funkci programu a používat kteroukoli globální proměnnou. Skupina vláken v jednom adresovém prostoru pak tvoří proces  Adresové prostory nezávislých procesů a vláken v jednom procesu

Signály Jsou velmi mocným nástrojem pro řízení procesů systému Určitě jste si už všimli "hlášky" při vypínání počítače: „INIT: Sending all processes the TERM signal INIT: Sending all processes the KILL signal“ Tento výpis znamená, že proces INIT zasílá všem svým child procesům TERM signál, poté chvíli počká a zašle jim signál KILL. TERM signál "požádá" aplikaci o její ukončení a dá jí čas, aby se ukončila správným způsobem Tento signál nezničí aplikace, které se "zasekly". Když čas vyprší, je zaslán signál KILL (ten nelze odchytit ani ignorovat) a aplikace je nadobro "zabita„ Signál je systémem generovaná událost, kterou používá na základě reakce na podmínku a dává tím procesu šanci provést odezvu Používají se při chybách v programech Vyvolává je shell nebo terminal driver nebo si je procesy posílají mezi sebou Signál můžeme naprogramovat (jeho zaslání), odchytit, reagovat na něj a některé můžeme ignorovat Signály začínají prefixem SIG (u výpisu výše je shellem odstraněn pro snažší čitelnost). Například signál SIGSEGV hlásí špatný přístup k segmentu paměti.

Signály 2 Základní signály jsou zhruba tyto:  SIGTERM…………………………žádost o ukončení procesu  SIGSEGV…………………………porušení segmentace paměti  SIGABORT………………………přerušení procesu  SIGHUP…………………………..odříznutí od terminálu (hangup)  SIGKILL…………………………."vražda"  SIGQUIT…………………………ukončení terminálové relace procesu  SIGGINT…………………………přerušení terminálu  SIGGILL………………………….neplatná instrukce  SIGCONT………………………..navrácení procesu ze stavu pozastavení  SIGSTOP…………………………pozastavení procesu (opak SIGCONT)  SIGINT……………………………ukončení procesu na popředí

Signály 3 Pokud chceme ukončit proces běžící na popředí, pošleme mu signál SIGINT, učiníme tak stiskem kláves [Ctrl+C] Ukončení procesu na pozadí provedeme zasláním signálu pomocí příkazu kill Pokud chceme procesu 458 poslat signál SIGKILL, uděláme to takto: kill -KILL 458 Můžeme si vybrat libovolný signál, avšak procesy, které jste nespustili vy, nemůžete ukončit, nepodaří se vám to (pokud nejste root) Ještě máme k dispozici alternativu, příkaz killall, který zasílá signál všem procesům, které vykonávají daný příkaz. Když chceme pozastavit všechny procesy libovolných jmen a PIDů, které provádí příkaz:  cat /dev/psaux > /dev/null & provedeme to takto:  killall -STOP cat

KONEC!!!