Zkladn tematick okruhy Procesy Vlkna Plnovanie procesov Komunikcia

  • Slides: 42
Download presentation
Základné tematické okruhy • Procesy • Vlákna • Plánovanie procesov • Komunikácia medzi procesmi

Základné tematické okruhy • Procesy • Vlákna • Plánovanie procesov • Komunikácia medzi procesmi • Synchronizácia procesov • Operačné systémy (vývoj, štruktúra, . . . ) • Správa pamäti • Virtuálna pamäť • Správa súborov • Správa I/O zariadení Operačné systémy, Kap. 3: Procesy 3. 1 © 2009

Procesy • Charakteristiky procesu • Stav procesu • Riadiaci blok procesu • Plánovanie (rozvrhovanie)

Procesy • Charakteristiky procesu • Stav procesu • Riadiaci blok procesu • Plánovanie (rozvrhovanie) procesu • Prepínanie kontextu • Operácie na procesoch Operačné systémy, Kap. 3: Procesy 3. 2 © 2009

Vzťah: systémové volanie – operačný systém Používateľská aplikácia Používateľský mód Mód jadra Operačné systémy,

Vzťah: systémové volanie – operačný systém Používateľská aplikácia Používateľský mód Mód jadra Operačné systémy, Kap. 3: Procesy Interfejs systémových volaní 3. 3 © 2009

Parameter prechádzajúci cez tabuľku Parameter Passing via Table X: Parametre pre sys. volanie Použi

Parameter prechádzajúci cez tabuľku Parameter Passing via Table X: Parametre pre sys. volanie Použi parametre z tabuľky X Zaveď adresu X kód programu pre systémové volanie 13 Používateľský program Operačný systém Operačné systémy, Kap. 3: Procesy 3. 4 © 2009

PROCESY n Pojem procesu n Plánovanie procesov n Činnosť v rámci procesov n Komunikácia

PROCESY n Pojem procesu n Plánovanie procesov n Činnosť v rámci procesov n Komunikácia medzi procesmi n Príklady medziprocesovej komunikácie n Komunikácia v systémoch typu klient – server Operačné systémy, Kap. 3: Procesy 3. 5 © 2009

Ciele n Zaviesť pojem procesu – program v priebehu vykonávania, ktorý tvorí základ pre

Ciele n Zaviesť pojem procesu – program v priebehu vykonávania, ktorý tvorí základ pre všetky výpočtové činnosti n Opísať rozličné vlastnosti procesov vrátane plánovania, tvorby a ohraničení, komunikácie n Opísať komunikáciu pre systémy s architektúrou klient –server. Operačné systémy, Kap. 3: Procesy 3. 6 © 2009

Pojem procesu n Operačný systém vykonáva rôzne druhy programov: Dávkové systémy – úlohy l

Pojem procesu n Operačný systém vykonáva rôzne druhy programov: Dávkové systémy – úlohy l Systémy so zdieľaním času – používateľské programy alebo úlohy n Učebnice (príručky) používajú termíny úloha a proces skoro (takmer) za zameniteľné n Proces – program v štádiu vykonávania; vykonávanie procesu musí postupovať (napredovať) sekvenčným spôsobom n Proces obsahuje: l Počítadlo inštrukcií l Programový zásobník l Dátovú časť l Operačné systémy, Kap. 3: Procesy 3. 7 © 2009

Proces v pamäti zásobník halda dáta Operačné systémy, Kap. 3: Procesy 3. 8 ©

Proces v pamäti zásobník halda dáta Operačné systémy, Kap. 3: Procesy 3. 8 © 2009

Stav procesu n V priebehu vykonávania procesu sa menia jeho stavy l Nový: proces

Stav procesu n V priebehu vykonávania procesu sa menia jeho stavy l Nový: proces je práve vytvorený l Bežiaci: vykonávajú sa inštrukcie programu l Čakajúci: proces čaká na určitú udalosť, ktorá sa má vyskytnúť l Pripravený: proces čaká na pridelenie procesora l Ukončený: proces dokončil svoje vykonanie Operačné systémy, Kap. 3: Procesy 3. 9 © 2009

Možné stavy procesu Diagram of Process State nový Prijatý do systému prerušenie ukončený bežiaci

Možné stavy procesu Diagram of Process State nový Prijatý do systému prerušenie ukončený bežiaci pripravený Dokončenie V/V alebo Čakanie udalosti na Výstup zo systému áno Procesor pridelený čakajúci Čakanie na V/V alebo Prijatý do systému na udalosť Plánovač pridelil procesor procesu Operačné systémy, Kap. 3: Procesy 3. 10 © 2009

Riadiaci blok procesu Process Control Block (PCB) Informácia spojená s každým procesom n Stav

Riadiaci blok procesu Process Control Block (PCB) Informácia spojená s každým procesom n Stav procesu n Počítadlo inštrukcií n Registre CPU n Informácie pre plánovanie procesu n Informácia pre správu pamäte n Účtovacie informácie n Informácie o V/V stave Operačné systémy, Kap. 3: Procesy 3. 11 © 2009

Riadiaci blok procesu Process Control Block (PCB) Stav procesu Číslo procesu Počítadlo inštrukcií registre

Riadiaci blok procesu Process Control Block (PCB) Stav procesu Číslo procesu Počítadlo inštrukcií registre Rozsah pamäti pridelenej procesu Zoznam otvorených súborov Operačné systémy, Kap. 3: Procesy 3. 12 © 2009

Prepínanie procesora (CPU) z procesu na proces Prepínanie kontextu procesov proces Operačný systém proces

Prepínanie procesora (CPU) z procesu na proces Prepínanie kontextu procesov proces Operačný systém proces Prerušenie alebo systémové volanie vykonáva sa Ulož stav do idle nečinný Zaveď stav z nečinný Prerušenie alebo systémové volanie vykonáva sa Ulož stav do činný nečinný Zaveď stav z vykonáva sa Operačné systémy, Kap. 3: Procesy 3. 13 © 2009

Ready Queue And Various I/O Device Queues Operačné systémy, Kap. 3: Procesy 3. 14

Ready Queue And Various I/O Device Queues Operačné systémy, Kap. 3: Procesy 3. 14 © 2009

Representation of Process Scheduling Operačné systémy, Kap. 3: Procesy 3. 15 © 2009

Representation of Process Scheduling Operačné systémy, Kap. 3: Procesy 3. 15 © 2009

Addition of Medium Term Scheduling Operačné systémy, Kap. 3: Procesy 3. 16 © 2009

Addition of Medium Term Scheduling Operačné systémy, Kap. 3: Procesy 3. 16 © 2009

Process Creation Operačné systémy, Kap. 3: Procesy 3. 17 © 2009

Process Creation Operačné systémy, Kap. 3: Procesy 3. 17 © 2009

C Program Forking Separate Process int main() { pid_t pid; /* fork another process

C Program Forking Separate Process int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } } Operačné systémy, Kap. 3: Procesy 3. 18 © 2009

Vlákna • Základné atribúty vlákien • Motivácia vytvárania vlákien • Modelové situácie použitia vlákien

Vlákna • Základné atribúty vlákien • Motivácia vytvárania vlákien • Modelové situácie použitia vlákien • Multivláknové modely Plánovanie procesov (vlákien) • Plánovacie algoritmy Operačné systémy, Kap. 3: Procesy 3. 19 © 2009

Vlákna n Prehľad n Multivláknové modely n Knižnice vlákien n Problémy vytvárania vlákien n

Vlákna n Prehľad n Multivláknové modely n Knižnice vlákien n Problémy vytvárania vlákien n Príklady operačných systémov n Windows XP Threads n Linux Threads Operačné systémy, Kap. 3: Procesy 3. 20 © 2009

Ciele n Zaviesť pojem vlákno – základná jednotka pre plánovanie činnosti procesora ktorá tvorí

Ciele n Zaviesť pojem vlákno – základná jednotka pre plánovanie činnosti procesora ktorá tvorí základ viacvláknových (multithreaded) počítačových systémov. n Diskutovať API pre Pthreads, Win 32, a Java thread knižnice n Problémy multivláknového programovania Operačné systémy, Kap. 3: Procesy 3. 21 © 2009

Jednovláknové a multivláknové procesy Operačné systémy, Kap. 3: Procesy 3. 22 © 2009

Jednovláknové a multivláknové procesy Operačné systémy, Kap. 3: Procesy 3. 22 © 2009

Prínosy n Citlivosť n Zdieľanie prostriedkov n Ekonomičnosť n Škálovateľnosť Operačné systémy, Kap. 3:

Prínosy n Citlivosť n Zdieľanie prostriedkov n Ekonomičnosť n Škálovateľnosť Operačné systémy, Kap. 3: Procesy 3. 23 © 2009

Používateľské vlákna n Správa vlákien vykonávaná pomocou používateľskej knižnice vlákien n Tri základné knižnice

Používateľské vlákna n Správa vlákien vykonávaná pomocou používateľskej knižnice vlákien n Tri základné knižnice vlákien: l POSIX Pthreads l Win 32 threads l Java threads Operačné systémy, Kap. 3: Procesy 3. 24 © 2009

Vlákna jadra n Podporované jadrom (kernel) n Príklady l Windows XP/2000 l Solaris l

Vlákna jadra n Podporované jadrom (kernel) n Príklady l Windows XP/2000 l Solaris l Linux l Tru 64 UNIX l Mac OS X Operačné systémy, Kap. 3: Procesy 3. 25 © 2009

Viacvláknové (multivláknové) modely n Many-to-One n One-to-One n Many-to-Many Operačné systémy, Kap. 3: Procesy

Viacvláknové (multivláknové) modely n Many-to-One n One-to-One n Many-to-Many Operačné systémy, Kap. 3: Procesy 3. 26 © 2009

Many-to-One n Mnoho (viac) používateľských vlákien je mapovaných do jedného vlákna na úrovni jadra

Many-to-One n Mnoho (viac) používateľských vlákien je mapovaných do jedného vlákna na úrovni jadra n Príklady l Solaris Green Threads l GNU Portable Threads Operačné systémy, Kap. 3: Procesy 3. 27 © 2009

Many-to-One Model Operačné systémy, Kap. 3: Procesy 3. 28 © 2009

Many-to-One Model Operačné systémy, Kap. 3: Procesy 3. 28 © 2009

One-to-One n Tento model mapuje každé používateľské vlákno do jedného vlákna na úrovni jadra

One-to-One n Tento model mapuje každé používateľské vlákno do jedného vlákna na úrovni jadra n Príklady l Windows NT/XP/2000 l Linux l Solaris 9 and later Operačné systémy, Kap. 3: Procesy 3. 29 © 2009

One-to-one Model Operačné systémy, Kap. 3: Procesy 3. 30 © 2009

One-to-one Model Operačné systémy, Kap. 3: Procesy 3. 30 © 2009

Many-to-Many Model n Umožňuje mapovať viacero používateľských vlákien do menšieho (rovnakého) počtu vlákien na

Many-to-Many Model n Umožňuje mapovať viacero používateľských vlákien do menšieho (rovnakého) počtu vlákien na úrovni jadra n Dovoľuje operačnému systému vytvárať dostatočný počet vlákien jadra n Solaris pred verziou 9 n Windows NT/2000 with the Thread. Fiber package Operačné systémy, Kap. 3: Procesy 3. 31 © 2009

Many-to-Many Model Operačné systémy, Kap. 3: Procesy 3. 32 © 2009

Many-to-Many Model Operačné systémy, Kap. 3: Procesy 3. 32 © 2009

Plánovanie CPU n Základné pojmy n Kritériá plánovania n Algoritmy plánovania n Plánovanie viacprocesorového

Plánovanie CPU n Základné pojmy n Kritériá plánovania n Algoritmy plánovania n Plánovanie viacprocesorového systému n Plánovanie vlákna n Príklady operačných systémov n Ohodnotenie algoritmov Operačné systémy, Kap. 3: Procesy 3. 33 © 2009

Ciele n Predstaviť CPU plánovanie tvoriace základ pre multiprogramové operačné systémy n Opis rôznych

Ciele n Predstaviť CPU plánovanie tvoriace základ pre multiprogramové operačné systémy n Opis rôznych algoritmov plánovania CPU n Prediskutovať hodnotiace kritériá pre výber algoritmov CPU-plánovania pre jednotlivé systémy Operačné systémy, Kap. 3: Procesy 3. 34 © 2009

Histogram požadovaného času procesora Operačné systémy, Kap. 3: Procesy 3. 35 © 2009

Histogram požadovaného času procesora Operačné systémy, Kap. 3: Procesy 3. 35 © 2009

Striedanie postupnosti časov procesora a V/V zariadení Operačné systémy, Kap. 3: Procesy 3. 36

Striedanie postupnosti časov procesora a V/V zariadení Operačné systémy, Kap. 3: Procesy 3. 36 © 2009

Plánovač času procesora n Vyberá spomedzi procesov v pamäti tie, ktoré sú pripravené na

Plánovač času procesora n Vyberá spomedzi procesov v pamäti tie, ktoré sú pripravené na vykonanie a uvoľňuje procesor pre jeden z nich. n Plánovanie času procesora sa vykonáva, keď proces sa prepína zo stavu: 1. Bežiaci na čakajúci 2. Bežiaci na pripravený 3. Čakajúci na pripravený 4. Proces ukončil svoju činnosť n Plánovanie pri 1 a 4 je nepreemptívne n Plánovanie pri 2 a 3 je preemptívne Operačné systémy, Kap. 3: Procesy 3. 37 © 2009

Dispečer n Modul dispečera umožňuje procesoru riadiť procesy vybrané krátkodobým plánovačom. Jeho úlohou je:

Dispečer n Modul dispečera umožňuje procesoru riadiť procesy vybrané krátkodobým plánovačom. Jeho úlohou je: l Prepínanie kontextu l Prepínanie do používateľského režimu l Skok na správne/vhodné miesto v používateľskom programe, aby sa tento program reštartoval (za účelom reštarovania tohto programu) n Čakacia doba – čas, ktorý trvá dispečerovi zastavenie jedného procesu a spustenie iného procesu Operačné systémy, Kap. 3: Procesy 3. 38 © 2009

Optimalizačné kritériá pri plánovacích algoritmoch n Maximálne využitie procesora n Maximálna priepustnosť n Minimálny

Optimalizačné kritériá pri plánovacích algoritmoch n Maximálne využitie procesora n Maximálna priepustnosť n Minimálny čas vykonania n Minimálny čas čakania n Minimálny čas odozvy Operačné systémy, Kap. 3: Procesy 3. 39 © 2009

Určenie dlžky nasledujúceho požadovaného času procesora n Je možné iba odhadovať dĺžku n Môže

Určenie dlžky nasledujúceho požadovaného času procesora n Je možné iba odhadovať dĺžku n Môže byť určená na základe predchádzajúcej dĺžky požadovaného času procesora ako exponenciálny priemer Operačné systémy, Kap. 3: Procesy 3. 40 © 2009

Predpovedanie dĺžky nasledujúceho požadovaného času procesora Operačné systémy, Kap. 3: Procesy 3. 41 ©

Predpovedanie dĺžky nasledujúceho požadovaného času procesora Operačné systémy, Kap. 3: Procesy 3. 41 © 2009

Príklady exponenciálneho spriemerňovania n =0 n+1 = n l Nedávna história sa nezapočítava n

Príklady exponenciálneho spriemerňovania n =0 n+1 = n l Nedávna história sa nezapočítava n =1 l n+1 = tn l Len aktuálne posledný požadovaný čas procesora sa započítava n Ak rozšírime vzorec, dostaneme: n+1 = tn+(1 - ) tn -1 + … +(1 - )j tn -j + … l +(1 - )n +1 0 n Keďže aj (1 - ) sú menšie alebo rovné 1, každý nasledujúci člen má menšiu váhu než jeho predchodca Operačné systémy, Kap. 3: Procesy 3. 42 © 2009