1/29 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Procesy 05.

Slides:



Advertisements
Podobné prezentace
Komunikace periférii.
Advertisements

Vytváření, použití dávkových souborů
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.
Základy informatiky operační systémy Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
7. přednáška konzistence dat (příklad) -multithreading (monoprocesor) -sdílení času -analýza časového kvanta -priorita -přepínání (procesů,
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í.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
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.
Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.
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,
Správa procesů.
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
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)
Operační systémy Přednášky pro předmět Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
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.
Pokročilé architektury počítačů (PAP_04.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava.
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.
UNIX Shell skripty Roman Danel VŠB TU Ostrava, Hornicko – geologická fakulta.
1. ELEKTRICKÝ SIGNÁL VSTUPUJE DO uPROCESORU 2.VYMAŽE DATA KTERÁ ZŮSTALA V REGISTRECH VNITŘNÍ PAMĚTI 3. NASTAVÍ REGISTR CPU – ČÍTAČ INSTRUKCÍ NA F000 ADRESA.
Správa procesů.
8. přednáška přepínání kontextu -plánování (pojmy, kritéria, prioritní fronty, vybrané typy) Studijní materiály najdete na adrese:
3. konzultace (5 hodin) Studijní materiály najdete na adrese:
13AMP 4. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Problém sdílených zdrojů Problém sdílených zdrojů Co je to kritická sekce Co.
Vnitřní (operační paměť)
A4B33OSS (J. Lažanský) verze: Podzim 2012 Procesy a vlákna 1 Obsah Téma 3 – Procesy a vlákna 1.Výpočetní procesy a jejich stavy 2.Stavový diagram procesů.
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
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.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Základy operačních systémů
PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ
1/37 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Plánování CPU 07.
1/32 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Plánování CPU 07.
Operační systémy LS 2014/ přednáška 16. března 2015.
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
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.
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.
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émy 2015/ přednáška 21. března 2016.
Vypracoval / Roman Málek
Zvídavé otázky 1. Prevence a detekce uváznutí
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é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
1. ročník oboru Mechanik opravář motorových vozidel
Téma 3 – Procesy a vlákna Obsah Výpočetní procesy a jejich stavy
PB 169 Počítačové sítě a operační systémy
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: 
UNIX 10. Procesy Obsah: algoritmus, program, proces, thread
3. konzultace (4 hodiny) 4. března 2016.
PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
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:
PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ
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ů.
Transkript prezentace:

1/29 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Procesy 05

2/29 Pro spuštěný program máme řadu pojmenování ●dávkové systémy: úlohy, dávky, jobs ●multiprogramové systémy: procesy (processes, tasks), vlákna (threads) Společné pojmenování pro spuštěný program je proces (někdy používáme synonymum task) Dále zavádíme pojem vlákno pro „dílčí“ proces v rámci „procesu“ Proces obsahuje ●čítač instrukcí ●zásobník ●datovou sekci ●program (instrukční sekce) CO JE TO PROCES PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

3/29 Hierarchie procesů ●rodič, potomek (proces vytvořený na žádost jiného procesu – rodiče) ●sourozenci (procesy vytvořené jedním rodičem) Procesy a mutiprogramování ●prokládáním běhů procesů maximalizujeme využití procesoru a minimalizujeme dobu odpovědi ●procesu jsou přidělovány zdroje systému ●bereme v úvahu priority a vzájemnou výlučnost operací ●musíme zabránit „uváznutí“ procesů (deadlock) PROCES V OS PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

4/29 Proces se může nacházet v jednom ze stavů: ●nový (new): právě vytvořený proces ●běžící (running): některý procesor právě vykonává instrukce procesu ●čekající (waiting): čeká na určitou událost ●připravený (ready): čeká na přidělení času procesoru ●ukončený (terminated): ukončil své provádění STAVY PROCESU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

5/29 STAVY PROCESU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ newterminated readyrunning waiting admitted interrupt exit I/O or event completion I/O or event wait scheduler dispatch

6/29 Process Control Block -- tabulka obsahující informace potřebné pro definici a správu procesu ●stav procesu (běžící, připravený, …) ●čítač instrukcí ●registry procesoru ●informace potřebné pro správu paměti ●informace potřebné pro správu I/O ●účtovací informace INFORMACE OS O PROCESU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ pointer process state process number process counter registers memory limits list of open files

7/29 PŘEPNUTÍ PROCESU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ save state into PCB 0 operating system reload state from PCB 1 save state into PCB 1 reload state from PCB 0 process P 0 process P 1 interrupt or system call idle executing interrupt or system call idle executing

8/29 Vyžádá se služba, akceptuje se některé asynchronní přerušení, obslouží se a nově se vybere jako běžící proces Když OS přepojuje CPU z procesu X na proces Y, musí: ●uchovat (uložit v PCB procesu X) stav původně běžícího procesu ●zavést stav nově běžícího procesu (z PCB procesu Y) Přepnutí kontextu představuje režijní ztrátu (zátěž) ●během přepínání systém nedělá nic efektivního Doba přepnutí závisí na konkrétní HW platformě ●Počet registrů procesoru, speciální instrukce pro uložení/načtení všech registrů procesoru apod. Při přerušení musí procesor ●uchovat čítač instrukcí ●zavést do čítače instrukcí hodnotou adresy vstupního bodu ovladače přerušení z vektoru přerušení PŘEPNUTÍ KONTEXTU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

9/29 Fronta úloha ●seznam všech procesů v systému Fronta připravených procesů ●seznam procesů uložených v hlavní paměti a připravených k běhu Fronta na zařízení ●seznam procesů čekajících na I/O operaci Fronta odložených procesů ●seznam procesů čekajících na přidělení místa v hlavní paměti Fronta na semafor ●seznam procesů čekajících na synchronizační událost … FRONTY PLÁNOVÁNÍ PROCESŮ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

10/29 PŘÍKLAD: FRONTY PROCESŮ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ head tail head tail head tail head tail head tail ready queue terminal unit 0 disk unit 0 mag tape unit 1 mag tape unit 1 registers PCB 7 registers PCB 2 PCB 3 PCB 14 PCB 6 PCB 5 queue header

11/29 Obecně nemusím mít všechny úlohy, které chci spustit, v operační paměti Fronta všech úloh může být značně dlouhá a plánovač musí rozhodnout, které úlohy zavést do paměti a spustit Toto je úkol dlouhodobého (strategického) plánovače ●vybírá který proces lze zařadit mezi připravené procesy ●plánovač je spouštěn je relativně málo často – typicky při ukončení jednoho procesu rozhodne, kterou úlohu dále vybrat k zavedení do paměti a spuštění ●nemusí být super rychlý ●určuje stupeň multiprogramování STRATEGICKÝ PLÁNOVAČ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

12/29 Přiděluje procesor připraveným procesům Je spouštěn často (např. každých 10ms) Proto musí být rychlý KRÁTKODOBÝ PLÁNOVAČ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ready queue I/O queueI/O request time slice expired fork a child wait for a interrupt child executes intercept occurs I/O CPU

13/29 Každý proces musíme jednou zavést do RAM ●alespoň částečně (část může zůstat na disku a dohrána on-demand – viz některé optimalizace) Příliš mnoho procesů v RAM však snižuje výkonnost i při využití virtuální paměti OS musí provádění některých procesů odložit -- „vrátit“ na disk Dva nové stavy ●odložený čekající ●odložený připravený ODKLÁDÁNÍ PROCESŮ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

14/29 Střednědobý (taktický) plánovač ●vybírá který proces lze zařadit mezi odložené procesy ●vybírá který odložený proces lze zařadit mezi připravené procesy Náleží částečně i do správy operační paměti ●kapacita FAP je omezená a odložené procesy uvolňují paměť STŘEDNĚDOBÝ PLÁNOVAČ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ CPU ready queue I/O I/O waiting queues partialy executed swapped-out process swap inswap out end

15/29 Rodič vytváří potomky (další procesy) Potomci mohou vytvářet další potomky … Vzniká strom procesů Sdílení zdrojů – varianty při vytváření potomků ●rodič a potomek sdílejí zdroje původně vlastněné rodičem ●potomek sdílí rodičem vyčleněnou podmnožinu zdrojů s rodičem ●potomek a rodič jsou plně samostatné procesy, nesdílí žádný zdroj Běh ●rodič a potomek mohou běžet souběžně ●rodič čeká na ukončení potomka VYTVOŘENÍ PROCESU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

16/29 Proces provede poslední příkaz a sám požádá OS o ukončení ●výstupní data procesu se předají rodiči (pokud o to má zájem – např. čeká na ukončení potomka voláním wait) ●zdroje končícího procesu se uvolňují operačním systémem O ukončení procesu žádá jeho rodič (nebo jiný proces s dostatečnými právy nebo OS), protože např.: ●potomek překročil stanovenou kvótu přidělených zdrojů ●úkol přidělený potomkovi rodič již dále nepotřebuje ●rodič končí svoji existenci a nebylo povoleno, aby potomek přežil svého rodiče ●může docházet ke kaskádnímu ukončování (ukončí se celá větev stromu procesů) UKONČENÍ PROCESU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

17/29 Nezávislé procesy ●nemohou se vzájemně ovlivňovat Kooperující procesy ●mohou ovlivňovat běh jiných procesů nebo jiné procesy mohou ovlivňovat jejich běh Přínosy kooperace procesů ●sdílení informací ●urychlení výpočtů ●modularita ●pohodlí při programování Příklady typových úloh kooperace ●producent – konzument ●klient – server KOOPERUJÍCÍ PROCESY PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

18/29 Neumožňuje spouštět procesy paralelně (single- taskingový systém) Služby OS ●spusť proces a čekej na ukončení potomka (služba 4bh int21h) ●ukonči proces (služba 00 int21h nebo služba 4ch int21h nebo int20h) ●zjisti návratovou hodnotu ukončeného procesu (služba 4dh int21h) ●ukonči proces, ale neuvolňuj paměť – (terminate, but stay resident) – TSR (služba 31h int21h nebo int 27h) PŘÍKLAD: MS-DOS PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

19/29 Popisovač procesu (Program Segment Prefix) PŘÍKLAD: MS-DOS (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ OffsetSizeContents +02EXE programs may JMP or RET here (PSP:0) to exit +22top of available system memory in paragraphs +41(reserved) +55FAR CALL to DOS function dispatcher +6(2)bytes available in Program Segment (for COM file only) +0aH4Terminate address. See INT 22H +0eH4Ctrl-Break handler address INT 23H +12H4Critical Error handler addr INT 24H +16H16HDOS reserved area +2cH2Segment address of DOS environment +2eH2eHDOS reserved area +5cH10Hsetup as an FCB for 1st cmd parameter +6cH14Hsetup as an FCB for 2nd cmd parameter +80H1count of characters in UPA at 81H also offset of default DTA +81H7fHcharacters from DOS command line (except any redirection directives) 100H Program Segment Prefix size

20/29 OS s preemptivním multitaskingem Služby OS ●fork – vytvoří nový proces jako kopii rodiče ●execve – nahradí současný proces spuštěním jiného programu ●exit (resp. _exit) – ukončí proces ●wait, waitpid – čeká na ukončení potomka PŘÍKLAD: UNIX PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

21/29 Spuštění procesu a vyčkání na jeho ukončení pid=fork(); if(pid<0) { perror(“fork failed”); exit(1); } else if(pid==0) { /* child */ execlp(“/bin/ls”,”ls”,NULL); } else { /* parent */ wait(NULL); printf(“child completed”); exit(0); } PŘÍKLAD: UNIX (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

22/29 volání fork() implementováno jako copy-on-write (tj. dokud paměť není měněna je sdílena a až při pokusu o modifikaci je vytvořena kopie) vfork – upravené fork, které nekopíruje stránky paměti rodičovského procesu ●rychlejší ●vhodné pro okamžité spuštění execve clone – upravené fork, které umožňuje sdílet některé zdroje (například paměť, deskriptory souborů, ovladače signálů) mezi rodičovským a nově vytvořeným procesem. Informace o procesu jsou uloženy ve struktuře task_struct (viz usr/include/sched.h) PŘÍKLAD: LINUX PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

23/29 PŘÍKLAD: LINUX (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ zombie sleeping wakeup ready to run fork () new process running in kernel mode sleep interrupt & return sys call or interrupt & return running in user mode context switch in/out

24/29 Služby OS ●CreateProcess – vytvoří nový proces (spustí specifikovaný program) ●OpenProcess – pro získání přístupu k existujícímu procesu ●ExitProcess – ukončí tento proces ●TerminateProcess – ukonči nějaký (např. synovský) proces ●GetExitCodeProcess – zjisti návratovou hodnotu ukončeného procesu (nebo fakt, že proces ještě neskončil) PŘÍKLAD: WIN32 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

25/29 STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); if(!CreateProcess(L"c:\\windows\\system32\\sol.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { printf( "CreateProcess failed (%d)\n", GetLastError() ); getch(); return; } WaitForSingleObject( pi.hProcess, INFINITE ); CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); PŘÍKLAD: WIN32 (CreateProcess) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

26/29 DWORD aProcesses[1024], cbNeeded, cProcesses; if ( EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) { cProcesses = cbNeeded / sizeof(DWORD); for (int i = 0; i < cProcesses; i++ ) if( aProcesses[i] != 0 ) VypisProces( aProcesses[i] ); } PŘÍKLAD: WIN32 (EnumProcesses) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

27/29 PŘÍKLAD: WIN32 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Initialized Waiting Ready Terminated Running Transition Standby Context-switch to it and start ist execution (dispatching) Execution completes ReinitialisePlace in ready queue Preempt Select for execution Create and initialize thread object Thread waits on an object handle Kernel stack outswapped Preempt (or time quantum ends) Wait is complete Kernel stack inswapped

28/29 Values for the Thread Wait Reason counter 0 Waiting for a component of the Windows NT Executive 1 Waiting for a page to be freed 2 Waiting for a page to be mapped or copied 3 Waiting for space to be allocated in the page or nonpaged pool 4 Waiting for an Execution Delay to be resolved 5 Suspended 6 Waiting for a user request 7 Waiting for a component of the Windows NT Executive 8 Waiting for a page to be freed 9 Waiting for a page to be mapped or copied 10 Waiting for space to be allocated in the page or nonpaged pool 11 Waiting for Execution Delay to be resolved 12 Suspended 13 Waiting for a user request 14 Waiting for an event pair high 15 Waiting for an event pair low 16 Waiting for an LPC Receive notice 17 Waiting for an LPC Reply notice 18 Waiting for virtual memory to be allocated 19 Waiting for a page to be written to disk 20+ Reserved PŘÍKLAD: WIN32 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

29/29 Výukovou pomůcku zpracovalo Servisní středisko pro e-learning na MU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ