Download presentation
Presentation is loading. Please wait.
1
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í
2
Procesy Charakteristiky procesu Stav procesu Riadiaci blok procesu Plánovanie (rozvrhovanie) procesu Prepínanie kontextu Operácie na procesoch
3
Vzťah: systémové volanie – operačný systém
Používateľská aplikácia Používateľský mód Interfejs systémových volaní Mód jadra 3
4
Parameter prechádzajúci cez tabuľku Parameter Passing via Table
X: Parametre pre sys. volanie Použi parametre z tabuľky X kód programu pre systémové volanie 13 Zaveď adresu X Používateľský program Operačný systém 4
5
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
6
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.
7
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ť
8
Proces v pamäti zásobník halda dáta
9
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
10
Možné stavy procesu Diagram of Process State
Výstup zo systému Prijatý do systému nový prerušenie áno ukončený pripravený bežiaci Čakanie na V/V alebo na udalosť Dokončenie V/V alebo udalosti Procesor pridelený Čakanie na Prijatý do systému čakajúci Plánovač pridelil procesor procesu
11
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
12
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
13
Prepínanie procesora (CPU) z procesu na proces Prepínanie kontextu procesov
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
14
Ready Queue And Various I/O Device Queues
15
Representation of Process Scheduling
16
Addition of Medium Term Scheduling
17
Process Creation
18
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);
19
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
20
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 20
21
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
22
Jednovláknové a multivláknové procesy
22
23
Prínosy Citlivosť Zdieľanie prostriedkov Ekonomičnosť Škálovateľnosť
23
24
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 24
25
Vlákna jadra Podporované jadrom (kernel) Príklady Windows XP/2000
Solaris Linux Tru64 UNIX Mac OS X 25
26
Viacvláknové (multivláknové) modely
Many-to-One One-to-One Many-to-Many 26
27
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 27
28
Many-to-One Model 28
29
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 29
30
One-to-one Model 30
31
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 31
32
Many-to-Many Model 32
33
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 33
34
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
35
Histogram požadovaného času procesora
35
36
Striedanie postupnosti časov procesora a V/V zariadení
36
37
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 37
38
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 38
39
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 39
40
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 40
41
Predpovedanie dĺžky nasledujúceho požadovaného času procesora
41
42
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 42
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.