Slides 07 Task Implementation
-
Upload
sweidan-omar -
Category
Documents
-
view
223 -
download
0
Transcript of Slides 07 Task Implementation
-
8/3/2019 Slides 07 Task Implementation
1/20
Feladatok (task) egyttmkdse
Opercis rendszerek (vimia219)
Budapesti Mszaki s Gazdasgtudomnyi Egyetem
Mrstechnika s Informcis Rendszerek Tanszk
.
4. anyagrsz,Feladatok implementcija, folyamatok s szlak
-
8/3/2019 Slides 07 Task Implementation
2/20
Feladat (task) fogalom megvalstsa...
Feladat fogalom eredetilegfolyamat (process) rtelembenkerlt hasznlatra.
A folyamat a vgrehajts alattll program.
Verem (stack)
Szabad memria(free memory)
BME-MIT 2010, Minden jog fenntartva 2. lap
folyamat is ltrehozhat.
o Sajt kd, adat, halom (heap) sverem memria terlettel
rendelkezik.
o Vdettek a tbbi folyamattl.
Szeparci, virtulis gp, sandbox.
Halom (Heap)
Adat
Kd
-
8/3/2019 Slides 07 Task Implementation
3/20
Folyamatok szeparcija
Virtulis CPU-n futnak:
o Nem frhetnek hozz a tbbi folyamat s az opercisrendszer futsa sorn elll processzor llapothoz.
o Kontextus vlts trtnik, ha ms folyamat kerlfutsra.
BME-MIT 2010, Minden jog fenntartva 3. lap
.
o Nem frhetnek hozz ms folyamatok virtulismemrijhoz vagy direkt mdon a fizikaimemrihoz.
o A processzor MMU-ja oldja ezt meg. Lehetsges azonos fizikai memriaterletek pl. olvassi
joggal megosztva (pl. kd terlet).
A modern MMU-k ezt akr rsi joggal is meg tudjk tenni...
-
8/3/2019 Slides 07 Task Implementation
4/20
Folyamatok ltrehozsa
OS specifikus rendszerhvs (pl. CreateProcess(), fork(),
stb.).
Szl/gyermek viszony a ltrehoz s a ltrehozott kztt.
o Process fa (process tree)
o A szl erforrsaihoz hozzfrs tbbnyire konfigurlhat
mindenhez semmihez .
BME-MIT 2010, Minden jog fenntartva 4. lap
o A szl megvrhatja a gyermek terminldst, vagy futhat vele
prhuzamosan.
o Paramterezhet a gyermek (command line).
UNIX fork() rszletesen trgyalsra kerl ksbb.
Sok adminisztrci, erforrs ignyes.
-
8/3/2019 Slides 07 Task Implementation
5/20
Folyamatok kommunikcija
A folyamatoknak egytt kell mkdnik (ksbb lesz rlarszletesen sz).
o Ehhez kommuniklniuk kell.
Kt tetszleges folyamat nem tud kzs memrinkeresztl kommuniklni.
o Az MMU s a virtulis memria ppen ezt kvnja lehetetlenn
BME-MIT 2010, Minden jog fenntartva 5. lap
enn szepar c .
o Csak OS rendszerhvsokon keresztl tudnak kommuniklni, amierforrs ignyes.
Hatkony a vdelem/szeparci szempontjbl.
Nem hatkony mdja a prhuzamos, ersen sszefggfeladatok megoldsnak.
o Pl. akr GUI + szmtsignyes feladat (WORD jraszeds)
-
8/3/2019 Slides 07 Task Implementation
6/20
Folyamatok befejezse
OS specifikus rendszerhvs (pl. TerminateProcess(),
exit(), stb.).
Nyitott, hasznlatban lv erforrsokat le kell zrni.
o Pl. nyitott file-ok, stb.
A szl megkapja a visszatrsi rtket, tbbnyire egy
BME-MIT 2010, Minden jog fenntartva 6. lap
.
Mi trtnik, ha a szl folyamat befejezdik, de a
gyermek nem?
o OS fgg megvalsts, tipikus megoldsok:
Alaprtelmezett szl folyamat (pl. UNIX init folyamat).
A gyermek automatikus befejezse (cascading termination).
Sok adminisztrci, erforrs ignyes.
-
8/3/2019 Slides 07 Task Implementation
7/20
Folyamatok rtkelse
Vdelmi/szeparcis szempontbl j megolds, deerforrs ignyes:
o Folyamat ltrehozsa s megszntetse.
o Folyamatok kztti kommunikci s erforrs megoszts.
Megolds: Szl (thread) bevezetse:
o A szl a CPU hasznlat alaprtelmezett egysge, magban
BME-MIT 2010, Minden jog fenntartva 7. lap
sze venc s .o Sajt virtulis CPU-ja van, s sajt verem ll rendelkezsre.
o A kd, adat, s halom, s egyb erforrsok (pl. file)tekintetben osztozik azokkal a tovbbi szlakkal, amelyekkel
azonos folyamat kontextusban fut. Folyamat = nehzsly folyamat (heavyweight process)
Szl = pehelysly folyamat (lightweight process)
-
8/3/2019 Slides 07 Task Implementation
8/20
Folyamat s szl eltrse brn
Kd Adat
Halom
Verem
Er-forrsok
CPU
Kd
Adat
Halom
Er-forrsok
CPU
Verem
CPU
Verem
CPU
Verem
folyamat
BME-MIT 2010, Minden jog fenntartva 8. lap
Egyszlastiszta folyamat alap rendszer
Tbbszl rendszerfolyamat alapon
...
folyamat
-
8/3/2019 Slides 07 Task Implementation
9/20
Szlak tmogatsa
Jelenleg a modern opercis rendszerek natvmdon tmogatjk szlak ltrehozst.
Windows:
o Program v. szolgltats = folyamat, folyamaton bellszlak.
BME-MIT 2010, Minden jog fenntartva 9. lap
.
Linux:
o Program v. daemon = folyamat, folyamaton bellszlak.
o Az temez task-okat temez, amik lehetnekfolyamatok vagy szlak.
-
8/3/2019 Slides 07 Task Implementation
10/20
Felhasznl md szlak
Korbban a UNIX alatt (Linux alatt is).
o green threads
Az OS csak folyamat szintet ismer. Szksg van szlakra.
o Felhasznli md szl knyvtrak...
BME-MIT 2010, Minden jog fenntartva 10. lap
Az OS csak a folyamatot tudja temezni, ha az fut,akkor azon bell a felhasznli md szl knyvtrsajt temezje fut.
o Tbb szl felel meg egyetlen temezsi egysgnek! Nem tudja kihasznlni a tbb processzoros rendszerek
elnyeit.
-
8/3/2019 Slides 07 Task Implementation
11/20
Szlak tmogatsa (ltrehozsa)
Pl. Win32 API, Pthreads, JAVA thread
Win32: CreateThread() bonyolult paramterezssel.
Pthreads: POSIX threads pl. Linux s ms UNIX varinsokkernel vagy akr user szinten (csak viselkedst ad meg).
JAVA (VM a folyamat, VM-en bell szl):
BME-MIT 2010, Minden jog fenntartva 11. lap
o
Thread osztlybl szrmaztatvao Runnable interface megvalstsa
o A JAVA platform-specifikusan valstja meg a szlat:
Natv OS specifikus szl (one-to-one, tipikus).
JAVA specifikus szlak (many-to-one) egy natv OS szlra vagy folyamatralekpezve.
many-to-many lekpzs (erforrs szempontok miatt, egyre ritkbb).
-
8/3/2019 Slides 07 Task Implementation
12/20
Szlak alkalmazsnak elnyei
Kis erforrs igny a ltrehozsuk smegszntetsk.
o Kb. egy nagysgrenddel gyorsabb mrsek szerint.
Alkalmazson belli tbbszlsg tmogatsa.
o A GUI vlaszol, mg ha httrben csinl is valamit az
BME-MIT 2010, Minden jog fenntartva 12. lap
. .
Gyors kommunikci kzs memriban azazonos folyamat kontextusban fut szlakra.
o
Csak a verem szl specifikus, a tbbi osztott. Sklzhatsg.
o Alkalmazson bell kihasznlhat tbb CPU.
-
8/3/2019 Slides 07 Task Implementation
13/20
Szlak alkalmazsnak kvetkezmnyei
A kzs memrin keresztli kommunikci
veszlyes.
o
A kommunikcira hasznlt memriaterletek(struktrk vagy objektumok) konzisztencija srlhet.
o Tbb elads szl majd errl a tmrl (klcsns
BME-MIT 2010, Minden jog fenntartva 13. lap
iz r sna ogju maj a mego st vni .o Eltr folyamatok kontextusban fut szlak
kommunikcija az OS-en keresztl trtnik.
Erre ritkbban van szksg, mivel a szorosansszekapcsold (sokat kommunikl) feladatokmegvalsthatak egy folyamaton bell
-
8/3/2019 Slides 07 Task Implementation
14/20
HW tmogats
Thread1
Thread2
ThreadM
Virtulis memria MMU-val Csak fizikai memria, MMU nlkl(pl. egyes begyazott OS-ek)
BME-MIT 2010, Minden jog fenntartva 14. lap
CPU CPU
Multiple AddressSpace OS
Single AddressSpace OS
Process
1
Process
2
Process
N
Thread1
Thread2
ThreadN
MMU
-
8/3/2019 Slides 07 Task Implementation
15/20
HW tmogats
Thread1
Thread2
ThreadM
Virtulis memria MMU-val Csak fizikai memria, MMU nlkl(pl. egyes begyazott OS-ek)
BME-MIT 2010, Minden jog fenntartva 15. lap
CPU CPU
Multiple AddressSpace OS
Single AddressSpace OS
Process
1
Process
2
Process
N
Thread1
Thread2
ThreadN
MMU
Nincs MMU vagy nem
hasznljuk
-
8/3/2019 Slides 07 Task Implementation
16/20
Coroutine s fiber (rost?)
Kooperatv multitasking
o Folyamaton vagy szlon bell.
OS tmogatssal vagy felhasznl megvalsts. Az OS szinten a coroutine-eket vagy fiber-eket tartalmazfolyamat vagy szl kerl temezsre
BME-MIT 2010, Minden jog fenntartva 16. lap
,
implementlnia (kooperatv temezs).
o Coroutine: programnyelvi szint elem
Haskell, JavaScript, Modula-2, Perl, Python, Ruby, etc.
o Fiber: rendszerszint eszkz
Win32 API (ConvertThreadToFiber and CreateFiber).
Symbian
-
8/3/2019 Slides 07 Task Implementation
17/20
Coroutine
Subroutine ltalnostsao Subroutine:
LIFO (Last In/called, First Out/returns). Egy belpsi pont, s tbb kilpsi pont (return/exit)
A vermet hasznlja a paramterek s a visszatrsi
BME-MIT 2010, Minden jog fenntartva 17. lap
.
o Coroutine: Az els belpsi pont azonos a subroutine-nal.
Utna viszont a legutols kilpsi pontra tr vissza!
tlps a yield to Coroutine_id utastssal lehet.
Nem hasznlhat vermet, hiszen az megtelne (ide-odalpked, igazbl nem tr vissza).
-
8/3/2019 Slides 07 Task Implementation
18/20
Coroutine plda, 1. hvsvar q := new queue
coroutine produce
loop while q is not full
create some new items
add the items to q
yield to consume
BME-MIT 2010, Minden jog fenntartva 18. lap
coroutine consume
loop while q is not empty
remove some items from q
use the items
yield to produce
-
8/3/2019 Slides 07 Task Implementation
19/20
-
8/3/2019 Slides 07 Task Implementation
20/20
Coroutine s fiber rtkelse
Kooperatv multitasking-gal megoldhat problmk
esetn.
Verem alap krnyezetben (pl. C/C++) nehz az
implementcija a coroutine-nak (fiber rendszerszint).
Egyes kooperatv egyttmkdst ignyl feladatok jl
BME-MIT 2010, Minden jog fenntartva 20. lap
.
Nem szksges osztozni az erforrsokon (kooperatv):
o Nem kellenek OS hvsok.
o Kisebb erforrs igny.
Az OS temezi egy szlban/folyamatban ket, vagyis
egyetlen vgrehajt egysget tudnak csak kihasznlni.