Slides 07 Task Implementation

download Slides 07 Task Implementation

of 20

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.