Základné tematické okruhy

Preview:

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

Citation preview

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í

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

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

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

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

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.

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ť

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

Proces v pamäti

zásobník

halda

dáta

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

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

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

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

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

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

Ready Queue And Various I/O Device Queues

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

Representation of Process Scheduling

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

Addition of Medium Term Scheduling

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

Process Creation

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

}}

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

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

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

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

Jednovláknové a multivláknové procesy

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

Prínosy

Citlivosť

Zdieľanie prostriedkov

Ekonomičnosť

Škálovateľnosť

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

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

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

Viacvláknové (multivláknové) modely

Many-to-One

One-to-One

Many-to-Many

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

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

Many-to-One Model

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

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

One-to-one Model

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

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

Many-to-Many Model

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

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

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

Histogram požadovaného času procesora

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

Striedanie postupnosti časov procesora a V/V zariadení

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

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

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

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

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

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

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

Recommended