Zkladn tematick okruhy Procesy Vlkna Plnovanie procesov Komunikcia
- Slides: 42
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) 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, 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 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 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 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 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 © 2009
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 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 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 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 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 © 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
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 */ 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 • 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 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í 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
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 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 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 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 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
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
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
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 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
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 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: 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 č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 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 © 2009
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
- Fázy rozhodovacieho procesu
- Okruhy nks
- Procesy uczenia się
- Procesy katalityczne
- Bunkovu stavu obsahuje
- Procesy cieplne
- Vonkajšie geologické procesy
- Logistyka zaopatrzenia i dystrybucji
- Katabolický proces
- Procesy informacyjne
- Typologie osobnosti
- Procesy przeduwagowe
- Lejek krasowy – uwał – polje
- Exogenne procesy
- Katastrofické geologické procesy
- Sopečné vyvrhliny
- Anabolizm to proces
- Procesy informacyjne w organizacji
- živé prírodniny
- Tematick
- Tematick
- Tematick
- Tematick
- Tematick
- Tematick
- Judaizmus boh jahve
- Tematick
- Všeslovanská vzájomnosť
- Tematick
- Tematick
- Tematick
- Tematick
- Weihnachten in deutschland
- Tematick
- Tematick
- Tematick
- Tematick
- Tematick
- Tasche člen
- Tematick
- Tematick
- Tematick
- Tematick