základné tematické okruhy

42
3.1 ©2009 Operačné systémy, Kap. 3: Procesy 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í

Upload: iolani

Post on 10-Jan-2016

46 views

Category:

Documents


1 download

DESCRIPTION

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í. Procesy. Charakteristiky procesu Stav procesu - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Základné tematické okruhy

3.1 ©2009Operačné systémy, Kap. 3: Procesy

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í

Page 2: Základné tematické okruhy

3.2 ©2009Operačné systémy, Kap. 3: Procesy

Procesy

•Charakteristiky procesu

•Stav procesu

•Riadiaci blok procesu

•Plánovanie (rozvrhovanie) procesu

•Prepínanie kontextu

•Operácie na procesoch

Page 3: Základné tematické okruhy

3.3 ©2009Operačné systémy, Kap. 3: Procesy

Vzťah: systémové volanie – operačný systém

Používateľská aplikácia

Interfejs systémových volaní

Používateľský mód

Mód jadra

Page 4: Základné tematické okruhy

3.4 ©2009Operačné systémy, Kap. 3: Procesy

Parameter prechádzajúci cez tabuľkuParameter Passing via Table

X: Parametre pre sys. volanie

Zaveď adresu X

Používateľský program

Operačný systém

Použi parametre z tabuľky X

kód programu pre systémové volanie 13

Page 5: Základné tematické okruhy

3.5 ©2009Operačné systémy, Kap. 3: Procesy

PROCESY

Pojem procesu

Plánovanie procesov

Činnosť v rámci procesov

Komunikácia medzi procesmi

Príklady medziprocesovej komunikácie

Komunikácia v systémoch typu klient – server

Page 6: Základné tematické okruhy

3.6 ©2009Operačné systémy, Kap. 3: Procesy

Ciele

Zaviesť pojem procesu – program v priebehu vykonávania, ktorý tvorí základ pre všetky výpočtové činnosti

Opísať rozličné vlastnosti procesov vrátane plánovania, tvorby a ohraničení, komunikácie

Opísať komunikáciu pre systémy s architektúrou klient –server.

Page 7: Základné tematické okruhy

3.7 ©2009Operačné systémy, Kap. 3: Procesy

Pojem procesu

Operačný systém vykonáva rôzne druhy programov: Dávkové systémy – úlohy Systémy so zdieľaním času – používateľské programy alebo

úlohy Učebnice (príručky) používajú termíny úloha a proces skoro

(takmer) za zameniteľné Proces – program v štádiu vykonávania; vykonávanie procesu musí

postupovať (napredovať) sekvenčným spôsobom Proces obsahuje:

Počítadlo inštrukcií Programový zásobník Dátovú časť

Page 8: Základné tematické okruhy

3.8 ©2009Operačné systémy, Kap. 3: Procesy

Proces v pamäti

zásobník

halda

dáta

Page 9: Základné tematické okruhy

3.9 ©2009Operačné systémy, Kap. 3: Procesy

Stav procesu

V priebehu vykonávania procesu sa menia jeho stavy

Nový: proces je práve vytvorený

Bežiaci: vykonávajú sa inštrukcie programu

Čakajúci: proces čaká na určitú udalosť, ktorá sa má vyskytnúť

Pripravený: proces čaká na pridelenie procesora

Ukončený: proces dokončil svoje vykonanie

Page 10: Základné tematické okruhy

3.10 ©2009Operačné systémy, Kap. 3: Procesy

Možné stavy procesu Diagram of Process State

nový

pripravený

čakajúci

ukončený

bežiaci

prerušenie áno

Výstupzo

systémuPrijatý do systému

Čakaniena

Dokončenie V/V alebo

udalostiPrijatý do systému

Čakanie na V/V alebo

na udalosť

Procesor pridelený

Plánovač pridelil procesor procesu

Page 11: Základné tematické okruhy

3.11 ©2009Operačné systémy, Kap. 3: Procesy

Riadiaci blok procesu Process Control Block (PCB)

Informácia spojená s každým procesom

Stav procesu

Počítadlo inštrukcií

Registre CPU

Informácie pre plánovanie procesu

Informácia pre správu pamäte

Účtovacie informácie

Informácie o V/V stave

Page 12: Základné tematické okruhy

3.12 ©2009Operačné systémy, Kap. 3: Procesy

Riadiaci blok procesu Process Control Block (PCB)

registre

Stav procesu

Číslo procesu

Počítadlo inštrukcií

Rozsah pamäti pridelenej procesu

Zoznam otvorených súborov

Page 13: Základné tematické okruhy

3.13 ©2009Operačné systémy, Kap. 3: Procesy

Prepínanie procesora (CPU) z procesu na procesPrepínanie kontextu procesov

Operačný systémproces proces

vykonáva sa

vykonáva sa

vykonáva sa

Prerušenie alebo systémové volanie

Prerušenie alebo systémové volanienečinný

idle

činnýnečinný

nečinný

Ulož stav do

Ulož stav do

Zaveď stav z

Zaveď stav z

Page 14: Základné tematické okruhy

3.14 ©2009Operačné systémy, Kap. 3: Procesy

Ready Queue And Various I/O Device Queues

Page 15: Základné tematické okruhy

3.15 ©2009Operačné systémy, Kap. 3: Procesy

Representation of Process Scheduling

Page 16: Základné tematické okruhy

3.16 ©2009Operačné systémy, Kap. 3: Procesy

Addition of Medium Term Scheduling

Page 17: Základné tematické okruhy

3.17 ©2009Operačné systémy, Kap. 3: Procesy

Process Creation

Page 18: Základné tematické okruhy

3.18 ©2009Operačné systémy, Kap. 3: Procesy

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);

}}

Page 19: Základné tematické okruhy

3.19 ©2009Operačné systémy, Kap. 3: Procesy

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

Page 20: Základné tematické okruhy

3.20 ©2009Operačné systémy, Kap. 3: Procesy

Vlákna

Prehľad

Multivláknové modely

Knižnice vlákien

Problémy vytvárania vlákien

Príklady operačných systémov

Windows XP Threads

Linux Threads

Page 21: Základné tematické okruhy

3.21 ©2009Operačné systémy, Kap. 3: Procesy

Ciele

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.

Diskutovať API pre Pthreads, Win32, a Java thread knižnice

Problémy multivláknového programovania

Page 22: Základné tematické okruhy

3.22 ©2009Operačné systémy, Kap. 3: Procesy

Jednovláknové a multivláknové procesy

Page 23: Základné tematické okruhy

3.23 ©2009Operačné systémy, Kap. 3: Procesy

Prínosy

Citlivosť

Zdieľanie prostriedkov

Ekonomičnosť

Škálovateľnosť

Page 24: Základné tematické okruhy

3.24 ©2009Operačné systémy, Kap. 3: Procesy

Používateľské vlákna

Správa vlákien vykonávaná pomocou používateľskej knižnice vlákien

Tri základné knižnice vlákien:

POSIX Pthreads

Win32 threads

Java threads

Page 25: Základné tematické okruhy

3.25 ©2009Operačné systémy, Kap. 3: Procesy

Vlákna jadra

Podporované jadrom (kernel)

Príklady

Windows XP/2000

Solaris

Linux

Tru64 UNIX

Mac OS X

Page 26: Základné tematické okruhy

3.26 ©2009Operačné systémy, Kap. 3: Procesy

Viacvláknové (multivláknové) modely

Many-to-One

One-to-One

Many-to-Many

Page 27: Základné tematické okruhy

3.27 ©2009Operačné systémy, Kap. 3: Procesy

Many-to-One

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

Príklady

Solaris Green Threads

GNU Portable Threads

Page 28: Základné tematické okruhy

3.28 ©2009Operačné systémy, Kap. 3: Procesy

Many-to-One Model

Page 29: Základné tematické okruhy

3.29 ©2009Operačné systémy, Kap. 3: Procesy

One-to-One

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

Príklady

Windows NT/XP/2000

Linux

Solaris 9 and later

Page 30: Základné tematické okruhy

3.30 ©2009Operačné systémy, Kap. 3: Procesy

One-to-one Model

Page 31: Základné tematické okruhy

3.31 ©2009Operačné systémy, Kap. 3: Procesy

Many-to-Many Model

Umožňuje mapovať viacero používateľských vlákien do menšieho (rovnakého) počtu vlákien na úrovni jadra

Dovoľuje operačnému systému vytvárať dostatočný počet vlákien jadra

Solaris pred verziou 9

Windows NT/2000 with the ThreadFiber package

Page 32: Základné tematické okruhy

3.32 ©2009Operačné systémy, Kap. 3: Procesy

Many-to-Many Model

Page 33: Základné tematické okruhy

3.33 ©2009Operačné systémy, Kap. 3: Procesy

Plánovanie CPU

Základné pojmy

Kritériá plánovania

Algoritmy plánovania

Plánovanie viacprocesorového systému

Plánovanie vlákna

Príklady operačných systémov

Ohodnotenie algoritmov

Page 34: Základné tematické okruhy

3.34 ©2009Operačné systémy, Kap. 3: Procesy

Ciele

Predstaviť CPU plánovanie tvoriace základ pre multiprogramové operačné systémy

Opis rôznych algoritmov plánovania CPU

Prediskutovať hodnotiace kritériá pre výber algoritmov CPU-plánovania pre jednotlivé systémy

Page 35: Základné tematické okruhy

3.35 ©2009Operačné systémy, Kap. 3: Procesy

Histogram požadovaného času procesora

Page 36: Základné tematické okruhy

3.36 ©2009Operačné systémy, Kap. 3: Procesy

Striedanie postupnosti časov procesora a V/V zariadení

Page 37: Základné tematické okruhy

3.37 ©2009Operačné systémy, Kap. 3: Procesy

Plánovač času procesora

Vyberá spomedzi procesov v pamäti tie, ktoré sú pripravené na vykonanie a uvoľňuje procesor pre jeden z nich.

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ť

Plánovanie pri 1 a 4 je nepreemptívne

Plánovanie pri 2 a 3 je preemptívne

Page 38: Základné tematické okruhy

3.38 ©2009Operačné systémy, Kap. 3: Procesy

Dispečer

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

Prepínanie kontextu

Prepínanie do používateľského režimu

Skok na správne/vhodné miesto v používateľskom programe, aby sa tento program reštartoval (za účelom reštarovania tohto programu)

Čakacia doba – čas, ktorý trvá dispečerovi zastavenie jedného procesu a spustenie iného procesu

Page 39: Základné tematické okruhy

3.39 ©2009Operačné systémy, Kap. 3: Procesy

Optimalizačné kritériá pri plánovacích algoritmoch

Maximálne využitie procesora

Maximálna priepustnosť

Minimálny čas vykonania

Minimálny čas čakania

Minimálny čas odozvy

Page 40: Základné tematické okruhy

3.40 ©2009Operačné systémy, Kap. 3: Procesy

Určenie dlžky nasledujúceho požadovaného času procesora

Je možné iba odhadovať dĺžku

Môže byť určená na základe predchádzajúcej dĺžky požadovaného času procesora ako exponenciálny priemer

:Definujme 4.

10 , 3.

procesoračasu hopožadované ehonasledujúc hodnota anáptredpoved 2.

procesoračasu hopožadované tého-n dĺĺžk aktuálna 1.

1

nnt

.1 1 nnn t

Page 41: Základné tematické okruhy

3.41 ©2009Operačné systémy, Kap. 3: Procesy

Predpovedanie dĺžky nasledujúceho požadovaného času procesora

Page 42: Základné tematické okruhy

3.42 ©2009Operačné systémy, Kap. 3: Procesy

Príklady exponenciálneho spriemerňovania

=0 n+1 = n

Nedávna história sa nezapočítava =1

n+1 = tn

Len aktuálne posledný požadovaný čas procesora sa započítava Ak rozšírime vzorec, dostaneme:

n+1 = tn+(1 - ) tn -1 + …

+(1 - )j tn -j + …

+(1 - )n +1 0

Keďže aj aj (1 - ) sú menšie alebo rovné 1, každý nasledujúci člen má menšiu váhu než jeho predchodca