PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

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.
M. Štulc, J. Šváb, J. Kolena SIMULACE OPERAČNÍHO SYSTÉMU
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.
7. přednáška konzistence dat (příklad) -multithreading (monoprocesor) -sdílení času -analýza časového kvanta -priorita -přepínání (procesů,
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.
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.
1/29 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Procesy 05.
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ů.
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.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
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.
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Í
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ů
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.
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.
Operační systémy 2015/ přednáška 21. března 2016.
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: 
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.
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
Počítačová bezpečnost 2. Bezpečnost v OS
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
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.
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:
Přednášky z distribuovaných systémů
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:

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

CO JE TO PROCES 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) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PROCES V OS Hierarchie procesů Procesy a mutiprogramování 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) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

STAVY PROCESU 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í PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

I/O or event completion STAVY PROCESU new admitted exit terminated interrupt ready running scheduler dispatch I/O or event wait I/O or event completion waiting PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

INFORMACE OS O PROCESU 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 process state pointer process number process counter registers memory limits list of open files PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

interrupt or system call interrupt or system call PŘEPNUTÍ PROCESU process P0 operating system process P1 interrupt or system call executing save state into PCB0 idle reload state from PCB1 idle executing interrupt or system call save state into PCB1 idle executing reload state from PCB0 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘEPNUTÍ KONTEXTU Při přerušení musí procesor 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í PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

FRONTY PLÁNOVÁNÍ PROCESŮ 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 … PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: FRONTY PROCESŮ queue header registers PCB7 registers PCB2 ready head tail queue mag head tail tape unit 1 mag head tail tape PCB3 PCB14 PCB6 unit 1 disk head tail unit 0 PCB5 terminal head tail unit 0 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

STRATEGICKÝ PLÁNOVAČ 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í PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

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

ODKLÁDÁNÍ PROCESŮ 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ý PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

STŘEDNĚDOBÝ PLÁNOVAČ 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ěť swap in swap out partialy executed swapped-out process ready queue CPU end I/O waiting queues I/O PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

VYTVOŘENÍ PROCESU 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 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

UKONČENÍ PROCESU 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ů) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

KOOPERUJÍCÍ PROCESY Nezávislé procesy nemohou se vzájemně ovlivňovat 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 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: MS-DOS 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) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: MS-DOS (2) Popisovač procesu (Program Segment Prefix) Offset Size Contents +0 2 EXE programs may JMP or RET here (PSP:0) to exit +2 top of available system memory in paragraphs +4 1 (reserved) +5 5 FAR CALL to DOS function dispatcher +6 (2) bytes available in Program Segment (for COM file only) +0aH 4 Terminate address. See INT 22H +0eH Ctrl-Break handler address INT 23H +12H Critical Error handler addr INT 24H +16H 16H DOS reserved area +2cH Segment address of DOS environment +2eH 2eH +5cH 10H setup as an FCB for 1st cmd parameter +6cH 14H setup as an FCB for 2nd cmd parameter +80H count of characters in UPA at 81H also offset of default DTA +81H 7fH characters from DOS command line (except any redirection directives) 100H   Program Segment Prefix size PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: UNIX 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 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: UNIX (2) 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); } PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: LINUX 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 include/linux/sched.h) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

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

PŘÍKLAD: WIN32 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) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: WIN32 (CreateProcess) 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 ); PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PŘÍKLAD: WIN32 (EnumProcesses) 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] ); } PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

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

PŘÍKLAD: WIN32 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 PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ