You are on page 1of 65

TIN TRNH IU PHI TIN TRNH

GV: MAI Xun Ph xuanphu150@gmail.com Khoa Cng Ngh Thng Tin i Hc Cng Nghip TPHCM

Ni dung
X l ng hnh (Concurrency)
o a nhim & a chng (Multitasking & Multiprogramming)

Tin trnh (Process)


o Khi nim

Qun l tin trnh (Process Management)


o Trng thi ca tin trnh (Process States) o Khi iu khin (Process Control Block)

Qu trnh iu phi tin trnh (Scheduling)


o Ngt qung (Interrupt) o Chuyn ng cnh (Context Switching) o Scheduler & Dispatcher

Cc thut ton iu phi


2

Khi nim a Nhim v a Chng (1)


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

tng hiu sut s dng CPU


3

Khi nim a Nhim v a Chng (2)


V sao mun x l ng thi nhiu cng vic trn my tnh ?
o Job : kq = a*b + c*d;

tng tc x l
4

Khi nim a Nhim v a Chng (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 nhim o Nhng: My tnh thng ch c 1 CPU?

a chng (Multiprogramming) : cho php nhiu chng trnh c thc hin ng thi (trn 1 CPU)
o Gi lp nhiu CPU o t 1 CPU tht cho php thi hnh 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

X l ng hnh (1)
Kh khn
o Ti nguyn gii hn, ng dng v hn o Nhiu hot ng an xen ?? Phn chia ti nguyn? ?? Chia s ti nguyn? ?? Bo v?

HH : Gii quyt nhiu cng vic ng thi? Lm sao y ???


6

X l ng hnh (2)
Gii php
o Chia tr, c lp cc hot ng o Mi thi im ch gii quyt 1 yu cu o o ho ti nguyn: bin t thnh nhiu

HH: Ai cng c phn khi n lt m!

Tin Trnh
Mt chng trnh ang trong qu trnh thc hin Mi tin trnh s hu
o Mt CPU (o) ring o Mt khng gian nh ring o Chim gi 1 s ti nguyn ca h thng

Vd: Word chy 2 ln 2 tin trnh khc nhau


o Microsoft Word [He_dieu_hanh.doc] o Microsoft Word [Mang_can_ban.doc]

Chng trnh - Tin trnh


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

Tin trnh (Process)


o Thc th hot ng (active)

Trng thi tin trnh (1)

10

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 tin trnh 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

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 my nhiu CPU) B nh chnh Ti nguyn s dng/to lp

o Thng tin giao tip (Relative)


Tin trnh cha, tin trnh con u tin

o Thng tin thng k


Thi gian s dng CPU Thi gian ch

12

Cc thao tc trn tin trnh


To lp tin trnh Kt thc tin trnh Thay i trng thi tin trnh :
o o o o o Assign() Block() Awake() Suspend() Resume()

13

To lp tin trnh (1)


Cc tnh hung :
o o o o Khi ng batch job User logs on Kch hot 1 dch v (print...) Tin trnh gi hm to mt tin trnh khc

Cc tin trnh c th to tin trnh con, hnh thnh cy tin trnh trong h thng Cc tin trnh mi c to c th
o Tha hng ti nguyn t cha o c cp ti nguyn mi
14

To lp tin trnh (2)


HH cn lm:
o o o o o nh danh cho tin trnh mi pht sinh a tin trnh vo danh sch qun l ca h thng Xc nh u tin cho tin trnh To PCB cho tin trnh Cp pht cc ti nguyn ban u cho tin trnh

Qu trnh con cha c th thc hin


o ng hnh o Qu trnh cha ch qu trnh con kt thc

15

Kt thc tin trnh


Tnh hung :
o o o o Tin trnh x l xong lnh cui cng hay gi exit () Kt thc Batch job, Halt instruction User logs off Do li chng trnh

Mt tin trnh c th kt thc 1 tin trnh khc nu c ID (nh danh) ca tin trnh kia. V d: kill -s SIGKILL 1234 Cng vic ca HH khi kt thc 1 tin trnh?
16

M hnh a tin trnh (MultiProcesses)


H thng = mt tp cc tin trnh hot ng ng thi Cc tin trnh c lp vi nhau khng c s trao i thng tin a tin trnh: thi hnh ng thi cc chng trnh, ch th trong my c nhiu CPU

17

M hnh a tiu trnh (MultiThreads)


Nhiu tnh hung cn c nhiu dng x l ng thi hot ng trong mt khng gian a ch cng chia s ti nguyn
o Gn nh song song o Nh cc tin trnh c lp

Tiu trnh (Thread)

18

Tiu trnh
Mt n v x l c bn trong h thng Mi tiu trnh
o X l tun t on code ca n o S hu
mt con tr lnh tp cc thanh ghi mt vng nh stack ring

Cc tiu trnh chia s CPU ging nh cch ca tin trnh

19

Tiu trnh & Tin trnh


Tiu trnh : 1 dng x l Tin trnh :
o 1 khng gian a ch o 1 hoc nhiu tiu trnh

Cc tin trnh l c lp Cc tiu trnh trong cng 1 tin trnh khng c s bo v ln nhau

20

Tiu trnh ht nhn (Kernel Thread)


Khi nim tiu trnh (Thread) c xy dng bn trong ht nhn (Kernel) n v x l l tiu trnh

21

Phn chia CPU


1 CPU vt l : lm th no to cm gic mi tin 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 tin trnh o Dispatcher chuyn CPU cho tin trnh c chn

22

Danh sch tin trnh


Tng ng vi cc trng thi ca tin trnh

23

Scheduler
Nhim v: quyt nh chn mt tin trnh cp pht CPU
o o o o ng c vin = {Cc tin trnh ready list} 0 tin trnh: CPU rnh ri (idle)! 1 tin trnh: hin nhin chn >1: Da vo cc thut ton iu phi

24

Dispatcher
Nhim v: Chuyn i ng cnh Xt v d
o Tin trnh A ang dng CPU 1 lc th b HH thu hi CPU o HH cp CPU cho B dng 1 lc, HH thu hi li CPU o HH cp CPU tr li cho A Gi tr cc thanh ghi gia nhng ln chuyn i CPU?

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

H iu hnh & CPU


HH cng l 1 phn mm cn s dng CPU Cu hi: Khi tin trnh A ang chim CPU, lm th no HH c th thu hi CPU li c?
o p buc thnh thong tr CPU li cho HH? o My tnh phi 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

Ngt ng h (1)
C ch

Interrupt

Trnh x l interrupt

27

Ngt ng h (2)
Cc bc x l interrupt
o o o o H iu hnh chim li quyn thc thi Lu tr trng thi ca qu trnh b ngt Phn tch ngt (dng phn cng) Thc thi chng trnh x l ngt
Interrupt handler

o Chn mt qu trnh tip theo chy

28

Ngt ng h (3)
Cc loi interrupt
o Supervisor call (SVC) interrupt: khi qu trnh yu cu dch v ca h thng o I/O interrupt: do cc thit b I/O sinh ra khi chuyn trng thi o External interrupt: sinh ra t ng h h thng, bn phm o Restart interrupt: ngt khi ng li my o Program check: sinh ra khi chng trnh thc thi lnh b li (chia cho 0, trn s, ) o Machine check: do nh sn xut to ra dnh ring cho vic kim tra phn cng
29

Chuyn ng cnh (1)


Chuyn ng cnh (context switching)
o Chuyn x l t tin trnh ny sang tin trnh khc o Xy ra khi c interrupt

Quy trnh:
o Lu trng thi ca tin trnh hin hnh o Chn tin trnh mi x l o 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 tin trnh.

Program Status Word (PSW)


30

Chuyn ng cnh (2)


Cc loi PSW:
o Old_PSW o Current _PSW o New_PSW

H thng mt b x l c
o 1 Current_PSW o 6 New_PSW o 6 Old_PSW (6 loi interrupt)

Qu trnh chuyn ng cnh din ra = s thay i gia cc PSW trong h thng


o Current_PSW Old_PSW o New_PSW Current_PSW
31

La chn tin trnh


Tc v ca Scheduler Mc tiu?
o S dng CPU hiu qu o m bo tt c cc tin trnh u tin trin x l

Tiu 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 hot Scheduler())


32

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 sut Ti nguyn Chi ph chuyn i

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

33

Thi im quyt nh iu phi


iu phi c quyn (non-preemptive scheduling):
o tin trnh c chn c quyn c chim CPU o Cc thi im kch hot Scheduler
Pcur kt thc Pcur: running ->blocked

iu phi khng c quyn (preemptive scheduling):


o tin trnh c chn c th b cp 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

Hai nguyn tc iu phi CPU

35

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 tt o Waiting time = T in Ready

Xt trng hp trung bnh


o N tin trnh o Avg Turn-around time = ( Turn-around timePi)/N o Avg Waiting time = ( Waiting timePi)/N

36

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

iu phi hn cht (Deadline Scheduling)


iu phi sao cho cc qu trnh c thc thi theo mt bng thi gian xc nh trc Mc ch : hon thnh tc v kp lc ng dng : cng nghip, vin thng, qun s Rt phc tp Ch c gii thut cho tng h thng c th

38

FCFS (First comes first served)


Tin trnh vo RL lu nht c chn trc Theo th t vo RL c quyn

39

FCFS Minh Ha

AvgWT = (23+25)/3 = 16

40

FCFS Nhn xt
n gin Chu ng hin tng tch ly thi gian ch
o Tin trnh c thi gian x l ngn i tin trnh c thi gian x l di

C th xy ra tnh trng c chim CPU

41

iu phi Round Robin (RR)


iu phi theo nguyn tc FCFS Mi tin trnh ch s dng mt lng q cho mi ln s dng CPU

42

Round Robin Minh Ha (1)


Vi q=4ms

43

Round Robin Minh Ha (2)


Vi q=4ms

44

Round Robin Khi no kt thc lt s dng CPU


Ht thi lng q ms (quantum) cho php Tin trnh kt thc Tin trnh b kha
o Ch Rs o Ch bin c

45

Round Robin Nhn xt


S dng c ch khng c quyn Mi tin trnh khng phi i qu lu Loi b hin tng c chim CPU Hiu qu ?
o Ph thuc vo vic chn la quantum q
q qu ln ???
Tng thi gian hi p Gim tnh tng tc

q qu nh ???
Tng chi ph chuyn i ng cnh

46

iu phi vi u tin
Phn bit tin trnh quan trng >< tin trnh bnh thng

Tin trnh c u tin cao nht c chn cp CPU trc


47

V d: u tin ca HH WinNT
Tin trnh c u tin 0 v 31
o 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

Nguyn tc iu phi
c quyn
o Lt s dng CPU kt thc khi:
tin trnh kt thc, tin trnh b kha

Khng c quyn
o Lt s dng CPU kt thc khi:
tin trnh kt thc, tin trnh b kha, C tin trnh vi u tin cao hn vo RL

49

iu phi u tin Minh ha


Khng c quyn

50

iu phi u tin Nhn xt


Cch tnh u tin ?
o H thng gn : CPU times o Ngi dng gn tng minh

Tnh cht u tin :


o Tnh o 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

Shortest Job First (SJF)


L mt dng u tin c bit vi u tin
o pi= thi_gian_cn_li(Processi)

C th ci t c quyn hoc khng c quyn

52

SJF (c quyn) Minh ha (1)

53

SJF (c quyn) Minh ha (2)

54

SJF (khng c quyn) Minh ha (1)

55

SJF (khng c quyn) Minh ha (2)

56

SJF (nhiu chu k CPU) Minh ha

57

SJF Nhn xt
Ti u thi gian ch Khng kh thi
o Lm sao bit CPU burst ?

58

iu phi vi nhiu mc u tin


T chc N RL ng vi nhiu mc u tin Mi RLi p dng mt chin lc iu phi thch hp Gia cc RL p dng iu phi theo u tin :
o RLi rng mi iu phi RLi +1
59

iu phi vi nhiu mc u tin Thc t


T chc N RL ng vi nhiu mc u tin Mi RLi p dng RR Gia cc RL p dng iu phi theo u tin :
o RLi rng mi iu phi RLi +1

60

Khuyt im
i Gii php Aging
o Ch lu qu : chuyn ln RLvi u tin cao hn o Chim CPU lu qu : chuyn xung RL vi u tin thp hn

61

Ti liu tham kho


Trn Hnh Nhi, H iu Hnh, Khoa CNTT, H khoa hc t nhin TPHCM: chng 2, 3 Andrew S. Tanenbaum, Modern Operating Systems, 3rd Edition, Prentice Hall, 2009: chapter 2.1, 2.2, 2.4

62

Tho lun
Cu hi? kin? xut?

63

Cng c
1. Phn bit multitask, multiprogramming v multiprocessing? 2. Cc trng thi ca tin trnh v qu trnh i trng thi? 3. Nhim v ca PCB? Cc thnh phn ca PCB? 4. iu phi c quyn v khng c quyn?

64

Bi Tp

65

You might also like