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



Podobné dokumenty
Operační systém teoreticky

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

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

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

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

Signály Mgr. Josef Horálek

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

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.

Sběrnicová struktura PC Interní počítačové paměti PC

a co je operační systém?

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

Management procesu I Mgr. Josef Horálek

Aktualizace mapových podkladů v zařízení Garmin

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

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

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

JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY

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

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

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

imedicus - internetové objednávání

Mobilní aplikace pro ios

Nerovnice s absolutní hodnotou

09. Memory management. ZOS 2006, L.Pešička

Sekvenční logické obvody

AVG Instalace DataCenter na databázi Firebird

Novinky v Maple T.A. 10

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

Programování v jazyce C. Proces celkového sestavení programu ze zdrojového kódu, vývojové nástroje Linuxu

Obsah. Úvod 13 Komu je kniha určena 13 Konvence použité v knize 14 Zpětná vazba od čtenářů 14 Errata 15

DS SolidWorks PDM Workgroup

Téma 2 Architektury OS a jejich služby

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

českém Úvod Obsah balení LC USB adaptér Sweex pro bezdrátovou síť LAN

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

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

Návod na připojení do WiFi sítě eduroam Microsoft Windows XP

Operační systémy (OS)

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

Google Apps. pošta 2. verze 2012

Procesy a vlákna (Processes and Threads)

Stavba operačního systému

Návod na připojení k ové schránce Microsoft Windows Live Mail

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

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

Česky. Instalace hardwaru 1. Stisknutím tlačítka otevřete horní kryt a vložte do myši dvě baterie AA.

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

Identifikátor materiálu: ICT-1-06

ZOS OPAKOVÁNÍ. L. Pešička

Ministerstvo pro místní rozvoj. podprogram

Přístupový systém VX800N. Vid

Sada 2 Microsoft Word 2007

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

Windows 10 (6. třída)

Postup práce s elektronickým podpisem

Principy operačních systémů. Lekce 3: Virtualizace paměti

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou

Implementační rozdíly ve vývoji IS při použití bezschémové a relační databáze

PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK

Mapa nabídek Nástroje

Kalendář je nástroj, který vám pomůže zorganizovat si pracovní čas. Zaznamenáváme do něj události jako schůzky, termíny odevzdání práce a podobně.

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

Windows 8 - základy práce. Obsah: Úvodní obrazovka. Poslední aktualizace článku: 03/04/2015

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

Computer Setup Uživatelská příručka

1. Programování, typy programovacích jazyků, historie.

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Identifikátor materiálu: ICT-1-12

Stručná instalační příručka SUSE Linux Enterprise Server 11 SP1

SWI120 ZS 2010/ hookey.com/digital/

Každý jednotlivý záznam datového souboru (tzn. řádek) musí být ukončen koncovým znakem záznamu CR + LF.


Příloha č. 1 Vzor smlouvy o založení svěřenského fondu a statutu svěřenského fondu

Post-Processingové zpracování V módu post-processingu je možné s tímto přístrojem docílit až centimetrovou přesnost z běžné 0,5m.

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

(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.

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Změny v právních předpisech s dopady na RÚIAN. Marika Kopkášová

Doporučené nastavení prohlížeče MS Internet Explorer 7 a vyšší pro ČSOB InternetBanking 24 a ČSOB BusinessBanking 24 s využitím čipové karty

PAVIRO Zesilovač PVA-2P500

Samsung Universal Print Driver Uživatelská příručka

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:

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

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Rychlý návod na použití

Základní registry a RÚIAN. Jiří Formánek

Novinky v programu Účtárna 2.09

Poznámky k verzi Remote Support Platform 3.0

Nástroj Setup. Uživatelská příručka

František Hudek. květen ročník

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Studijní informační systém. Nápověda pro vyučující 2 Práce s rozvrhem a předměty

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

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

Převodníky AD a DA. AD a DA. Převodníky AD a DA. Základní charakteristika

Návod pro Windows XP

Poznámky pro uživatele bezdrátové sítě LAN

Obchodní řetězec Dokumentace k návrhu databázového systému

Reg. č. projektu: CZ 1.04/ /A Pracovní sešit

Rozdělení operačních systémů

Transkript:

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

Koncepce OS Základní abstrakce procesy soubory uživatelská rozhraní

Procesy Proces instance běžícího programu Adresní prostor procesu MMU zajištuje soukromí kód spustitelného programu, data, zásobník S procesem sdruženy registry a další info potřebné k běhu procesu = stavové informace registry čítač instrukcí PC, ukazatel zásobníku SP, univerzální registry

Základní služby OS pro práci s procesy Vytvoření nového procesu fork v UNIXu, CreateProcess ve Win32 Ukončení procesu exit v UNIXu, ExitProcess ve Win32 Čekání na dokončení potomka wait (waitpid) v UNIXu, WaitForSingleObject ve Win32

Další služby - procesy Alokace a uvolnění paměti procesu Komunikace mezi procesy (IPC) Identifikace ve víceuživatel. systémech identifikátor uživatele (UID) skupina uživatele (GID) proces běží s UID toho, kdo ho spustil v UNIXu UID, GID celáčísla Problém uvíznutí procesu

Soubory Zakrytí podrobností o discích a I/O zařízení Poskytnutí abstrakce soubor Systémová volání vytvoření, zrušení, čtení, zápis Otevření a uzavření souboru open, close Sekvenční nebo náhodný přístup k datům Logické sdružování souborů do adresářů Hierarchie adresářů stromová struktura

Soubory II. Ochrana souborů, adresářů přístupovými právy kontrola při otevření souboru pokud není přístup chyba Připojitelnost souborových systémů Windows disk určený prefixem C:, D: Unix kamkoliv v adresářovém stromu

Uživatelské rozhraní řádková CLI (Command Line Interface) grafická uživ. rozhraní (GUI) původně UI součást jádra v moderních OS jedním z programů, možnost náhrady za jiné

UI obrázky UI jako součást jádra UI v uživ. režimu

Uživatelské rozhraní - příklady GUI Linux systém XWindow (zobrazování grafiky) a grafické prostředí (správci oken,...) programy v uživatelském režimu Windows NT,2000,XP grafická část v jádře logická část (v uživatelském režimu) výkon vs. stabilita

Proces jako abstrakce Běžící SW organizován jako množina sekvenčních procesů Proces běžící program včetně obsahu čítače instrukcí, registrů, proměnných; běží ve vlastní paměti Koncepčně každý proces vlastní virtuální CPU Reálný procesor přepíná mezi procesy (multiprogramování) Představa množiny procesů běžících (pseudo)paralelně

Ukázka 4 procesy, každý má vlastní bod běhu (čítač instrukcí) pseudoparalelní běh x paralelní

Pseudoparalelní běh Pseudoparalelní běh v jednu chvíli aktivní pouze jeden proces Po určité době pozastaven a spuštěn další Po určité době všechny procesy vykonají část své činnosti

Pseudoparalelní běh

Rychlost procesů Rychlost běhu procesu není konstantní. Obvykle není ani reprodukovatelná. Procesy nesmějí mít vestavěné předpoklady o časování. Např. doba trvání I/O různá. Procesy neběží stejně rychle.

Stavy procesu Procesy často potřebují komunikovat s ostatními procesy: ls l more Příkaz ls vypíše adresář More zobrazí obrazovku a čeká na uživ. More je připraven běžet, ale nemá žádný vstup zablokuje se dokud vstup nedostane

Kdy proces neběží Blokování procesu proces nemůže pokračovat, protože čeká na zdroj (vstup, zařízení, paměť), který není dostupný proces nemůže logicky pokračovat Proces může být připraven pokračovat, ale CPU vykonává jiný proces musí počkat, až bude CPU volné

Základní stavy procesu Běžící (running) skutečně využívá CPU, vykonává instrukce Připraven (ready, runnable) dočasně pozastaven, aby mohl jiný proces pokračovat Blokován (blocked, waiting) neschopný běhu, dokud nenastane externí událost

Základní stavy procesu

Přechody stavů procesu Plánovač vybere tento proces Proces je pozastaven, plánovač vybere jiný proces Proces se zablokuje, protože čeká na událost (zdroj disk, čtení z klávesnice) Nastala očekávaná událost, např. zdroj se stal dostupný

Stavy procesů Jádro OS obsahuje plánovač Plánovač určuje, který proces bude běžet Nad OS řada procesů, střídají se o CPU Stav procesu pozastavený V některých systémech může být proces pozastaven nebo aktivován V diagramu přibudou dva nové stavy

Stavy procesů

PCB (Process Control Block) OS udržuje tabulku nazývanou tabulka procesů Každý proces položku PCB (Process Control Block) PCB obsahuje všechny info potřebné pro opětovné spuštění procesu Konkrétní obsah PCB různý Pole správy procesů, správy paměti, správy souborů

Položky - správa procesů Identifikátory (číselné) Identifikátor procesu Identifikátor uživatele Stavová informace procesoru Univerzální registry, PC, ukazatel zásobníku SP Stav CPU PSW (Program Status Word) Stav procesu (běžící, připraven, blokován) Plánovací parametry procesu (algoritmus, priorita)

Položky správa procesů II Odkazy na rodiče a potomky Účtovací informace Čas spuštění procesu Čas CPU spotřebovaný procesem Nastavení meziprocesové komunikace Nastavení signálů, zpráv

Položky správa paměti Popis paměti Ukazatel, velikost, přístupová práva Úsek paměti s kódem programu Data hromada Pascal new release C malloc, free Zásobník Návratové adresy, parametry funkcí a procedur, lokální proměnné

Položky správa souborů Nastavení prostředí Aktuální pracovní adresář Otevřené soubory Způsob otevření čtení / zápis Pozice v otevřeném souboru

Přepnutí procesu - průběh Systém nastaví časovač pravidelně přerušení Na předem definovaném místě adresa obslužného programu přerušení CPU po příchodu přerušení provede: Uloží čítač instrukcí PC do zásobníku Načte do PC adresu obsluž. programu přerušení Přepne do režimu jádra

Přepnutí procesu - II Vyvolána obsluha přerušení: Uloží obsah registrů do zásobníku Nastaví nový zásobník Plánovač nastaví proces jako ready, vybere nový proces pro spuštění Přepnutí kontextu Nastaví mapu paměti nového procesu Nastaví zásobník, načte obsah registrů Provede návrat z přerušení RET (do PC adresa ze zásobníku, přepne do uživatelského režimu)

Rychlost CPU vs. paměť CPU Rychlost počet instrukcí za sekundu Obvykle nejrychlejší komponenta v systému Skutečný počet instrukcí závisí na rychlosti, jak lze instrukce a data přenášet z a do hlavní paměti Hlavní paměť Rychlost v pamětových cyklech (čtení, zápis) O řád pomalejší než CPU

Rozdíly rychlostí pyramida CPU rychlé registry zápisníková pamět, 32x32 nebo 64x64 bitů, žádné zpoždění při přístupu Cache malá paměť s vysokou rychlostí, princip lokality, pokud jsou data v cache dostaneme velmi rychle, 2 tiky hodin Vnější pamět Mechanická, pomalejší, větší kapacita, levnější cena za bit

MMU Memory Management Unit Více procesů v paměti Každý proces pamět pro sebe, např. od adresy 0 (relokace) Ochrana nemůže zasahovat do paměti ostatních procesů ani jádra Mezi CPU a pamětí je MMU Program pracuje s virtuálními adresami MMU je převede na fyzické adresy

MMU

Výkonnostní důsledky Pokud program nějakou dobu běží v cache jeho data a instrukce dobrá výkonnost Při přepnutí na jiný proces převažuje přístup do hlavní paměti Nastavení MMU se musí změnit Přepnutí mezi úlohami i přepnutí do jádra (volání služby OS) relativně drahé (čas)

Služby pro práci s procesy Jednoduché systémy Všechny potřebné procesy spuštěny při startu systému Běží po celou dobu běhu systému žádné služby nepotřebujeme Zapouzdřené (embedded) systémy

UNIX a Linux Služba fork() vytvoří přesnou kopii rodičovského procesu Návratová hodnota rozliší mezi rodičem a potomkem (potomek dostane 0) pid = fork(); if (pid == 0) potomek else rodic Potomek může činnost ukončit pomocí exit() Rodič může na potomka čekat wait()

UNIX Potomek může místo sebe spustit jiný program volání execve() nahradí obsah paměti procesem spouštěným ze zadaného souboru if (fork() == 0) else execve( /bin/ls, argv, envp); wait(null);

Příkazový interpret Spouští příkaz vytvoří nový proces, čeká na jeho dokončení; ukončení volání sl. systému

Win32 Vytvoření procesu službou CreateProcess Mnoho parametrů vlastnosti procesu Není koncept rodič,potomek rovnocenné procesy

Procesy a vlákna Tradiční OS každý proces svůj vlastní adresový prostor a místo kde běží (bod běhu) Často výhodné více bodů běhu, ale ve stejném adresovém prostoru Bod běhu vlákno (thread, lightwight process) Více vláken ve stejném procesu - multithreading

Procesy a vlákna

Vlákna Vlákna v procesu sdílejí adresní prostor, otevřené soubory (atributy procesu) Vlákna mají soukromý čítač instrukcí, obsah registrů, soukromý zásobník Mohou mít soukromé lokální proměnné Původně využívána zejména pro VT výpočty na multiprocesorech (každé vlákno vlastní CPU, společná data)

Vlákna použití dnes Rozsáhlejší výpočet a rozsáhlejší i/o Interaktivní procesy jedno vlákno pro komunikaci s uživatelem, další činnost na pozadí www prohlížeč jedno vlákno příjem dat, další zobrazování a interakce s uživatelem Textový procesor vstup dat, přeformátování textu Servery www jedno vlákno pro každého klienta

Multithreading Podporován většinou OS Linux, Windows Často i moderní jazyky Java Proces začíná svůj běh s jedním vláknem, ostatní vytváří za běhu programově (konstrukce vytvoř vlákno) Režie na vytvoření vlákna a přepnutí kontextu menší než v případě procesů

Poznámka Jeden proces více vláken Více procesů sdílejících pamět Z hlediska např. synchronizace se tyto případy většinou v literatuře nerozlišují

Statické Programové konstrukce pro vytváření vláken Proces obsahuje deklaraci pevné množiny podprocesů (např. tabulka) Všechny spuštěny při spuštění procesu Dynamické Procesy mohou vytvářet potomky dynamicky Pro popis precendenční grafy

Precedenční grafy Popis pro vyjádření různých relací mezi procesy Process flow graph Acyklický orientovaný graf Běh procesu pi orientovaná hrana grafu Vztahy mezi procesy seriové nebo paralelní spojení spojením hran

Precedenční grafy

Další materiály Dále viz p2proc.pdf