OS 2 - Process & Scheduling

Embed Size (px)

Citation preview

  • 7/31/2019 OS 2 - Process & Scheduling

    1/65

    TIN TRNH IU PHI TIN TRNH

    GV: MAI Xun [email protected]

    Khoa Cng NghThng Tin

    i HcCng NghipTPHCM

    1

  • 7/31/2019 OS 2 - Process & Scheduling

    2/65

  • 7/31/2019 OS 2 - Process & Scheduling

    3/65

    Khi nim a Nhim v a C hng (1)

    V sao mun x l ng thi nhiu cng victrn my tnh ?

    3

    tng hiu sut s dng CPU

  • 7/31/2019 OS 2 - Process & Scheduling

    4/65

    Khi nim a Nhim v a C hng (2)

    V sao mun x l ng thi nhiu cng victrn my tnh ?

    o Job : kq = a*b + c*d;

    4

    tng tc x l

  • 7/31/2019 OS 2 - Process & Scheduling

    5/65

    Khi nim a Nhim v a C hng (3)

    a nhim (Multitasking): cho php nhiu tc v/cng vic c x l ng thi

    o Ngi dng lun mong mun 1 HH a nhimo

    Nhng: My tnh thng ch c 1 CPU? a chng (Multiprogramming): cho phpnhiu chng trnh c thc hin ng thi (trn 1 CPU)

    o Gi lp nhiuCPU o t 1 CPU tht cho php thihnh nhiu chng trnh ng thi.

    o o ho bng cch no ? Xy dng cc thut ton lun chuyn CPU gia cc chng trnh ng dng.

    5

  • 7/31/2019 OS 2 - Process & Scheduling

    6/65

    X l ng hnh (1)

    Kh khno Ti nguyn gii hn,ng dng v hn

    o Nhiu hot ng anxen

    ?? Phn chia tinguyn?

    ?? Chia s ti nguyn??? Bo v?

    6

    HH : Gii quyt nhiu cng vicng thi ? Lm sao y ???

  • 7/31/2019 OS 2 - Process & Scheduling

    7/65

    X l ng hnh (2)

    Giiphpo Chia tr, c lp cc hot ngo Mi thi im ch gii quyt1 yu cuo

    o ho ti nguyn: bin t thnh nhiu

    7HH: Ai cng c phn khi n lt m!

  • 7/31/2019 OS 2 - Process & Scheduling

    8/65

    Tin Trnh

    Mt chng trnh ang trong qu trnh thc hinMi tintrnh s hu

    o MtCPU (o) ringo Mtkhng gian nh ringo Chim gi1 s ti nguyn ca h thng

    Vd: Word chy 2 ln 2 tin trnh khc nhauo Microsoft Word [He_dieu_hanh.doc]o Microsoft Word [Mang_can_ban.doc]

    8

  • 7/31/2019 OS 2 - Process & Scheduling

    9/65

    Chng trnh - Tin trnh

    Chng trnh (Program)o Thc th th ng(passive)o Cha cc ch th iu khinmy tnh

    Tin trnh (Process)o Thc th hot ng (active)

    9

  • 7/31/2019 OS 2 - Process & Scheduling

    10/65

    Trng thi tin trnh (1)

    10

  • 7/31/2019 OS 2 - Process & Scheduling

    11/65

    Trng thi tin trnh (2)

    Sn sng ( ready ) o Tin trnh i gn cho CPU x l

    Thc thi ( running ) o Tin trnh ang c CPU thc thi cc lnh

    i, B chn (Waiting, blocked ) o Tin trnh i mt s kin no

    Xut nhp d liu Mt tintrnh khc to ra

    Khi ng (start ) o Tin trnh va c thc hin ngng ( halted )

    o Tin trnh kt thc v s ri khi h thng

    11

  • 7/31/2019 OS 2 - Process & Scheduling

    12/65

    Khi qun l tin trnh

    PCB (Process Control Block)o nh danh (Process ID)o Trng thi tin trnh (State)o Ng cnh tin trnh (Context)

    Trng thi CPU B x l (cho mynhiu CPU) B nhchnh Ti nguyn s dng/to lp

    o Thng tin giaotip(Relative) Tintrnh cha, tin trnh con

    u tino Thng tinthng k

    Thigian s dng CPU Thigian ch

    12

  • 7/31/2019 OS 2 - Process & Scheduling

    13/65

    Cc thao tc trn tin trnh

    To lp tin trnhKt thc tin trnhThay i trng thitin trnh :

    o Assign()o Block()o Awake()o Suspend()o Resume()

    13

  • 7/31/2019 OS 2 - Process & Scheduling

    14/65

    To lp tin trnh (1)

    Cc tnh hung :o Khi ngbatch jobo User logs ono Kchhot 1 dch v (print...)o Tin trnh gihm to mt tintrnh khc

    Cc tin trnh c th to tintrnh con, hnhthnh cy tin trnh trongh thngCc tin trnh mi c to c th

    o Tha hng ti nguyn t chao c cp ti nguyn mi

    14

  • 7/31/2019 OS 2 - Process & Scheduling

    15/65

  • 7/31/2019 OS 2 - Process & Scheduling

    16/65

    Kt thc tin trnh

    Tnh hung :o Tin trnh x l xonglnh cuicng hay giexit ()o Ktthc Batch job, Halt instructiono User logs off o Do li chng trnh

    Mt tintrnh c th kt thc 1 tin trnh khcnu c ID(nh danh) ca tin trnh kia.Vd: kill -s SIGKILL 1234Cng vic ca HHkhi kt thc 1 tin trnh?

    16

  • 7/31/2019 OS 2 - Process & Scheduling

    17/65

    M hnh a tin trnh(MultiProcesses)

    H thng= mt tp cc tin trnh hot ngng thiCc tin trnh c lp vi nhau khng c s

    trao i thng tin a tin trnh: thi hnh ng thi cc chngtrnh, ch th trong my c nhiu CPU

    17

  • 7/31/2019 OS 2 - Process & Scheduling

    18/65

    M hnh a tiu trnh (MultiThreads)

    Nhiu tnh hung cn c nhiu dng x l ngthi hot ng trong mt khng gian a ch cng chia s ti nguyn

    o Gn nh songsongo Nh cc tin trnh c lp

    Tiu trnh (Thread)

    18

  • 7/31/2019 OS 2 - Process & Scheduling

    19/65

    Tiu trnh

    Mt n v x l c bn trong h thngMi tiutrnh

    o X l tun t on code ca n

    o S hu mtcon tr lnh tp cc thanh ghi mtvng nh stack ring

    Cc tiu trnh chia s CPU ging nh cch catin trnh

    19

  • 7/31/2019 OS 2 - Process & Scheduling

    20/65

    Tiu trnh & Tin trnh

    Tiu trnh : 1 dng x lTin trnh :

    o 1 khng gian a ch

    o 1 hoc nhiu tiutrnhCc tin trnh l c lpCc tiu trnh trong cng 1tin trnh khng cs bov ln nhau

    20

  • 7/31/2019 OS 2 - Process & Scheduling

    21/65

    Tiu trnh ht nhn (Kernel Thread)

    Khi nim tiu trnh(Thread) c xy dngbn trong ht nhn (Kernel)

    n v x l l tiu trnh

    21

  • 7/31/2019 OS 2 - Process & Scheduling

    22/65

    Phn chia CPU

    1 CPU vt l : lm th no to cm gic mitin trnh s hu CPU ring ca mnh?Lun chuyn CPU gia cc tin trnh

    2 thnh phn m nhim vai tr iu phi:o Scheduler chn tintrnho Dispatcher chuyn CPU cho tin trnh c chn

    22

  • 7/31/2019 OS 2 - Process & Scheduling

    23/65

    Danh sch tin trnh

    Tng ng vi cc trng thi ca tin trnh

    23

  • 7/31/2019 OS 2 - Process & Scheduling

    24/65

    Scheduler

    Nhim v: quyt nh chn mt tin trnh cppht CPU

    o ng c vin = {Cctin trnh ready list}o 0 tin trnh: CPUrnh ri(idle)!o 1 tin trnh: hinnhin chno >1: Da vo cc thut ton iu phi

    24

  • 7/31/2019 OS 2 - Process & Scheduling

    25/65

    Dispatcher

    Nhim v: Chuyn i ng cnhXt vd

    o Tin trnh A ang dng CPU 1lc th b HH thu hiCPU

    o HH cpCPU cho B dng 1 lc, HHthu hi liCPUo HH cpCPU tr licho A

    Gi tr cc thanh ghi gia nhng ln chuyn iCPU?

    Kch bn:o Lu ng cnh tin trnh hin hnho Np ng cnh tin trnh c chn k tip

    25

  • 7/31/2019 OS 2 - Process & Scheduling

    26/65

    H iu hnh & CPU

    HH cng l 1 phn mm cn s dng CPUCu hi: Khi tin trnh A ang chim CPU, lmth no HH c th thu hi CPU li c?

    o p buc thnh thong trCPU li cho HH?o My tnhphi c 2 CPU, 1 dnh ring cho HH?o HH s dng ngt ng h (ngt iu phi, interrupt)

    kim sot h thng Mi khi c ngt ng h, HH kim tra xem c cn thu hi

    CPU t 1 tin trnh no li hay khng ? HH ch thu hi CPU khi c ngt ng h pht sinh. Khong thi gian gia 2 ln ngt iu phi gi l chu k

    ng h (ti thiu l 18.2 ln/ giy)

    26

  • 7/31/2019 OS 2 - Process & Scheduling

    27/65

    Ngt ng h (1)

    C ch

    27

    Interrupt

    Trnh x linterrupt

  • 7/31/2019 OS 2 - Process & Scheduling

    28/65

    Ngt ng h (2)

    Cc b c x l interrupto H iu hnh chim li quyn thc thio Lu tr trng thi ca qu trnh b ngto Phn tch ngt (dng phn cng)o Thc thi chng trnh x l ngt

    Interrupt handler o Chn mt qu trnh tip theo chy

    28

  • 7/31/2019 OS 2 - Process & Scheduling

    29/65

    Ngt ng h (3)

    Cc loi interrupto Supervisor call (SVC) interrupt: khi qu trnh yu cu

    dch v ca h thngo I/O interrupt: do cc thit b I/O sinh ra khi chuyn

    trng thio External interrupt: sinh ra t ng h h thng, bn

    phmo Restart interrupt: ngt khi ng li myo

    Program check: sinh ra khi chng trnh thc thi lnhb li (chia cho 0, trn s, )o Machine check: do nh sn xut to ra dnh ring

    cho vic kim tra phn cng

    29

  • 7/31/2019 OS 2 - Process & Scheduling

    30/65

    Chuyn ng cnh (1)

    Chuyn ng cnh (context switching)o Chuyn x l t tin trnh ny sang tin trnh khco Xyra khi c interrupt

    Quy trnh:o Lu trng thi ca tin trnh hin hnho Chn tin trnh mi x lo a trng thi ca tin trnh mi vo phn cng x l

    Mt ng cnh(context) bao gm:o Tp thanh ghi cha thng tin trng thi tin trnh v trng

    thi CPU, b nh ca tintrnh.Program Status Word (PSW)

    30

  • 7/31/2019 OS 2 - Process & Scheduling

    31/65

    Chuyn ng cnh (2)

    Cc loiPSW:o Old_PSWo Current _PSWo New_PSW

    H thng mt b xl co 1 Current_PSWo 6 New_PSWo 6 Old_PSW (6loi interrupt)

    Qu trnh chuyn ng cnh din ra = s thay igia cc PSW trong h thngo Current_PSW Old_PSWo New_PSW Current_PSW

    31

  • 7/31/2019 OS 2 - Process & Scheduling

    32/65

    La chn tin trnh

    Tc v ca Scheduler Mctiu?

    o S dng CPU hiu quo

    m bo tt c cc tin trnh u tin trin x lTiu chun la chn?o Tt c cc tin trnh u nh nhau?o xut mt u tin cho mi tin trnh?

    Thi im la chn? (Thi im kch hotScheduler())

    32

  • 7/31/2019 OS 2 - Process & Scheduling

    33/65

    Mc tiu iu phi

    Hiu qa (Efficiency)o Thi gian

    p ng (Response time ) Hon tt (Turnaround Time = Tquit -Tarrive):

    Ch (Waiting Time = T in Ready) :o Thng lng (Throughput = #jobs/s)

    Hiu sutTi nguyn Chi ph chuyn i

    Cng bng (Fairness ): Tt c cc tin trnh uc c hi nhn CPU

    33

  • 7/31/2019 OS 2 - Process & Scheduling

    34/65

    Thi im quyt nh iu phi

    iu phi c quyn (non-preemptive scheduling):o tin trnh c chn c quyn c chim CPUo Cc thi im kch hot Scheduler

    Pcur kt thc Pcur: running ->blocked

    iu phi khng c quyn (preemptivescheduling):

    o tin trnh c chn c th bcp CPU bi tin trnh c u tin cao hn

    o Cc thi im kch hot Scheduler Pcur kt thc Pcur: Running -> Blocked Q: Blocked / New -> Ready

    34

  • 7/31/2019 OS 2 - Process & Scheduling

    35/65

    Hai nguyn tc iu phi CPU

    35

  • 7/31/2019 OS 2 - Process & Scheduling

    36/65

    nh gi chin lc iu phi

    S dng 2 i lng o :o Turn-around time= Tquit Tarrive: t lc vo HT n

    khi hon tto Waiting time= T in Ready

    Xt trng hp trung bnho N tin trnho Avg Turn-around time = ( Turn-around timePi)/No Avg Waiting time = ( WaitingtimePi)/N

    36

  • 7/31/2019 OS 2 - Process & Scheduling

    37/65

    Mt s gii thut iu phi

    iu phi hn cht(Deadline Scheduling)FCFS (First Come First Served)SJF (Shortest Job First)

    SRT (Shortest Remaining Time)RR (Round Robin)

    iu phi u tin

    37

    i hi h

  • 7/31/2019 OS 2 - Process & Scheduling

    38/65

    iu phi hn cht(Deadline Scheduling)

    iu phi sao cho cc qu trnh c thc thitheo mt bng thi gian xc nh trcMc ch : hon thnh tc v kp lc

    ng dng : cng nghip, vinthng, qun sRt phc tpCh c gii thutcho tng h thng c th

    38

  • 7/31/2019 OS 2 - Process & Scheduling

    39/65

    FCFS (First comes first served)

    Tin trnh vo RL lu nht c chn trcTheo th t vo RL

    c quyn

    39

  • 7/31/2019 OS 2 - Process & Scheduling

    40/65

    FCFSMinh Ha

    AvgWT = (23+25)/3 = 16

    40

  • 7/31/2019 OS 2 - Process & Scheduling

    41/65

    FCFSNhn xt

    n ginChu ng hin tng tch ly thi gian ch

    o Tin trnh c thi gian x l ngn i tin trnh c thigian x ldi

    C th xy ra tnh trng c chimCPU

    41

  • 7/31/2019 OS 2 - Process & Scheduling

    42/65

    d b

  • 7/31/2019 OS 2 - Process & Scheduling

    43/65

    Round RobinMinh Ha (1)

    Viq=4ms

    43

    R d R bi

  • 7/31/2019 OS 2 - Process & Scheduling

    44/65

    Round RobinMinh Ha (2)

    Viq=4ms

    44

    R d R bi

  • 7/31/2019 OS 2 - Process & Scheduling

    45/65

    Round RobinKhi no kt thc lt s dng CPU

    Ht thi lng q ms (quantum) cho phpTin trnh kt thcTin trnh b kha

    o Ch Rso Ch bin c

    45

    R d R bi

  • 7/31/2019 OS 2 - Process & Scheduling

    46/65

    Round RobinNhn xt

    S dng c ch khng c quynMi tin trnh khng phi i qu luLoi b hin tng c chim CPU

    Hiu qu?o Ph thuc vo vic chn laquantum q

    q qu ln ??? Tng thi gian hi p

    Gim tnh tng tc q qu nh ??? Tng chi ph chuyn i ng cnh

    46

  • 7/31/2019 OS 2 - Process & Scheduling

    47/65

    iu phi vi u tin

    Phn bit tin trnh quan trng>< tin trnh bnhthng

    Tin trnh c u tin cao nht c chn cpCPU trc

    47

  • 7/31/2019 OS 2 - Process & Scheduling

    48/65

    V d: u tin ca HH WinNT

    Tin trnhc u tin 0 v 3 1o 0 ( u tin nh nht): dnh ring cho system idle

    u tin c phn theo nhm:o

    Realtime: (16 - 31) Thch hp cho cc tin trnh thi gian thc Dnh ring cho cc tin trnh ca ngi qun tr h thng

    o Dynamic : (0 - 15) Thch hp cho cc tin trnh ca ngi dng thng Chia thnh 3 mc :

    high (11 - 15) normal (6 - 10) idle (2 - 6)

    48

  • 7/31/2019 OS 2 - Process & Scheduling

    49/65

    Nguyn tc iu phi

    c quyno Lt s dng CPU kt thc khi:

    tintrnh kt thc, tintrnh b kha

    Khng c quyno Lt s dng CPU kt thc khi:

    tintrnh kt thc, tintrnh b kha, C tin trnh vi u tin cao hn voRL

    49

  • 7/31/2019 OS 2 - Process & Scheduling

    50/65

    iu phi u tin

  • 7/31/2019 OS 2 - Process & Scheduling

    51/65

    iu phi u tinNhn xt

    Cch tnh u tin ?o H thnggn : CPU timeso Ngi dng gn tng minh

    Tnh cht u tin :o Tnho ng

    S phn tin trnh c u tin thp ?o Ch lu, lu, lu ...o Tng u tin cho nhng tin trnh ch lu trong

    h thng

    51

  • 7/31/2019 OS 2 - Process & Scheduling

    52/65

    Shortest Job First (SJF)

    L mt dng u tin c bit vi u tino pi= thi_gian_cn_li(Process i)

    C th ci t c quyn hoc khng c quyn

    52

    SJF (c quyn)

  • 7/31/2019 OS 2 - Process & Scheduling

    53/65

    SJF (c quyn)Minh ha (1)

    53

  • 7/31/2019 OS 2 - Process & Scheduling

    54/65

    SJF (khng c quyn)

  • 7/31/2019 OS 2 - Process & Scheduling

    55/65

    SJF (khng c quyn)Minh ha (1)

    55

    SJF (khng c quyn)

  • 7/31/2019 OS 2 - Process & Scheduling

    56/65

    SJF (khng c quyn)Minh ha (2)

    56

    SJF ( nhiu chu k CPU)

  • 7/31/2019 OS 2 - Process & Scheduling

    57/65

    SJF ( nhiu chu k CPU)Minh ha

    57

    SJF

  • 7/31/2019 OS 2 - Process & Scheduling

    58/65

    SJFNhn xt

    Ti u thi gian chKhng kh thi

    o Lm sao bit CPU burst ?

    58

  • 7/31/2019 OS 2 - Process & Scheduling

    59/65

    iu phi vi nhiu mc u tin

  • 7/31/2019 OS 2 - Process & Scheduling

    60/65

    iu phi vi nhiu mc u tinThc t

    T chc N RLng vinhiu mc u tinMiRLi p dng RR

    Gia cc RL p dngiu phi theo utin :

    o RLi rng mi iu phi

    RLi +1

    60

  • 7/31/2019 OS 2 - Process & Scheduling

    61/65

    Khuyt im

    iGiiphp Aging

    o Ch lu qu : chuynln RLvi u tincao hn

    o ChimCPU lu qu :chuyn xung RL vi u tin thp hn

    61

  • 7/31/2019 OS 2 - Process & Scheduling

    62/65

  • 7/31/2019 OS 2 - Process & Scheduling

    63/65

    Tho lun

    Cu hi?

    kin?

    xut?

    63

  • 7/31/2019 OS 2 - Process & Scheduling

    64/65

  • 7/31/2019 OS 2 - Process & Scheduling

    65/65

    Bi Tp