základné tematické okruhy
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 PresentationTRANSCRIPT
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