Top Banner

of 39

Ch02A Process

Jul 05, 2018

Download

Documents

Dinesh Tewatia
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/16/2019 Ch02A Process

    1/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.1

    2.A Quaûn lyù quaù trình

    Khaùi nieäm cô baûn Ñònh thôøi CPU Caùc taùc vuï cô baûn: taïo/keát thuùc quaù

    trnh

    !"ï coän# taùc #i"$a caùc quaù trnh %iao tieá& #i"$a caùc quaù trnh

  • 8/16/2019 Ch02A Process

    2/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.2

    Khaùi nieäm cô baûn

    'eä thoán# maù( t)nh th"ïc thi nhie*u ch"ôn# trnh

    khaùc nhau+ ,atch -(-tem: .ob-+  ime0-hare1 -(-tem-: u-er &ro#ram-2 ta-k-+  3ob ≈ &roce--

    Quaù trình 4&roce--5+ moät ch"ôn# trnh 6an# th"ïc thi

      7oät quaù trnh bao #o*m+ Text section 4&ro#ram co1e52 data section 4ch"ùa #8oba8

    variab8e-5+ 'oaït 6oän# hieän thôøi: &ro#ram counter 4PC52 &roce-- -tatu-

    9or1 4P!52 -tack &ointer 4!P52 memor( mana#ementre#i-ter-

  • 8/16/2019 Ch02A Process

    3/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.3

    Caùc b"ôùc naï& ch"ôn# trnh vaøoboä nhôù

  • 8/16/2019 Ch02A Process

    4/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.4

     "ø ch"ôn# trnh 6eán quaù trnh

    !o"!a#co$%

    $ata

    '%cuta()% (ina!y *i)%+)oa$ #o$u)%,

    !o"!a#co$%

    $ata

    -tac

    P!oc%-- i#a"% in#ain #%#o!y

    ;uøn# load module 6e< bie

  • 8/16/2019 Ch02A Process

    5/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A./

    Khôûi taïo quaù trnh

    Caùc b"ôùc heä 6ie*u haønh khôûi taïo quaù trnh

    + Caá& &haùt moät ñònh danh 1u( nhaát 4&roce-- numberha( &roce-- i1enti?er2 &i15 cho quaù trnh

    + Caá& &haùt kho@n# #ian nhôù 6e< naï& quaù trnh+ Khôûi taïo khoái 1"$ 8ieäu Process Control Block  4PC,5 cho

    quaù trnh PC, 8aø nôi heä 6ie*u haønh 8"u caùc tho@n# tin ve*

    quaù trnh+  hieát 8aä& caùc moái 8ie@n heä ca*n thieát 4v1: -aA& PC,

    vaøo haøn# 6ôïi 6ònh thôøi2B5

  • 8/16/2019 Ch02A Process

    6/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.0

    Caùc traïn# thaùi cuûa quaùtrnh

     Caùc traïng thaùi cuûa quaù trình 4&roce-- -tate-5:

    + ne! quaù trnh v"øa 6"ôïc taïo+ read" ! quaù trnh 6a$ coù 6uû taøi n#u(e@n2 ch coøn ca*n

    CPU+ running! caùc 8eänh cuûa quaù trnh 6an# 6"ôïc th"ïc thi+

    aiting! ha( 8aø #locked2 quaù trnh 6ôïi D/E hoaøn taát2 t)nhieäuF+ terminated! quaù trnh 6a$ keát thuùcF

  • 8/16/2019 Ch02A Process

    7/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Caùc traïn# thaùi cuûa quaùtrnh 4tt5

    !%a$y !unnin"

    $i-atch

    int%!!ut o! %5%ntco#)%tion

    o!%5%nt 6ait

    n%6t%!#inat%$

    6aitin"

    a$#it %'it

    Chu(e

  • 8/16/2019 Ch02A Process

    8/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.7

    G) 1uï ve* traïn# thaùi quaù trnh

    /* test.c */int main(int argc, char** argv){ printf(“Hello world\n");

      eit(!);

    ,ie@n 1òch ch"ôn# trnh tron#>inuHgcc test.c #o test

     h"ïc thi ch"ôn# trnh te-t

    ./test

     ron# heä thoán# -e$ coù moätquaù trnh test  6"ôïc taïo ra2th"ïc thi vaø keát thuùcF

    Chuo=i traïn# thaùi

    cuûa quaù trnh te-tnh" -au 4tr"ôøn# hôï&toát nhaát5:+ ne9

    + rea1(+ runnin#+ 9aitin# 41o chôø D/E khi

    #oïi &rintI5+ rea1(

    + runnin#+ terminate1

  • 8/16/2019 Ch02A Process

    9/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.8

    Proce-- contro8 b8ock

    Ña$ thaá( 8aø mo=i quaù trnh tron# heä thoán#

    6e*u 6"ôïc caá& &haùt moät Process Control Block  4PC,5

    PC, 8aø moät tron# caùc caáu truùc 1"$ 8ieäuquan troïn# nhaát cuûa heä 6ie*u haønh

    G) 1uï 8a(out cuûa moätPC,:4tr"ôøn# &ointer 1uøn#

    6e< 8ie@n keát caùc PC,-thaønh moät 8inke1 8i-t5

  • 8/16/2019 Ch02A Process

    10/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Chu(e

  • 8/16/2019 Ch02A Process

    11/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Chu(e

  • 8/16/2019 Ch02A Process

    12/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

     e@u ca*u 6oái vôùi heä 6ie*u haønh ve*quaûn 8(ù quaù trnh

    'o= trôï -"ï th"ïc thi 8ua@n &hie@n #i"$a nhie*u quaù

    trnh+ 'ieäu -uaát -"û 1uïn# CPU

    +  hôøi #ian 6aù& "ùn#

    Pha@n &hoái taøi n#u(e@n heä thoán# hôï& 8(ù+ traùnh 1ea18ock2 tr hoa$n vo@ haïn 6ònh2B

    Cun# caá& cô cheá #iao tieá& vaø 6o*n# boä hoaït

    6oän# caùc quaù trnh Cun# caá& cô cheá ho= trôï u-er taïo/keát thuùc

    quaù trnh

  • 8/16/2019 Ch02A Process

    13/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    !unnin"

    !%a$y

    6aitin"

    Luaûn 8(ù caùc quaù trnh: caùchaøn# 6ôïi

    11 4 2 1

    18 11

    !oc%-- nu#(%! 

    caùc PC,

    Coù # -ai tron# v) 1uïM

    G) 1uï 

  • 8/16/2019 Ch02A Process

    14/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Ñònh thôøi quaù trnh

     aïi -ao &haûi 6ònh thôøiM

    + 7u8ti&ro#rammin# Coù nhie*u quaù trnh &haûi th"ïc thi 8ua@n &hie@n nhau 7uïc tie@u: c"ïc 6aïi hieäu -uaát -"û 1uïn# cuûa CPU

    +  ime0-harin#

    Cho &heù& u-er- t"ôn# taùc vôùi quaù trnh 6an# th"ïcthi 7uïc tie@u: toái thie

  • 8/16/2019 Ch02A Process

    15/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Caùc haøn# 6ôïi 6ònh thôøi  3ob queue

    Nea1( queue ;evice queue- B

  • 8/16/2019 Ch02A Process

    16/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

     he@m me1ium0term -che1u8in#

    Ño@i khi heä 6ie*u haønh 4nh" time0-harin# -(-tem5

    coù the@m me1ium0term -che1u8in# 6e< 6ie*uchnh m"ùc 6oä mu8ti&ro#rammin# cuûa heäthoán#

    +edium,term scheduler 

    + chu(e

  • 8/16/2019 Ch02A Process

    17/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Caùc taùc vuï 6oái vôùi quaùtrnh

     aïo quaù trnh môùi 4&roce-- creation5

    + 7oät quaù trnh coù the< taïo quaù trnh môùi tho@n# quamoät -(-tem ca88 4v1: haøm Iork tron# UniH5 G) 1uï: 4UniH5 Khi u-er 6an# nhaä& heä thoán#2 moät

    comman1 inter&reter 4-he885 -e$ 6"ôïc taïo ra cho u-er  Luaù trnh 6"ôïc taïo 8aø quaù trnh con cuûa quaù trnh taïo

    4quaù trnh cha5- Luan heä cha0con 6ònh n#hOa moät ca."quaù trình-

  • 8/16/2019 Ch02A Process

    18/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Ca@( quaù trnh tron# >inuH/UniH

    !oot

    -6a%! a"%$a%#on init

    (a-h(a-h (a-h

    #$i! "!%)-"cc

    G) 1uï 

  • 8/16/2019 Ch02A Process

    19/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Caùc taùc vuï 6oái vôùi quaùtrnh

     aïo quaù trnh môùi

    + Chia -eû taøi n#u(e@n cuûa quaù trnh cha Luaù trnh cha vaø con chia -eû moïi taøi n#u(e@n Luaù trnh con chia -eû moät &ha*n taøi n#u(e@n cuûa

    cha+  rnh t"ï th"ïc thi

    Luaù trnh cha vaø con th"ïc thi 6o*n# thôøi4concurrent8(5

    Luaù trnh cha 6ôïi 6eán khi caùc quaù trnh con keátthuùcF

  • 8/16/2019 Ch02A Process

    20/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Ge* quan heä cha/con

    Kho@n# #ian 6òa ch 4a11re-- -&ace5

    + Kho@n# #ian 6òa ch cuûa quaù trnh con 6"ôïc nha@nbaûn t"ø cha

    + Kho@n# #ian 6òa ch cuûa quaù trnh con 6"ôïc khôûi taïot"ø tem&8ateF

    G) 1uï tron# UJDQ/>inuH+ !(-tem ca88 Iork45 taïo moät quaù trnh môùi+ !(-tem ca88 eHec45 1uøn# -au Iork45 6e< naï& moät ch"ôn#

    trnh môùi vaøo kho@n# #ian nhôù cuûa quaù trnh môùi

    6o*n# boä

  • 8/16/2019 Ch02A Process

    21/39 Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    G) 1uï taïo &roce-- vôùi Iork45$incl%de &stdio.h' 

    $incl%de &%nistd.h' 

    int main (int argc, char *argv){int pid;

    /* create a new process */

     pid for+();

    if (pid ' !){

     printf(“his is parent process-);

     wait(00);

    eit(!);

    else if (pid !)

    {

     printf(“his is child process-);

    eeclp(“/1in/ls-, “ls-, 00);eit(!);

    else {

     printf(“2or+ error\n-);

    eit(34);

  • 8/16/2019 Ch02A Process

    22/39

  • 8/16/2019 Ch02A Process

    23/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Coän# taùc #i"$a caùc quaùtrnh

     ron# quaù trnh th"ïc thi2 caùc quaù trnh coù the<

    co(ng taùc 4coo&erate5 6e< hoaøn thaønh co@n# vieäc

    Caùc quaù trnh coän# taùc 6e<+ Chia -eû 1"$ 8ieäu 4inIormation -harin#5+  an# toác t)nh toaùn 4com&utationa8 -&ee1u&5

    Jeáu heä thoán# coù nhie*u CPU2 chia co@n# vieäc t)nhtoaùn thaønh nhie*u co@n# vieäc t)nh toaùn nhoû chaï(-on# -on#

    +  h"ïc hieän moät co@n# vieäc chun# Qa@( 1"ïn# moät &ha*n me*m &h"ùc taï& baSn# caùch

    chia thaønh caùc mo1u8e/&roce-- hôï& taùc nhau

    !"ï coän# taùc #i"$a caùc quaù trnh (e@u ca*u heä6ie*u haønh ho= trôï cô cheá #iao tieá& vaø cô cheá6o*n# boä hoaït 6oän# cuûa caùc quaù trnh

  • 8/16/2019 Ch02A Process

    24/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    ,aøi toaùn &ro1ucer0con-umer

    G) 1uï coän# taùc #i"$a caùc quaù trnh: #a*i toaùn

     producer,consumer + Producer  taïo ra caùc 1"$ 8ieäu vaø consumer  tie@u thuï2 -"û

    1uïn# caùc 1"$ 8ieäu 6oùF !"ï trao 6o

  • 8/16/2019 Ch02A Process

    25/39

  • 8/16/2019 Ch02A Process

    26/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    7e--a#e &a--in# -(-tem >aøm theá naøo 6e< caùc quaù trnh #iao tieá& nhauM Caùc

    vaán 6e*:+ $aming %iao tieá& tr"ïc tieá&

    + -en14P2 m-#5: #"ûi tho@n# 6ieä& 6eán quaù trnh P

    + receive4L2 m-#5: nhaän tho@n# 6ieä& 6eán t"ø quaù trnh L

    %iao tieá& #iaùn tieá&: tho@n# qua mail#ox  ha( port 

    + -en14T2 m-#5: #"ûi tho@n# 6ieä& 6eán mai8boH T

    + receive4,2 m-#5: nhaän tho@n# 6ieä& t"ø mai8boH ,

    + 1"nchroni2ation: b8ockin# -en12 nonb8ockin# -en12 b8ockin# receive2nonb8ockin# receive

    + Bu/ering: 1uøn# queue 6e< taïm ch"ùa caùc me--a#e

    ero ca&acit( 4no buRerin#5

    ,oun1e1 ca&acit(: 6oä 1aøi cuûa queue 8aø #iôùi haïn

    Unboun1e1 ca&acit(: 6oä 1aøi cuûa queue 8aø kho@n# #iôùi haïn

  • 8/16/2019 Ch02A Process

    27/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    7o@ hnh #iao tieá& c8ient0-erver

    !ocket-

    Nemote Proce1ure Ca88- 4NPC5

    Nemote 7etho1 Dnvocation 4N7D5

  • 8/16/2019 Ch02A Process

    28/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    !ocket

    1ocket 

    + Ña*u cuoái 4en1&oint5 cuûa moät ke@nh #iao tieá&+ Cô cheá #iao tieá& m"ùc thaá& 48o908eve852 #"ûi nhaän moät

    chuo=i b(te 1"$ 8ieäu kho@n# caáu truùc 4un-tructure1-tream oI b(te-5

    + %iao tieá& qua -ocket: connection8e-- vaø connection0

    oriente1+ >aä& trnh -ocket

    ,erke8e( -ocket 4,!; -ocket52 in!ock

  • 8/16/2019 Ch02A Process

    29/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Cô cheá #"ûi/nhaän qua -ocket

    Haøm thö

    vieän Dieãn giaûi -ocket45 aïo moät -ocket

    bin145%aAn moät 6òa ch cuïc boä vaøo moät-ocket

    8i-ten45 Qaùc 6ònh 6oä 8ôùn/k)ch th"ôùc haøn# 6ôïi

    acce&t45 4-erver5 chôø keát noái 6eán t"ø c8ient

    connect45 4c8ient5 keát noái 6eán moät -erver

    -en145/-en1to45%"ûi 1"$ 8ieäu qua ke@nh #iao tieá& 6a$thieát 8aä&

    recv45/recvIrom45 Jhaän 1"$ 8ieäu qua ke@nh #iao tieá&

    c8o-e45 Ñoùn# keát noái

  • 8/16/2019 Ch02A Process

    30/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Connection8e-- -ocket

    -oc%t+,

    (in$+,

    P!oc%-- A

    -%n$to+,

    !%c5*!o#+,

    -oc%t+,

    (in$+,

    P!oc%-- B

    -%n$to+,

    !%c5*!o#+,

    c)o-%+, c)o-%+,

    : -%n$to+-oc%t; (u**%!; (u**%!

  • 8/16/2019 Ch02A Process

    31/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Connection0oriente1 -ocket

    : -%n$+-oc%t; (u**%!; (u**%!?5ou-, co##unication

  • 8/16/2019 Ch02A Process

    32/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Nemote &roce1ure ca88

    3emote procedure call 4NPC5

    + Cho &heù& moät ch"ôn# trnh #oïi moät thuû tuïc naSmtre@n maù( t)nh ôû Ha qua maïn#F

    Caùc vaán 6e* khi hieän th"ïc NPC

    +  ru(e*n tham -oá vaø keát quaû traû ve* cuûa 8ôøi #oïi thuûtuïc+ Chu(e

  • 8/16/2019 Ch02A Process

    33/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    !ô 6o* hoaït 6oän# cuûa NPC

    C)i%nt

    =%!5%! 

    %oïi remote&roce1ure

    @%u%-t @%)y

    Keát quaû traû ve*

    chôø keát quaû traû ve*

    4-u-&en15

    %oïi thuû tuïc cuïc boävaø traû ve* keát quaû+()oc%$, +()oc%$,

    t

  • 8/16/2019 Ch02A Process

    34/39

  • 8/16/2019 Ch02A Process

    35/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

     ru(e*n tham -oá tron# NPC

    +arshalling

    + qui taAc tru(e*n tham -oá vaø chu(e

  • 8/16/2019 Ch02A Process

    36/39

    ù

  • 8/16/2019 Ch02A Process

    37/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Luaù trnh th"ïc hieän NPC

    ;uøn# d"namic

    #inding 6e< Haùc 6ònh&ort number cuûa NPCQ

  • 8/16/2019 Ch02A Process

    38/39

     Khoa Khoa Hoïc & Kyõ Thuaät Maùy Tính – Ñaïi Hoïc Baùch Khoa TP HCM 2.A.

    Nemote metho1 invocation

    3emote +ethod 0n4ocation 4N7D5

    + Cho &heù& moät ch"ôn# trnh 3ava coù the< #oïi moät&h"ôn# th"ùc 4metho15 cuûa moät ño5i t%)ïng )û xa2 n#hOa8aø moät 6oái t"ôïn# ôû taïi moät maù( aûo 3ava khaùc

    ô h á h 88i

  • 8/16/2019 Ch02A Process

    39/39

    Cô cheá mar-ha88in# tron# N7D

    Ph"ôn# th"ùc 6"ôïc trieäu #oïi coù 1aïn# -au:

    boo8ean -ome7etho14Eb.ect H2 Eb.ect (5