Principy počítačů a operačních systémů



Podobné dokumenty
ÚVOD DO OPERAČNÍCH SYSTÉMŮ

Operační systém teoreticky

Přednáška 2. Procesy a vlákna. Časově závislé chyby. Kritické sekce.

Signály Mgr. Josef Horálek

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

OS Plánování procesů

02. Koncepce OS Procesy, vlákna. ZOS, L. Pešička

INTEGROVANÁ STŘEDNÍ ŠKOLA TECHNICKÁ BENEŠOV Černoleská 1997, Benešov. Tematický okruh. Ročník 1. Inessa Skleničková. Datum výroby 21.8.

Principy překladačů. Architektury procesorů. Jakub Yaghob

Operační systémy. Přednáška 3: Plánování procesů a vláken

Vývoj počítačů. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

Podpora personálních procesů v HR Vema

Přidělování CPU Mgr. Josef Horálek

Přednáška. Implementace procesů/vláken. Plánování vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Management procesu I Mgr. Josef Horálek

Popis a funkce klávesnice Gama originální anglický manuál je nedílnou součástí tohoto českého překladu

Virtuální přístroje. Použití grafického programování v LabVIEW. Ing. Pavel Mlejnek

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

a co je operační systém?

GIS HZS ČR pro ORP a přednostní připojení k veřejné komunikační síti

Operační systémy. Přednáška 2: Procesy a vlákna

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

PŘÍLOHA č. 2B PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU

ISÚI Informační systém územní identifikace Proč? Co? Kde? Kdo? Jak? Kdy?

Windows 10 (6. třída)

Stavba operačního systému

Historie výpočetní techniky Vývoj počítačů 4. generace. 4. generace mikroprocesor

Úložiště elektronických dokumentů GORDIC - WSDMS

SIS INSTALAČNÍ PŘÍRUČKA (SITE INFORMATION SYSTEM) Datum vytvoření: Datum aktualizace: Verze: v 1.3 Reference:

Technické aspekty EET

MAGIS MES Monitoring výroby on-line. Sledování výroby v reálném čase v režimu Start - Stop

Operační systémy. Tomáš Hudec.

Stručný uživatelský manuál (průvodce instalací) MSI DIGIVOX A/D II

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: ový klient Anotace:

Umělá inteligence. Příklady využití umělé inteligence : I. konstrukce adaptivních systémů pro řízení technologických procesů

DÁLKOVÁ KONFIGURACE ZAŘÍZENÍ ELDES POMOCÍ SW CONFIGURATION TOOL

Principy operačních systémů. Lekce 7: Souborový systém

BlueJ a základy OOP. Programování II 1. cvičení Alena Buchalcevová

Geodézie a kartografie 3 roky

Podávání žádostí IS CEDR

Operační systémy. Přednáška 8: Správa paměti II

Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27

Architektura AMD K10. Kozelský Martin, koz230. Datum:

OPERAČNÍ SYSTÉMY VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ PŘIDĚLOVÁNÍ PROCESORU. doc. Dr. Ing. Oldřich Kodym.

Architektura počítače

Procesy a vlákna (Processes and Threads)

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Aplikace DigiArchiv z pohledu administrátora a operátora. Systém, metody, postupy

16. února 2015, Brno Připravil: David Procházka

Čítače e a časovače. v MCU. Čítače a časovače MCU. Obsah

Von Neumannovo schéma

APSLAN. Komunikační převodník APS mini Plus <-> Ethernet nebo WIEGAND -> Ethernet. Uživatelský manuál

Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 11. březen, 2011

Internetová agentura. Předimplementační analýza webu

DS SolidWorks PDM Workgroup

LabView - řízení aplikací s FPGA. Ing. Martin Bušek, Ph.D.

PROGRAMOVÁNÍ SVĚTELNÝCH OZDOB

Operační program Rybářství

Architektura počítače Základní bloky Provádění instrukcí

Vítejte na dnešním semináři. Lektor: Ing. Ludmila Brestičová

Klientský portál leasing24.cz. KLIENTSKÝ PORTÁL 24 NÁVOD NA PŘIHLÁŠENÍ A REGISTRACI UŽIVATELE Leasing24.cz. Stránka 1 z 15

Kontrolní seznam před instalací

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49


Připravte si prosím tyto produkty Instalace hardwaru Výchozí nastavení z výroby

Google Apps. pošta 2. verze 2012

Ministerstvo pro místní rozvoj. podprogram

Zahajovací konference

Struktura počítačů základní pojmy

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

Téma 10: Podnikový zisk a dividendová politika

Lokální a globální extrémy funkcí jedné reálné proměnné

Mapa nabídek Nástroje

František Hudek. březen ročník

Principy operačních systémů. Lekce 4: Správa procesů

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f.

JEDNACÍ ŘÁD FORMÁTOVÉHO VÝBORU NÁRODNÍ DIGITÁLNÍ KNIHOVNY

Nerovnice s absolutní hodnotou

CERTIFIKOVANÉ TESTOVÁNÍ (CT) Výběrové šetření výsledků žáků 2014

Principy operačních systémů. Lekce 6: Synchronizace procesů

Sekvenční logické obvody

Zkušenosti z implementace IS PROXIO - Město Žďár nad Sázavou Ing. Libor Vostrejš vedoucí odboru IT, Ing. Jiří Berkovec MARBES CONSULTING s.r.o.

Art marketing Činoherního klubu

KIV/ZI Základy informatiky. MS Excel maticové funkce a souhrny

Uplatnění nových informačních technologií ve výuce a na zdravotnickém pracovišti. Marie Marková

INFORMACE K POKUSNÉMU OVĚŘOVÁNÍ ORGANIZACE PŘIJÍMACÍHO ŘÍZENÍ SŠ S VYUŽITÍM JEDNOTNÝCH TESTŮ

Virtualizace. Lukáš Krahulec, KRA556

Adresa příslušného úřadu

Principy operačních systémů. Lekce 2: Správa paměti

Pravidla pro publicitu v rámci Operačního programu Doprava

Systém zvukové signalizace a spouštění motoru na základě stavu světla

ZAVÁDĚNÍ ECVET V ČESKÉ REPUBLICE

Android OpenGL. Animace a ovládání pomocí dotykové obrazovky

Založte si účet na Atollon.com

Procesor z pohledu programátora

Struktura a architektura počítačů (BI-SAP) 12

Metodika - Postupy optimálního využití moderních komunikačních kanálů

Projekt INTERPI. Archivy, knihovny, muzea v digitálním světě Your contact information

Poznámky k verzi Remote Support Platform 3.0

Transkript:

Principy počítačů a operačních systémů Operační systémy Procesy a vlákna, plánování Zimní semestr 2011/2012

Procesy a vlákna Jak mohou aplikace (a OS) sdílet procesor(y)? Aplikace si myslí, že systém má neomezený počet procesorů...

Procesy a vlákna Proces = abstrakce počítače instance běžící aplikace (posloupnost instrukcí) jedna aplikace může běžet ve více instancích představuje výpočetní prostředí z pohledu aplikace v podstatě poskytuje aplikaci virtuální stroj existuje pouze po dobu běhu aplikace Vlákno je součástí procesu představuje konkrétní běžící výpočet aktivitu každý proces musí mít alespoň jedno vlákno proces může mít samozřejmě více vláken 3/24 - Procesy

Proces poskytuje kontext Proces jako abstrakce počítače definován stavem procesoru (hodnoty registrů) adresovým prostorem (obsah paměti) prostředím (struktury operačního systému) 4/24 - Procesy

Registry CPU obsahují současný stav (výpočtu) Stav CPU určen obsahem registrů Processor Status Word (PSW) režim procesoru, příznaky výsledku poslední aritmetické operace (zero, negative, overflow, carry), zakázaná/povolená přerušení Program Counter (PC) / Instruction Pointer (IP) adresa následující instrukce Stack Pointer (SP) adresa aktuálního stack frame, obsahuje návratovou adresu a lokální proměnné funkce General Purpose Registers obsah OS nezajímá, to má (měl) na starosti překladač aplikace 5/24 - Procesy

Paměť obsahuje (dosavadní) výsledky výpočtu Oblasti v adresovém prostoru procesu text data heap kód aplikace, typicky pouze ke čtení, může být sdílen více procesy (tj. více instancemi stejné aplikace) statická (definovaná při překladu) data aplikace, typicky konstanty a globální proměnné natahovací oblast, ze které si může proces ukusovat paměť za běhu podle potřeby (pomocí operátoru new, resp. funkce malloc) stack lokální úložiště pro registry CPU a lokální proměnné funkcí 6/24 - Procesy

Prostředí obsahuje vztahy k jiným entitám Proces neexistuje ve vakuu, je vázán na... uživatelský terminál textové/grafické rozhraní pro uživatele otevřené soubory používané pro vstup a výstup komunikační kanály a sokety spojení mezi procesy, potenciálně na různých počítačích Vazby zachycuje OS ve svých strukturách... tabulka otevřených souborů/soketů 7/24 - Procesy

8/24 - Procesy Veškerá data o procesu udržuje OS Process Control Block datová struktura OS popisující proces z pohledu OS reprezentuje proces Paměť Procesor pid stav priorita uživatel paměť soubory registry CPU kernel PCB text data heap stack user PSW PC/IP SP General Purpose Registers

Základní stavy procesu Přechody mezi stavy v důsledku událostí v systému ukončen Běžící čekej na událost naplánován běží moc dlouho Čeká/spí událost nastala Připraven vytvořen 9/24 - Procesy

Změna stavu jako reakce na události Události v systému synchronní vznikají v důsledku běhu procesu traps, speciální instrukce (např. pro volání OS) exceptions, nesprávné chování procesu asynchronní vznikají vně systému žádost zařízení o přerušení Obsluha přerušení procesor předá řízení OS, uloží se kontext CPU analyzuje se příčina přerušení, vyvolá se obsluha obsluha přerušení, obnovení kontextu CPU návrat do přerušené aplikace 10/24 - Procesy

Vlákna Vícevláknový proces více současně vykonávaných výpočtů (aktivit) každý bězící výpočet definován stavem CPU, tj. registry PSW, PC/IP, SP, a GPRs abstrakce stroje s více procesory procesory mohou (nemusí) běžet současně concurrent vs. parallel všechy procesory (vlákna) sdílí paměť a prostředky Vlákna procesu sdílí kontext paměti, kontext prostředí Vlákna nesdílí kontext CPU, zásobník (historie běhu výpočtu) 11/24 - Procesy

12/24 - Procesy PCB pro vícevláknové procesy Paměť Procesor pid uživatel paměť vlákna soubory PCB kernel stav stav priorita stav priorita zásobník priorita zásobník registry zásobník registry CPU registry CPU CPU text data heap stack stack stack user PSW PC/IP SP General Purpose Registers

K čemu se používají vlákna? Strukturování programu samostatná vlákna pro zpracování požadavků na serveru vlákno se nemusí starat o další požadavky, které přicházejí zatímco pracuje Implementace asynchronních I/O operací překrytí výpočetních operací s I/O operacemi pomalé I/O operace vykonává jedno vlákno (při čtení/zápisu se zablokuje), zatímco jiné vlákno počítá K využití více CPU je nutná implementace v OS copak jdou vlákna implementovat i jinak? 13/24 - Procesy

Operace s procesy a vlákny Vytvoření nového (fork/spawn/create) nový proces má typicky pouze 1 (hlavní) vlákno nové vlákno lze vytvořit jen v rámci procesu Ukončení existujícího (exit) návrat z hlavní funkce (main), nebo volání exit Pozastavení dočasné (sleep), čekání na událost (wait) Zaslání signálu/zprávy obdoba přerušení u procesoru, obsluhuje běhové prostředí, typicky ukončí proces (možno předefinovat) 14/24 - Procesy

Multiprogramming... aneb když je v systému více procesů...

K čemu se hodí více procesů? Zlepšení odezvy systému dlouhé odezvy při dávkovém zpracování úloh při sdílení procesoru by kratší úlohy byly hotovy dříve Zlepšení využití prostředků aplikace typicky něco počítá, nebo čeká na data doba čekání na data z disku v řádu ms během čekání mohou jiné aplikace něco počítat zlepšuje odezvu jiný proces může postupovat vpřed Současný běh více procesů přepínání mezi více aplikacemi, spojování procesů pro práci na stejném problému,... 16/24 - Procesy

Plánování procesů a vláken

Plánování procesů a vláken OS musí rozhodnout, který proces (vlákno) poběží rozhodnutí typicky optimalizuje nějakou metriku Typické metriky doba odezvy (response time, turnaround) do ukončení procesu, do první odezvy,... propustnost (throughput) počet dokončených úloh za jednotku času využití procesoru (utilization) spravedlnost (fairness) 18/24 - Procesy

Off-line plánování Předpoklady všechny procesy jsou k dispozici od začátku a žádné již nepřibydou o všech procesech je známo jak dlouho poběží Výsledky Problém dávkové zpracování s ohledem na cílové metriky běh procesů není nutné přerušovat, plán je optimální předpoklady jsou málo realistické poskytují teoretické meze, pokud bychom měli požadované informace 19/24 - Procesy

Základní off-line algoritmy FCFS First Come First Served základní algoritmus dávkového zpracování procesy plánovány v pořadí, v jakém přicházejí procesy běží dokud neskončí Připravené procesy Dokončeno C B A CPU SJF Shortest Job First kratší úlohy plánovány přednostně minimalizuje průměrnou dobu odezvy 20/24 - Procesy

On-line plánování Předpoklady procesy se objevují libovolně a neočekávaně doba běhu procesů je neznámá Kritéria plánování vázanost na CPU nebo I/O, interaktivní/dávkový proces chování procesu v minulosti, výpadky stránek, priorita Preemptivní plánování potřebuje podporu HW (časovač) možnost měnit plán na základě nových informací context switch přepnutí na jiný proces / vlákno 21/24 - Procesy

Round robin plánování Sdílení procesoru časové kvantum (time slice) preemptivní plánování, fairness Připravené procesy A C B A CPU Dokončeno Preempce 22/24 - Procesy

Prioritní plánování s více frontami Reaguje na chování úloh rozlišuje interaktivní a dávkové úlohy priorita úlohy (určuje frontu a časové kvantum Q i ) nové úlohy fronty q 1 CPU Q 1 q 2 Q 2 dokončené úlohy q n Q n 23/24 - Procesy

Speciální plánovače... pro více procesorů každý procesor má vlastní ready queue vyvažování zátěže, zohlednění afinity... pro real-time systémy aplikace řízené událostmi procesy ~ obsluha událostí, příjem a zpracování dat, generování výstupu běh omezen reálným časem dokončení deadline hard real-time, soft real-time často off-line plánování 24/24 - Procesy