+ All Categories
Home > Documents > 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace...

5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace...

Date post: 01-Jan-2016
Category:
Upload: larissa-reid
View: 22 times
Download: 1 times
Share this document with a friend
Description:
5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace ) vztah mezi OS a procesy PCB (Process Control Block) trasování procesů stavové diagramy procesů odkládání procesů Studijní materiály najdete na adrese: http://www.uai.fme.vutbr.cz/~vdumek/. - PowerPoint PPT Presentation
24
5. přednáška 20. 3. 2014 - složení OS - proces (co je to, vytvoření a přerušení, implementace) - vztah mezi OS a procesy - PCB (Process Control Block) - trasování procesů - stavové diagramy procesů - odkládání procesů Studijní materiály najdete na adrese: http://www.uai.fme.vutbr.cz/~vdumek/
Transcript
Page 1: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

5. přednáška20. 3. 2014

- složení OS- proces (co je to, vytvoření a přerušení, implementace)- vztah mezi OS a procesy- PCB (Process Control Block)- trasování procesů- stavové diagramy procesů- odkládání procesů

Studijní materiály najdete na adrese:

http://www.uai.fme.vutbr.cz/~vdumek/

Page 2: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Operating system Design Hierarchy

L Name Objects Example Operations

13 Shell User programming environment Statements in shell language

12 User processes User processes Quit, kill, suspend, resume

11 Directories Directories Create, destroy, attach, detach, search list

10 DevicesExternal devices, such as printers, displays and keyboards

Open, close, read, write

9 File system Files Create, destroy, open, close, read, write

8 Comunications Pipes Create, destroy, open, close, read, write

7 Virtual memory Segments, pages Read, write, fetch

6 Load secondary store Blocks of data, device channels Read, write, allocate, free

5 Primitive processes Primitive processes, semaphores, ready list Suspend, resume, wait, signal

4 Interrupts Interrupt-handling programs Invoke, mask, unmask, retry

3 Procedures Procedures, call stack, display Mark stack, call, return

2 Instruction setEvaluation stack, microprogram interpreter, scalar and array data

Load, store, add, subtract, branch

1 Electronic circuits Registers, gates, buses, etc. Clear, transfer, activate, complement

Page 3: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Operating system Design Hierarchy

Level 1: obsahuje elektronické obvody, které představují registry, paměťové buňky a logická hradla, operace na těchto objektech jsou např. mazání registrů, čtení z paměti, atd.

Level 2: představuje instrukční soubor procesoru se strojovými instrukcemi (sčítání, odčítání, přesun, ...)

Level 3: volání procedur a funkcí (podprogramů), call and return

Level 4: představuje přerušení, při kterém se ukládá starý kontext a aktivuje se přerušovací rutina

První 4 úrovně nejsou součástí operačního systému, ale zahrnují HW. Přesto některé části operačního systému těchto úrovní využívají (přerušení).

Page 4: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Operating system Design Hierarchy

Level 5: v této úrovni běží procesy, jsou přepínány, je zajištěna synchronizace

Level 6: zabývá se sekundární pamětí počítače (pevný disk), jsou zde implementovány funkce polohování čtecích hlav, přesun bloků dat, využívá sousedních vrstev pro plánování a adresování přesunů bloků dat

Level 7: vytváří logický adresní prostor pro procesy, tato vrstva zajišťuje přesun dat mezi operační pamětí a diskem, běžná jsou 3 schémata: pevná délka stránky, proměnná délka stránky a obojí, pokud není požadovaný blok dat v paměti, zapojí se vrstva 6

Do úrovně Level 7 se operační systém zabývá pouze procesory, od úrovně Level 8 jsou zapojeny periferie a počítačová síť, objekty jsou sdíleny na jednom nebo více počítačích.

Page 5: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Operating system Design Hierarchy

Level 8: zabývá se komunikací mezi procesy, pipes (roury) slouží k předávání informací mezi procesy, synchronizace, zprávy

Level 9: long-term storage pojmenovaných souborů, čtení dat do proměnných, stopy, sektory, konstantní velikost bloku (Level 6)

Level 10: poskytuje přístup k externím zařízením pomocí standardních interfaces

Level 11: zodpovídá za asociace mezi externími a interními identifikátory zdrojů a objektů, externí jsou textové položky pro uživatele, interní jsou indikátory pro OS, přístupová práva

Level 12: poskytuje podporu procesům na vyšší úrovni, než Level 5 (virtuální adresování, seznamy procesů k přepínání, atd.)

Level 13: poskytuje intarface OS s uživatelem, shell, transformuje vlastnosti OS do služeb

Page 6: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

- prováděný program- instance běžícího programu- entita, která může být popsána a provedena na počítači- aktivní jednotka charakterizovaná a prováděná jedním sekvenčním vláknem, se svým stavem a sdružená se systémovými zdroji

Proces

Vytváření procesu

- přiřazení jedinečného identifikátoru- alokování paměti pro zásobník, image procesu, program a data, hodnoty mohou být imlicitní nebo explicitní- inicializace PCB- nastavení příslušných vazeb (různé fronty dle plánování, ...)- vytváření všech potřebných datových struktur

Page 7: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Vytvoření a přerušení procesu

Důvody pro vytvoření procesu

- spuštění nového programu (příkaz, dávka, ...)

- přihlášení uživatele

- operační systém potřebuje provést nějakou službu ve prospěch uživatele nebo jiného procesu

- při běhu programu se objeví potřeba paralelismu nebo modularity (spawn)

Důvody pro přerušení (ukončení) procesu

- vše je hotovo

- překročení časového limitu určeného pro běh procesu

- proces požaduje více paměti, než mu OS může poskytnout

- porušení ochrany paměti, souboru, prostředku, ...

- vznik chyby při výpočtu (dělení nulou, velké číslo, ..)

- překročení časového limitu při čekání procesu na událost

- chyba při I/O operaci

- pokus o provedení neexistující instrukce (při větvení programu skok na data, ...)

- snaha o provedení instrukce rezervované pro OS

- špatný typ nebo inicializace dat

- intervence OS nebo rodičovského procesu

Korektní

- při přerušení procesu je aktuální obsah programového čítače a registrů procesoru (datový kontext) přenesen do příslušné datové oblasti korespondující s PCB a stav procesu je označen jinou hodnotou, přepnutí kontextu

Page 8: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Typical Process Implementation

Context

Data

Program

Context

Data

Program

b

h

ProcessA

ProcessB

Processlist

i

Mainmemory

Processorregisters

bh

Process index

PC

BaseLimit

Otherregisters

.

.

.

i

j

Page 9: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

P1

OS1

kernel

. . .

Vztah mezi operačním systémem a procesy

process switching functions

process switching functions

. . .

P1 P2 P3 Pn

. . .

P2 P3 Pn

OS2 OS3 OSn

P1 P2 P3 Pn

funkce OS

- tradiční přístup, běžný pro starší OS, kernel běží vně všech procesů, procesy jsou přerušovány pomocí supervissor call, kontext procesu je uložen, kernel má vlastní paměť a zásobník, po provedení požadované funkce se provede návrat k procesu

- způsob běžný pro PC a workstations, funkce OS se provádí v kontextu procesů, OS je kolekcí rutin prováděných v rámci uživatelských procesů, každý image procesu obsahuje i program, data a zásobník kernelu

- OS je implementován jako kolekce systémových procesů, většina kernelových funkcí je organizována v samostatných procesech

Page 10: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

OS je prováděn během procesu

PCB

Process identification

Process state information

Process controlinformation

User stack

Private user addressspace (program, data)

Kernel stack

Shared address space

běžné pro OS na PC a workstations, SW OS probíhá v kontextu uživatelského procesu každý image procesu obsahuje i program, data a zásobník kernelusdílení všemi

procesy

Page 11: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Uživatelské procesy v paměti

Processidentification

Process stateinformation

Process controlinformation

User stack

Private useraddress space

(programs, data)

Sharedaddress space

Process 1

Processidentification

Process stateinformation

Process controlinformation

User stack

Private useraddress space

(programs, data)

Sharedaddress space

Process 2

Processidentification

Process stateinformation

Process controlinformation

User stack

Private useraddress space

(programs, data)

Sharedaddress space

Process n

. . .

pro

cess

imag

e

Page 12: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Struktura seznamů procesů

Running

Ready

Blocked

PCB

PCB

PCB

PCB PCB

PCB PCB PCB PCB

Page 13: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Typické komponenty PCB

Process Identification – obsahuje identifikátory (procesu, rodiče,

uživatele)

Process State Information – registry viditelné uživatelem (pouze některé), řídící a stavové registry (program counter, condition codes (výsledky logických a aritmetických operací)), ukazatele zásobníků

Process Control Information – plánovací informace (stav,

priorita, ...), ukazatele na spolupracující datové struktury, meziprocesová komunikace (příznaky, signály, zprávy, ...), informace o MMU, informace o vlastnění zdrojů, informace o využití procesoru

Page 14: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Zjednodušený Process Control Block

PCB (execution context)- datová struktura vytvářená a řízená prostřednictvím OS, jedná se o klíčový moment v otázce podpory běhu více procesůIdentifikátor – jedinečné označení procesu, odlišné od všech jinýchStav – označuje stav procesu z množiny stavového diagramuPriorita – je zde poznamenána úroveň priority procesuČítač instrukcí – ukazuje na další instrukci při provádění procesuPaměťové ukazatele – obsahují údaje o umístění kódu procesu, datech a sdílených oblastech s jinými procesySouvisející data – obsah registrů během provádění procesuStav V/V – obsahuje nevyřízené V/V požadavky procesu, sdružená zařízení s procesem, seznam souborů souvisejících s procesem, ...Účtovací informace – mohou obsahovat údaje o spotřebovaném procesorovém čase, časové limity, ...

Identifier

State

Priority

Program counter

Memory pointers

Context data

I/O status information

Accounting information

. . .

Page 15: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

500050015002500350045005500650075008500950105011

8000800180028003

120001200112002120031200412005120061200712008120091201012011

Trace of Process A

Trace of Process B

Trace of Process C

5000 – Starting address of program of Process A8000 – Starting address of program of Process B12000 – Starting address of program of Process C

Trasování procesů

Process C

Process A

Process B

Dispatcher

0

100

5000

8000

12000

8000

Main memory

Program counter

Page 16: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Timeout

Timeout

I/O request

Timeout

1 50002 50013 50024 50035 50046 5005

7 1008 1019 10210 10311 10412 10513 800014 800115 800216 8003

17 10018 10119 10220 10321 10422 10523 1200024 1200125 1200226 12003

27 1200428 12005

29 10030 10131 10232 10333 10434 10535 500636 500737 500838 500939 501040 5011

41 10042 10143 10244 10345 10446 10547 1200648 1200749 1200850 1200951 1201052 12011 Timeout

Enter Notrunning

RunningExit

Dispatch

Pause

Queue

Processor

Enter Exit

Pause

Dispatch

Dvoustavový diagram procesů

Page 17: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Process A

Process B

Process C

100 5 15 20 25 30 35 40 45 50

Dispatcher

Running Ready Blocked

Stavy procesů při trasování

Page 18: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

připraven

probíhající

čekajícípředán přijat

dokončen

Procesu je přiřazen procesor

Čekání na dokončení I/O operace

I/O operace je dokončena

- probíhající: je přidělen procesor- čekající: čekání na určitou událost- připraven: čeká na přidělení procesoru- předán: očekává se reakce OS na předání úlohy

- přijat: úloha převedena do vnitřního tvaru, procesům nejsou přiděleny žádné prostředky- dokončen: prostředky jsou volné

Stavy procesu

Page 19: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Pětistavový model procesu

- předpokládejme přítomnost jednoho procesoru

- New – vytvořený proces, který ještě nebyl přijat operačním systémem, už má vytvořený PCB

- Ready – čeká na svoji příležitost (modifikováno politikou přidělování)

- Running – právě zpracovávaný proces, může být pouze jeden

- Exit – proces uvolnil veškeré přidělené prostředky, ukončen, zrušen

- Blocked – odložený proces z důvodu očekávání události (prostředek, zpráva, ...)

New Ready Running

Blocked

Exit

Dispatch

TimeoutPřijmout

Očekávanáudálost

Událostnastala

Uvolnit

Page 20: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Jeden stav suspend

New AdmitDispatch

Release

Timeout

Suspend

Act

ivat

e

Eve

nt

occu

rs

Eve

nt w

ait

Ready Running Exit

Suspend Blocked

Ready – proces je v paměti a je připraven k provedeníBlocked – proces je v paměti a očekává nějakou událostSuspend – proces je na disku a čeká na uvolnění místa v paměti

Page 21: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Dva stavy suspend

Ready /Suspend

DispatchRelease

Timeout

Suspend

Activate

Eve

nt

occu

rs

Event

wai

t

Ready Running Exit

Blocked /Suspend

Blocked

New

Suspend

Activate

Eve

nt

occu

rs

Adm

itAdmit

Suspend

Page 22: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Přechody mezi stavy procesu

Blocked -> Blocked/Suspend: málo místa v paměti, možnost vzniku nových procesůBlocked/Suspend -> Ready/Suspend: pokud nastala událost, na kterou proces musel čekatReady/Suspend -> Ready: pokud není v paměti žádný proces schopný svého provedení, záleží na prioritě procesůReady -> Ready/Suspend: používá se v případě potřeby získat hodně místa v paměti, někdy si pro suspendování může OS vybrat ready proces s nízkou prioritou místo blokovaného procesu s prioritou vysokou

- nově vzniklý proces někdy nemusí mít vytvořeny všechny podmínky pro svůj běh

Page 23: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Odkládání procesů

- stav suspend- každý prováděný proces musí být uložený v paměti, pokud blokované procesy zaplní paměť do určité míry, jsou převedeny do stavu suspend a odkládány na disk (swapování), diskové operace jsou z hlediska výměn rychlostně uspokojivé- systém má možnost vzít do fronty připravených procesů proces nový (zvýšení míry multiprogramování) nebo proces ze stavu suspend (z disku)- při opuštění stavu suspend se předpokládá okamžité zapojení procesu do mechanismu plánování- není účelné zařazovat suspendované procesy, které očekávají nějakou událost

Page 24: 5. přednáška 20. 3. 2014 složení OS proces ( co je to, vytvoření a přerušení, implementace )

Důvody pro odložení procesu

Swapping OS potřebuje uvolnit místo v operační paměti, potřebuje zde umístit proces ve stavu Ready

Other OS Reason OS může suspendovat nějaký méně důležitý (background) proces, nějakou utilitu nebo proces podezřelý z působení problémů

User Reguest interaktivní požadavek uživatele přerušení programu z důvodů trasování, modifikace HW zdrojů

Timing přerušení periodicky se opakujícího procesu (účtování, monitorování, ...) a čekání na další periodu

Parent Request rodič si může přát suspendování potomka za účelem jeho zkoumání nebo modifikace, pro koordinaci akcí několika potomků


Recommended