You are on page 1of 120

H iu hnh

H IU HNH
Phm ng Hi haipd-fit@mail.hut.edu.vn
B mn Khoa hc My tnh Vin Cng ngh Thng tin & Truyn Thng

Ngy 22 thng 2 nm 2011


1 / 105

Chng 2: Qun l tin trnh

Chng 2 Qun l tin trnh

2 / 105

Chng 2: Qun l tin trnh

Gii thiu Chng trnh ang thc hin


c cung cp ti nguyn (CPU, b nh, thit b vo/ra. . .) hon thnh cng vic
Ti nguyn c cp khi khi to tin trnh hay khi tin trnh ang thc hin

Gi l tin trnh (process )

H thng l tp cc tin trnh thc hin ng thi Tin trnh h iu hnh Thc hin m lnh h thng Tin trnh ngi dng Thc hin m lnh ngi dng Tin trnh c th cha mt hoc nhiu lung iu khin Trch nhim ca H iu hnh: m bo hat ng ca tin trnh v tiu trnh (lung )
To/xa tin trnh (ngi dng, h thng) iu phi tin trnh Cung cp c ch ng b, truyn thng v ngn nga tnh trng b tc gia cc tin trnh
3 / 105

Chng 2: Qun l tin trnh

Ni dung chnh

Tin trnh Lung (Thread) iu phi CPU Ti nguyn gng v iu tin trnh V d v ng b tin trnh B tc v x l b tc

4 / 105

Chng 2: Qun l tin trnh 1. Tin trnh

Ni dung chnh

Tin trnh Lung (Thread) iu phi CPU Ti nguyn gng v iu tin trnh V d v ng b tin trnh B tc v x l b tc

5 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

Tin trnh Khi nim tin trnh iu phi tin trnh Thao tc trn tin trnh Hp tc tin trnh Truyn thng lin tin trnh

6 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

nh ngha tin trnh


1

L mt dy thay i trng thi ca h thng


Chuyn t trng thi ny sang trng thi khc c thc hin theo yu cu nm trong chng trnh ca ngi s dng Xut pht t mt trng thi ban u

7 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

nh ngha tin trnh


1

L mt dy thay i trng thi ca h thng


Chuyn t trng thi ny sang trng thi khc c thc hin theo yu cu nm trong chng trnh ca ngi s dng Xut pht t mt trng thi ban u

L chng trnh ang thc hin


Ti nguyn ti thiu cn c
B nh cho m chng trnh v d liu Cc thanh ghi ca processor phc v cho qu trnh thc hin chng trnh

Tin trnh >< chng trnh


Chng trnh: thc th th ng (ni dung file trn a) Tin trnh: thc th ch ng (b m lnh, tp ti nguyn) Mt chng trnh c th c thc hin bi cc tin trnh khc nhau,vi cc b d liu khc nhau (mt chng trnh, nhiu tin trnh) Gi ti nhiu tin trnh
7 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

nh ngha tin trnh Chng trnh gm


M chng trnh: Lnh my (CD2190EA...) D liu: Bin c lu tr v s dng trong b nh
Bin ton cc Bin c cung cp ng (malloc, new,..) Bin stack (tham s hm, bin cc b )

Th vin lin kt ng: khng c dch & lin kt cng vi chng trnh (DLL)

Qu trnh dch mt chng trnh

8 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

nh ngha tin trnh Thc hin mt chng trnh

9 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

nh ngha tin trnh Thc hin mt chng trnh


H iu hnh to mt tin trnh v phn phi vng nh cho n B thc hin (loader/exec )
c v dch (interprets ) file thc thi Thit lp khng gian a ch cho tin trnh cha m lnh v d liu t file thc thi t cc tham s dng lnh, mi trng (argc, argv, envp ) vo stack Thit lp cc thanh ghi ca VXL thch hp v gi hm "_start()" (h iu hnh)

Chng trnh bt u thc hin ti "_start()". Hm ny gi ti hm main()(chng trnh) "Tin trnh" ang thc hin, khng cn ti "chng trnh" na Khi hm main() kt thc, OS gi ti hm "_exit()" hy b tin trnh v thu hi ti nguyn

10 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

nh ngha tin trnh Thc hin mt chng trnh


H iu hnh to mt tin trnh v phn phi vng nh cho n B thc hin (loader/exec )
c v dch (interprets ) file thc thi Thit lp khng gian a ch cho tin trnh cha m lnh v d liu t file thc thi t cc tham s dng lnh, mi trng (argc, argv, envp ) vo stack Thit lp cc thanh ghi ca VXL thch hp v gi hm "_start()" (h iu hnh)

Chng trnh bt u thc hin ti "_start()". Hm ny gi ti hm main()(chng trnh) "Tin trnh" ang thc hin, khng cn ti "chng trnh" na Khi hm main() kt thc, OS gi ti hm "_exit()" hy b tin trnh v thu hi ti nguyn
10 / 105

Tin trnh l chng trnh ang thc thi

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

Trng thi tin trnh I Khi thc hin, tin trnh thay i trng thi Trng thi ca tin trnh l mt phn trong hot ng hin ti ca tin trnh: Khi to (New) Tin trnh ang c khi to Sn sng (Ready) Tin trnh ang i s dng processor vt l Thc hin (Running) Cc cu lnh ca tin trnh ang c thc hin Ch i (Waiting) Tin trnh ang ch i mt s kin no xut hin (s hon thnh thao tc vo/ra) Kt thc (Terminated) Tin trnh thc hin xong H thng c mt processor
C duy nht mt tin trnh trng thi thc hin C th c nhiu tin trnh trng thi ch i hoc sn sng
11 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

Trng thi tin trnh II

Lu thay i trng thi tin trnh (Silberschatz 2002)

12 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

Khi iu khin tin trnh (PCB: Process Control Block) Mi tin trnh c th hin trong h thng bi mt khi iu khin tin trnh PCB: cu trc thng tin cho php xc nh duy nht mt tt
Trng thi tin trnh B m lnh Cc thanh ghi ca CPU Thng tin dng iu phi tin trnh Thng tin qun l b nh Thng tin ti nguyn c th s dng Thng tin thng k ... Con tr ti mt PCB khc
13 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.1 Khi nim tin trnh

Tin trnh v Lung

Tin trnh n lung: L mt chng trnh thc hin ch mt lung thc thi C mt lung cu lnh thc thi Cho php thc hin ch mt nhim v ti mt thi im

Tin trnh a lung: C nhiu lung thc thi Cho php thc hin nhiu hn mt nhim v ti mt thi im

14 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

Tin trnh Khi nim tin trnh iu phi tin trnh Thao tc trn tin trnh Hp tc tin trnh Truyn thng lin tin trnh

15 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

Gii thiu

Mc ch S dng ti a thi gian ca CPU Cn c nhiu tin trnh trong h thng Vn Lun chuyn CPU gia cc tin trnh Phi c hng i cho cc tin trnh H thng mt processor Mt tin trnh thc hin Cc tin trnh khc phi i ti khi CPU t do

16 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

Cc hng i tin trnh I H thng c nhiu hng i dnh cho tin trnh
Job-queue Tp cc tin trnh trong h thng Ready-Queue Tp cc tin trnh tn ti trong b nh, ang sn sng v ch i c thc hin Device queues Tp cc tin trnh ang ch i mt thit b vo ra. Phn bit hng i cho tng thit b

17 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

Cc hng i tin trnh II Cc tin trnh di chuyn gia hng i khc nhau

Tin trnh mi to, c t trong hng i sn sng, v i cho ti khi c la chn thc hin
18 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

Cc hng i tin trnh III

Tin trnh c chn v ang thc hin


1 2 3

a ra mt yu cu vo ra: i trong mt hng i thit b To mt tin trnh con v i tin trnh con kt thc Ht thi gian s dng CPU, phi quay li hng i sn sng Tin trnh s chuyn t trng thi i sang trng thi sn sng Tin trnh quay li hng i sn sng

Trng hp (1&2) sau khi s kin ch i hon thnh,

Tin trnh tip tc chu k (sn sng, thc hin, ch i ) cho ti khi kt thc
Xa khi tt c cc hng i PCB v ti nguyn cp c gii phng

19 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

B iu phi (Scheduler) I La chn tin trnh trong cc hng i


iu phi cng vic (Job scheduler; Long-term scheduler ) iu phi CPU (CPU scheduler; short-term scheduler )

iu phi cng vic :


Chn cc tin trnh t hng i tin trnh c lu trong cc vng m (a t ) v a vo b nh thc hin Thc hin khng thng xuyn (n v giy/pht ) iu khin mc a chng trnh (s t/trnh trong b nh ) Khi mc a chng trnh n nh, iu phi cng vic c gi ch khi c tin trnh ri khi h thng Vn la chon cng vic
Tin trnh thin v vo/ra: s dng t thi gian CPU Tin trnh thin v tnh ton: s dng nhiu thi gian CPU Cn la chn ln c 2 loi tin tnh tt vo ra: hng i sn sng rng, lng ph CPU tt tnh ton: hng i thit b rng, lng ph thit b
20 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

B iu phi (Scheduler) II iu phi CPU :


La chn mt tin trnh t hng i cc tin trnh ang sn sng thc hin v phn phi CPU cho n c thc hin thng xuyn (VD: 100ms/ln)
Tin trnh thc hin vi ms ri thc hin vo ra La chn tin trnh mi, ang sn sng

Phi thc hin nhanh


10ms quyt nh 10/(110)=9% thi gian CPU lng ph

Vn lun chuyn CPU t tin trnh ny ti tin trnh khc


Phi lu trng thi ca tin trnh c (PCB ) v khi phc trng thi cho tin trnh mi Thi gian lun chuyn l lng ph C th c h tr bi phn cng

Vn la chn tin trnh (iu phi tin trnh)

21 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

Swapping tin trnh (medium-term scheduler)

Nhim v
a t/trnh ra khi b nh (lm gim mc a chng trnh) Sau a tin trnh quay tr li (c th v tr khc ) v tip tc thc hin

Mc ch: Gii phng vng nh, to vng nh t do rng hn


22 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.2 iu phi tin trnh

Chuyn ng cnh (context switch) Chuyn CPU t tin trnh ny sang tin trnh khc (hon i tin trnh thc hin) Thc hin khi xut hin tn hiu ngt (ngt thi gian) hoc tin trnh a ra li gi h thng (thc hin v ra) Lu ca chuyn CPU gia cc t/trnh(Silberschatz 2002)

23 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.3 Thao tc trn tin trnh

Tin trnh Khi nim tin trnh iu phi tin trnh Thao tc trn tin trnh Hp tc tin trnh Truyn thng lin tin trnh

24 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.3 Thao tc trn tin trnh

Thao tc trn tin trnh

To tin trnh Kt thc tin trnh

25 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.3 Thao tc trn tin trnh

To tin trnh Tin trnh c th to nhiu tin trnh mi cng hot ng (CreateProcess(), fork())
Tin trnh to: tin trnh cha Tin trnh c to: tin trnh con

Tin trnh con c th to tin trnh con khc Cy tin trnh Vn phn phi ti nguyn
Tin trnh con ly ti nguyn t h iu hnh Tin trnh con ly ti nguyn t tin trnh cha
Tt c cc ti nguyn Mt phn ti nguyn ca tin trnh cha (ngn nga vic to qu nhiu tin trnh con)

Vn thc hin
Tin trnh cha tip tc thc hin ng thi vi tin trnh con Tin trnh cha i tin trnh con kt thc
26 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.3 Thao tc trn tin trnh

Kt thc tin trnh

Hon thnh cu lnh cui v yu cu HH xa n (exit )


Gi tr d liu ti tin trnh cha Cc ti nguyn cung cp c tr li h thng

Tin trnh cha c th kt thc s thc hin ca tin trnh con


Tin trnh cha phi bit nh danh tin trnh con tin trnh con phi gi nh danh cho tin trnh cha khi c khi to S dng li gi h thng (abort )

Tin trnh cha kt thc tin trnh con khi


Tin trnh con s dng vt qu mc ti nguyn c cp Nhim v cung cp cho tin trnh con khng cn cn thit na Tin trnh cha kt thc v h iu hnh khng cho php tin trnh con tn ti khi tin trnh cha kt thc Cascading termination. VD, kt thc h thng

27 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.3 Thao tc trn tin trnh

Mt s hm vi tin trnh trong WIN32 API CreateProcess(. . .)


LPCTSTR Tn ca chng trnh c thc hin LPTSTR Tham s dng lnh LPSECURITY_ATTRIBUTES Thuc tnh an ninh t/trnh LPSECURITY_ATTRIBUTES Thuc tnh an ninh lung BOOL Cho php k tha cc th thit b (TRUE/FALSE ) DWORD C to tin trnh (VD CREATE_NEW_CONSOLE ) LPVOID Tr ti khi mi trng LPCTSTR ng dn y n chng trnh LPSTARTUPINFO Cu trc thng tin cho tin trnh mi LPPROCESS_INFORMATION Thng tin v tin trnh mi

28 /

TerminateProcess(HANDLE hProcess, UINT uExitCode) hProcess Th tin trnh b kt thc ng uExitCode M kt thc tin trnh WaitForSingleObject(HANDLE hHandle, DWORD dwMs) hHandle Th i tng dwMs Thi gian ch i (INFINITE ) 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.3 Thao tc trn tin trnh

V d
#include <windows.h> #include <stdio.h> int main(){ STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); CreateProcess("Child.exe",NULL,NULL,NULL,FALSE, CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi); WaitForSingleObject(pi.hProcess,10000);//INFINITE TerminateProcess(pi.hProcess, 0); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return 0; }
29 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.4 Hp tc tin trnh

Tin trnh Khi nim tin trnh iu phi tin trnh Thao tc trn tin trnh Hp tc tin trnh Truyn thng lin tin trnh

30 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.4 Hp tc tin trnh

Phn loi tin trnh Cc tin trnh tun t


im bt u ca tin trnh ny nm sau im kt thc ca tin trnh kia

Cc tin trnh song song


im bt u ca tin trnh ny nm gia im bt u v kt thc ca tin trnh kia c lp: Khng nh hng ti hoc b nh hng bi tin trnh khc ang thc hin trong h thng C hp tc: nh hng ti hoc chu nh hng bi tin trnh khc ang thc hin trong h thng Hp tc tin trnh nhm
Chia s thng tin Tng tc tnh ton: Module ha Tin dng

Hp tc tin trnh i hi c ch cho php


Truyn thng gia cc tin trnh ng b ha hot ng ca cc tin trnh
31 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.4 Hp tc tin trnh

Bi ton ngi sn xut (producer)-ngi tiu th(consumer) I

H thng gm 2 tin trnh


Producer sn xut ra cc sn phm Consumer tiu th cc sn phm c sn xut ra

V d ng dng
Chng trnh in (producer ) sn xut ra cc k t c tiu th bi b iu khin my in (consumer) Trnh dch (producer ) sn xut ra m hp ng, trnh hp ng (consumer/producer ) tiu th m hp ng ri sn xut ra module i tng c b thc hin (consumer ) tiu th
32 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.4 Hp tc tin trnh

Bi ton ngi sn xut (producer)-ngi tiu th(consumer) II Producer v Consumer hot ng ng thi S dng vng m dng chung (Buffer) cha sn phm c in vo bi producer v c ly ra bi consumer IN V tr trng k tip trong vng m; OUT V tr y u tin trong vng m. Counter S sn phm trong vng m Producer v Consumer phi ng b
Consumer khng c gng tiu th mt sn phm cha c sn xut

Vng m dung lng v hn


Khi Buffer rng, Consumer phi i Producer khng phi i khi t sn phm vo buffer

Vng m dung lng hu hn


Khi Buffer rng, Consumer phi i Producer phi i nu vng m y
33 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.4 Hp tc tin trnh

Bi ton ngi sn xut (producer)-ngi tiu th(consumer) III


Producer while(1){ /*produce an item in nextProduced*/ while (Counter == BUFFER_SIZE) ; /*do nothing*/ Buffer[IN] = nextProduced; IN = (IN + 1) % BUFFER_SIZE; Counter++; } Consumer while(1){ while(Counter == 0) ; /*do nothing*/ nextConsumed = Buffer[OUT]; OUT =(OUT + 1) % BUFFER_SIZE; Counter--; /*consume the item in nextConsumed*/ }
34 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Tin trnh Khi nim tin trnh iu phi tin trnh Thao tc trn tin trnh Hp tc tin trnh Truyn thng lin tin trnh

35 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Trao i gia cc tin trnh

Dng m hnh b nh phn chia


Cc tin trnh chia s vng nh ching M ci t c vit tng minh bi ngi lp trnh ng dng V d: Bi ton Producer-Consumer

Dng m hnh truyn thng lin tin trnh (Interprocess communication)


L c ch cho php cc tin trnh truyn thng v ng b cc hot ng Thng c s dng trong cc h phn tn khi cc tin trnh truyn thng nm trn cc my khc nhau (chat ) m bo bi h thng truyn thng bo
36 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

H thng truyn thng bo Cho php cc tin trnh trao i vi nhau khng qua s dng cc bin phn chia Yu cu 2 thao tc c bn
Send (msg) Cc msg c kch thc c nh hoc thay i
C nh : d ci t mc h thng, nhim v lp trnh kh Thay i: ci t mc h thng phc tp, lp trnh n gin

Receive (msg)

Nu 2 tin trnh P v Q mun trao i, chng cn


Thit lp mt lin kt truyn thng (vt l/logic ) gia chng Trao i cc messages nh cc thao tc send/receive

Cc vn ci t
Cc lin kt c thit lp nh th no? Mt lin kt c th dng cho nhiu hn 2 tin trnh? Bao nhiu lin kt c th tn ti gia mi cp tin trnh? Kch thc thng bo m lin kt chp nhn c nh/thay i? Lin kt mt hay hai chiu?
37 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Truyn thng trc tip

Cc tin trnh phi gi tn tin trnh nhn/gi mt cch tng minh


send (P, message) - gi mt thng bo ti tin trnh P receive(Q, message) - Nhn mt thng bo t tin trnh Q

Tnh cht ca lin kt truyn thng


Cc lin kt c thit lp t ng Mt lin kt gn ch vi cp tin trnh truyn thng Ch tn ti mt lin kt gia cp tin trnh lin kt c th l mt chiu, nhng thng hai chiu

38 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Truyn thng gin tip Cc thng bo c gi/nhn ti/t cc hm th (mailboxes ), cng (ports )
Mi hm th c nh danh duy nht Cc tin trnh c th trao i nu chng dng chung hm th

Tnh cht cc lin kt


Cc lin kt c thit lp ch khi cc tin trnh dng chung hm th Mt lin kt c th c gn vi nhiu tin trnh Mi cp tin trnh c th dng chung nhiu lin kt truyn thng Lin kt c th mt hay hai chiu

Cc thao tc
To hm th Gi/nhn thng bo qua hm th
send(A, msg): Gi mt msg ti hm th A receive(A, msg): Nhn mt msg t hm th A

Hy b hm th
39 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Vn ng b ha Truyn thng bo c th phi ch i (blocking ), hoc khng ch i (non blocking ) blocking Truyn thng ng b Non-blocking Truyn thng khng ng b Cc th tc send v receive c th b ch i hoc khng ch i
Blocking send Tin trnh gi thng bo v i cho ti khi msg c nhn bi tin trnh nhn hoc bi hm th Non blockking send Tin trnh gi thng bo v tip tc lm vic Blocking receive Tin trnh nhn phi i cho ti khi c thng bo Non-blocking receive Tin trnh nhn tr v hoc mt thng bo c gi tr, hoc mt gi tr null
40 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Vng m

Cc thng bo trao i c lu trong hng i tm thi Hng i c th c ci t theo


Kh nng cha 0: sender phi i cho ti khi thng bo c nhn Kh nng cha c gii hn sender phi i nu hng i y Kh nng cha khng gii hn : sender khng bao gi phi i

41 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Truyn thng trong h thng Client-Server

Socket Rng buc vi a ch IP v cng

RPC (Remote Procedure Calls)

RMI (Remote Method Invocation) C ch ca Java

42 / 105

Chng 2: Qun l tin trnh 1. Tin trnh 1.5 Truyn thng lin tin trnh

Bi tp

Tm hiu cc phng php truyn thng Client-Server Vit chng trnh gii quyt bi ton Producer-Consumer

43 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread)

Ni dung chnh

Tin trnh Lung (Thread) iu phi CPU Ti nguyn gng v iu tin trnh V d v ng b tin trnh B tc v x l b tc

44 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Lung (Thread) Gii thiu M hnh a lung Ci t lung

45 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Vector Tnh ton trn vector kch thc ln

for(k = 0; k < n; k + +){ a[k ] = b[k ] c [k ]; }

46 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Vector Tnh ton trn vector kch thc ln

for(k = 0; k < n; k + +){ a[k ] = b[k ] c [k ]; }

Vi h thng nhiu vi x l

46 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Chat

47 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Chat

Process Q while(1){ Receive(P,Msg); PrintLine(Msg); ReadLine(Msg); Send(P,Msg); }


47 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Chat

Process Q while(1){ Receive(P,Msg); PrintLine(Msg); ReadLine(Msg); Send(P,Msg); }


47 / 105

Process P while(1){ ReadLine(Msg); Send(Q,Msg); Receive(Q,Msg); PrintLine(Msg); }

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Chat

Process Q while(1){ Receive(P,Msg); PrintLine(Msg); ReadLine(Msg); Send(P,Msg); }


47 / 105

Vn nhn Msg
Blocking Receive Non-blocking Receive

Process P while(1){ ReadLine(Msg); Send(Q,Msg); Receive(Q,Msg); PrintLine(Msg); }

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Chat

Process Q while(1){ Receive(P,Msg); PrintLine(Msg); ReadLine(Msg); Send(P,Msg); }


47 / 105

Vn nhn Msg
Blocking Receive Non-blocking Receive

Gii quyt
Thc hin song song Receive & Send

Process P while(1){ ReadLine(Msg); Send(Q,Msg); Receive(Q,Msg); PrintLine(Msg); }

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Tin trnh n lung v a lung H iu hnh truyn thng


Tin trnh c mt lung iu khin (heavyweight process)

H iu hnh hin nay


Tin trnh c th gm nhiu lung C th thc hin nhiu nhim v ti mt thi im

48 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

V d: Word processor (Tanenbaum 2001)

49 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Khi nim lung L n v s dng CPU c bn, gm


nh danh lung (ID Thread ) B m chng trnh (Program Computer ) Tp cc thanh ghi (Rigisters ) Khng gian stack

Phn chia cng cc lung khc trong cng mt tin trnh


on m lnh on d liu (i tng ton cc ) Cc ti nguyn h iu hnh khc (file ang m )

Cc lung c th thc hin cng on m vi ng cnh (Tp thanh ghi, B m chng trnh, stack ) khc nhau Cn c gi l tn trnh nh (LWP: Lightweight Process ) Mt tin trnh c t nht l mt lung
50 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Li ch ca lp trnh a lung Tng tnh p ng vi ngi dng


Cho php chng trnh vn thc hin ngay khi mt phn ang ch i (block ) hoc ang thc hin tnh ton tng cng V d trnh duyt Web (Web browser ) a lung
Mt lung tng tc vi ngi dng Mt lung thc hin nhim v ti d liu

51 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Li ch ca lp trnh a lung Tng tnh p ng vi ngi dng


Cho php chng trnh vn thc hin ngay khi mt phn ang ch i (block ) hoc ang thc hin tnh ton tng cng V d trnh duyt Web (Web browser ) a lung
Mt lung tng tc vi ngi dng Mt lung thc hin nhim v ti d liu

Chia s ti nguyn
Cc lung chia s b nh v ti nguyn ca tin trnh cha n
Tt cho cc thut ton song song (s dng chung cc CTDL) Trao i gia cc lung thng qua b nh phn chia

Cho php mt ng dng cha nhiu lung hot ng trong cng khng gian a ch

51 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Li ch ca lp trnh a lung Tng tnh p ng vi ngi dng


Cho php chng trnh vn thc hin ngay khi mt phn ang ch i (block ) hoc ang thc hin tnh ton tng cng V d trnh duyt Web (Web browser ) a lung
Mt lung tng tc vi ngi dng Mt lung thc hin nhim v ti d liu

Chia s ti nguyn
Cc lung chia s b nh v ti nguyn ca tin trnh cha n
Tt cho cc thut ton song song (s dng chung cc CTDL) Trao i gia cc lung thng qua b nh phn chia

Cho php mt ng dng cha nhiu lung hot ng trong cng khng gian a ch

Tnh kinh t
Cc thao tc khi to, hy b v lun chuyn lung t tn km
Minh ha c tnh song song trn b n VXL do thi gian lun chuyn CPU nhanh (Thc t ch mt lung thc hin)

51 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Li ch ca lp trnh a lung Tng tnh p ng vi ngi dng


Cho php chng trnh vn thc hin ngay khi mt phn ang ch i (block ) hoc ang thc hin tnh ton tng cng V d trnh duyt Web (Web browser ) a lung
Mt lung tng tc vi ngi dng Mt lung thc hin nhim v ti d liu

Chia s ti nguyn
Cc lung chia s b nh v ti nguyn ca tin trnh cha n
Tt cho cc thut ton song song (s dng chung cc CTDL) Trao i gia cc lung thng qua b nh phn chia

Cho php mt ng dng cha nhiu lung hot ng trong cng khng gian a ch

Tnh kinh t
Cc thao tc khi to, hy b v lun chuyn lung t tn km
Minh ha c tnh song song trn b n VXL do thi gian lun chuyn CPU nhanh (Thc t ch mt lung thc hin)

S dng kin trc nhiu vi x l


Cc lung chy song song thc s trn cc b VXL khc nhau.
51 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Tin trnh >< Lung Tin trnh


Tin trnh c on m/d liu/heap & cc on khc

Lung
Lung khng c on d liu hay heap ring

52 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Tin trnh >< Lung Tin trnh


Tin trnh c on m/d liu/heap & cc on khc Phi c t nht mt lung trong mi tin trnh

Lung
Lung khng c on d liu hay heap ring Lung khng ng ring m nm trong mt tin trnh

52 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Tin trnh >< Lung Tin trnh


Tin trnh c on m/d liu/heap & cc on khc Phi c t nht mt lung trong mi tin trnh Cc lung trong phm vi mt tin trnh chia s m/d liu/heap, vo/ra nhng c stack v tp thanh ghi ring

Lung
Lung khng c on d liu hay heap ring Lung khng ng ring m nm trong mt tin trnh C th tn ti nhiu lung trong mt tin trnh. Lung u l lung chnh v s hu khng gian stack ca tin trnh

52 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Tin trnh >< Lung Tin trnh


Tin trnh c on m/d liu/heap & cc on khc Phi c t nht mt lung trong mi tin trnh Cc lung trong phm vi mt tin trnh chia s m/d liu/heap, vo/ra nhng c stack v tp thanh ghi ring Thao tc khi to, lun chuyn tin trnh tn km

Lung
Lung khng c on d liu hay heap ring Lung khng ng ring m nm trong mt tin trnh C th tn ti nhiu lung trong mt tin trnh. Lung u l lung chnh v s hu khng gian stack ca tin trnh Thao tc khi to v lun chuyn lung khng tn km

52 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Tin trnh >< Lung Tin trnh


Tin trnh c on m/d liu/heap & cc on khc Phi c t nht mt lung trong mi tin trnh Cc lung trong phm vi mt tin trnh chia s m/d liu/heap, vo/ra nhng c stack v tp thanh ghi ring Thao tc khi to, lun chuyn tin trnh tn km Bo v tt do c khng gian i ch ring

Lung
Lung khng c on d liu hay heap ring Lung khng ng ring m nm trong mt tin trnh C th tn ti nhiu lung trong mt tin trnh. Lung u l lung chnh v s hu khng gian stack ca tin trnh Thao tc khi to v lun chuyn lung khng tn km Khng gian i ch chung, cn phi bo v

52 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.1 Gii thiu

Tin trnh >< Lung Tin trnh


Tin trnh c on m/d liu/heap & cc on khc Phi c t nht mt lung trong mi tin trnh Cc lung trong phm vi mt tin trnh chia s m/d liu/heap, vo/ra nhng c stack v tp thanh ghi ring Thao tc khi to, lun chuyn tin trnh tn km Bo v tt do c khng gian i ch ring Khi tin trnh kt thc, cc ti nguyn c i li v cc lung phi kt thc theo
52 / 105

Lung
Lung khng c on d liu hay heap ring Lung khng ng ring m nm trong mt tin trnh C th tn ti nhiu lung trong mt tin trnh. Lung u l lung chnh v s hu khng gian stack ca tin trnh Thao tc khi to v lun chuyn lung khng tn km Khng gian i ch chung, cn phi bo v Lung kt thc, stack ca n c thu hi

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.2 M hnh a lung

Lung (Thread) Gii thiu M hnh a lung Ci t lung

53 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.2 M hnh a lung

Lung ngi dng v lung nhn

Lung mc ngi dng (User threads)


c ci t bi th vin mc ngi dng, khng c tr gip t nhn To v qun l nhanh chng (do nhn khng can thip vo ) Lung ang phi ch i vo ra c th lm cho c h thng phi i theo (m hnh nhiu mt )

Lung mc h thng (Kernel threads)


c h tr trc tip bi HH
Nhn h tr to, lp lch, qun l trong khng gian nhn

Chm trong to v qun l lung Mt lung ch i vo ra, khng nh hng ti lung khc Trong mi trng a VXL , nhn c th iu phi cc lung cho cc VXL khc nhau

54 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.2 M hnh a lung

M hnh nhiu-mt

nh x nhiu lung mc ngi dng ti mt lung mc h thng Qun l lung hiu qu do c thc hin trong khng gian ngi dng Cho php to nhiu lung ty (nhng nhn ch lp lch mt lung ) Ton b tin trnh s b kha nu mt lung b kha (Thc hin vo ra) Ch mt lung c th truy nhp nhn ti mt thi im khng th chy song song trn cc my nhiu vi x l

55 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.2 M hnh a lung

M hnh mt-mt

nh x mi lung mc ngi dng ti mt lung mc h thng Cho php lung khc c thc hin khi mt lung b kha C th b gii hn s lung c to ra trong mt ng dng Cho php chy song song a lung trn my nhiu vi x l To lung mc ngi dng i hi to mt lung mc h thng tng ng (chi ph cao ) nh hng ti hiu nng ca ng dng
56 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.2 M hnh a lung

M hnh nhiu-nhiu

Nhiu lung mc ngi dng nh x ti mt s nh lung mc h thng S lng lung nhn c th c xc nh c th cho my hoc ng dng
ng dng c cp nhiu lung nhn hn trn h thng nhiu VXL

Cho php to nhiu lung mc ng dng theo yu cu, v cc lung nhn tng ng c th chy song song trn h nhiu VXL
57 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.3 Ci t lung

Lung (Thread) Gii thiu M hnh a lung Ci t lung

58 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.3 Ci t lung

Mt s hm vi lung trong WIN32 API HANDLE CreateThread(. . .);


LPSECURITY_ATTRIBUTESlpThreadAttributes, Tr ti cu trc an ninh: th tr v c th c k tha? DWORD dwStackSize, Kch thc ban u ca stack cho lung mi LPTHREAD_START_ROUTINE lpStartAddress, Tr ti hm c thc hin bi lung mi LPVOID lpParameter, Tr ti cc bin c gi ti lung mi (tham s ca hm) DWORD dwCreationFlags, Phng php to lung
CREATE_SUSPENDED : Lung trng thi tm ngng 0: Lung c thc hin ngay lp tc

LPDWORD lpThreadId Bin ghi nhn nh danh lung mi

Kt qu tr v: Th ca lung mi hoc gi tr NULL nu khng to c lung mi


59 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.3 Ci t lung

V d
#include <windows.h> #include <stdio.h> void Routine(int n){ printf("My argument is %d\n", n); } int main(){ int i, P[5]; HANDLE hHandles[5]; DWORD Id; for (i=0;i < 5;i++) { P[i] = i; hHandles[i] = CreateThread(NULL,0,Routine,P[i],0,&Id); printf("Thread \%d was created\n",Id); } for (i=0;i < 5;i++) WaitForSingleObject(hHandles[i],INFINITE); return 0; }
60 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.3 Ci t lung

Java Threads c ci t bi
M rng lp Thread (Thread class ) Ci t giao din c th thc thi c (Runnable interface )

c qun l bi my o Java (Java Virtual Machine ) Cc trng thi c th

Tn ti mt phng thc run(), s c thc hin trn JVM Lung c thc hin bi gi phng thc start()
Cung cp vng nh v khi to lung mi trong my o Java Gi ti phng thc run()
61 / 105

Chng 2: Qun l tin trnh 2. Lung (Thread) 2.3 Ci t lung

V d
class Sum extends Thread{ int low, up, S; public Sum(int a, int b){ low = a; up = b; S= 0; System.out.println("This is Thread "+this.getId()); } public void run(){ for(int i= low; i < up; i ++) S+= i; System.out.println(this.getId()+ " : " + S); } } public class Tester { public static void main(String[] args) { Sum T1 = new Sum(1,100); T1.start(); Sum T2 = new Sum(10,200); T2.start(); System.out.println("Main process terminated"); } }
62 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU

Ni dung chnh

Tin trnh Lung (Thread) iu phi CPU Ti nguyn gng v iu tin trnh V d v ng b tin trnh B tc v x l b tc

63 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.1 Cc khi nim c bn

iu phi CPU Cc khi nim c bn Tiu chun iu Cc thut ton iu iu a x l

64 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.1 Cc khi nim c bn

Gii thiu

iu phi CPU quan trong vi h iu hnh a nhim Nh lun chuyn CPU gia cc tin trnh, h iu hnh lm cho my tnh hu ch hn tng c bn
Tin trnh c thc hin cho ti khi phi ch i mt thao tc vo ra
H n chng trnh: CPU khng c s dng Lng ph Vi h a chng trnh: c gng s dng CPU cho cc tin trnh khc Cn nhiu tin trnh sn sng trong b nh ti mt thi im

Khi mt tin trnh phi ch, h iu hnh ly CPU cho tin trnh khc

65 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.1 Cc khi nim c bn

Chu k thc hin CPU - I/O Thc hin tin trnh l chu k lun chuyn gia tnh ton/vo ra
Bt u bi giai on tnh ton Tip theo giai on vo ra Tnh ton vo/ra tnh ton vo/ra . . . Kt thc: Yu cu h thng kt thc thc hin

Xem xt s phn b thi gian cho cc giai on CPU & vo/ra chn gii thut iu phi thch hp
Tin trnh tnh ton (CPU-bound process ) c vi chu k CPU di Tin trnh vo ra (I/0-bound process ) c nhiu chu k CPU ngn
66 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.1 Cc khi nim c bn

B iu phi CPU I La chn mt trong s cc tin trnh ang sn sng trong b nh v cung cp CPU cho n
Cc tin trnh phi sp hng trong hng i
Hng i FIFO, Hng i u tin, DSLK n gin . . .

Quyt nh iu phi CPU xy ra khi tin trnh


1

Chuyn t trng thi thc hin sang trng thi ch i (y/c vo/ra) Chuyn t trng thi thc hin sang trng thi sn sng (ngt thi gian) Chuyn t trng thi ch i sang trng thi sn sng (hon thnh vo/ra) Tin trnh kt thc

Trng hp 1&4 iu phi khng trng dng (non-preemptive ) Trng hp khc iu phi trng dng (preemptive )
67 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.1 Cc khi nim c bn

iu phi trng dng v khng trng dng iu phi khng trng dng
Tin trnh chim CPU cho ti khi gii phng bi
Kt thc nhim v Chuyn sang trng thi ch i

Khng i hi phn cng c bit (ng h ) V d: DOS, Win 3.1, Macintosh

iu phi trng dng


Tin trnh ch c php thc hin trong khong thi gian Kt thc khong thi gian c nh ngha trc, ngt thi gian xut hin, b iu vn (dispatcher ) c kch hot quyt nh hi phc li tin trnh hay la chn tin trnh khc Bo v CPU khi cc tin trnh "i-CPU " Vn d liu dng chung
Tin trnh 1 ang cp nht DL th b mt CPU Tin trnh 2, c giao CPU v c DL ang cp nht

V d: H iu hnh a nhim WinNT, UNIX


68 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.2 Tiu chun iu

iu phi CPU Cc khi nim c bn Tiu chun iu Cc thut ton iu iu a x l

69 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.2 Tiu chun iu

Tiu chun iu I S dng CPU (Ln nht )


Mc ch ca iu l lm CPU hot ng nhiu nht c th s dng CPU thay i t 40% (h thng ti nh ) n 90% (h thng ti nng ).

Thng lng (throughput) (Ln nht )


S lng tin trnh hon thnh trong mt n v thi gian
Cc tin trnh di: 1 tin trnh/gi Cc tin trnh ngn: 10 tin trnh/giy

Thi gian hon thnh (Nh nht )


Khong thi gian t thi im gi n h thng ti khi qu trnh hon thnh
Thi Thi Thi Thi
70 / 105

gian gian gian gian

ch i a tin trnh vo b nh ch i trong hng i sn sng ch i trong hng i thit b thc hin thc t

Chng 2: Qun l tin trnh 3. iu phi CPU 3.2 Tiu chun iu

Tiu chun iu II Thi gian ch i (Nh nht )


Tng thi gian ch trong hng i sn sng (Gii thut iu CPU khng nh hng ti cc tin trnh ang thc hin hay ang i thit b vo ra)

Thi gian p ng (Nh nht )


T lc gi cu hi cho ti khi cu tr li u tin c to ra
Tin trnh c th to kt qu ra tng phn Tin trnh vn tip tc tnh ton kt qu mi trong hi kt qu c c gi ti ngi dng

Gi thit: Cc tin trnh ch c mt chu k tnh ton (ms) o ac: Thi gian ch i trung bnh

71 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.3 Cc thut ton iu

iu phi CPU Cc khi nim c bn Tiu chun iu Cc thut ton iu iu a x l

72 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.3 Cc thut ton iu

n trc phc v trc (FCFS: First Come, First Served)

Ni dung V d Nhn xt

73 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.3 Cc thut ton iu

Cng vic ngn trc (SJF: Shortest Job First)

Ni dung V d Nhn xt

74 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.3 Cc thut ton iu

iu c u tin

Ni dung V d Nhn xt

75 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.3 Cc thut ton iu

Vng trn (RR: Round Robin)

Ni dung V d Nhn xt

76 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.3 Cc thut ton iu

iu hng i a mc

77 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.3 Cc thut ton iu

iu hng i a mc c phn hi

78 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU 3.4 iu a x l

iu phi CPU Cc khi nim c bn Tiu chun iu Cc thut ton iu iu a x l

79 / 105

Chng 2: Qun l tin trnh 3. iu phi CPU

Kt lun

80 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh

Tin trnh Lung (Thread) iu phi CPU Ti nguyn gng v iu tin trnh V d v ng b tin trnh B tc v x l b tc

81 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh 4.1 Khi nim ti nguyn gng

Ti nguyn gng v iu tin trnh Khi nim ti nguyn gng


Khi nim Yu cu cha chng trnh iu Phn loi phng php Gi thit

Phng php kha trong Phng php kim tra v xc lp K thut n bo Cng c iu cp cao

82 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh 4.1 Khi nim ti nguyn gng

V d

83 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh 4.1 Khi nim ti nguyn gng

nh ngha

84 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh 4.2 Phng php kha trong

Ti nguyn gng v iu tin trnh Khi nim ti nguyn gng


Khi nim Yu cu cha chng trnh iu Phn loi phng php Gi thit

Phng php kha trong Phng php kim tra v xc lp K thut n bo Cng c iu cp cao

85 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh 4.2 Phng php kim tra v xc lp

Ti nguyn gng v iu tin trnh Khi nim ti nguyn gng


Khi nim Yu cu cha chng trnh iu Phn loi phng php Gi thit

Phng php kha trong Phng php kim tra v xc lp K thut n bo Cng c iu cp cao

86 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh 4.3 K thut n bo

Ti nguyn gng v iu tin trnh Khi nim ti nguyn gng


Khi nim Yu cu cha chng trnh iu Phn loi phng php Gi thit

Phng php kha trong Phng php kim tra v xc lp K thut n bo Cng c iu cp cao

87 / 105

Chng 2: Qun l tin trnh 4. Ti nguyn gng v iu tin trnh 4.4 Cng c iu cp cao

Ti nguyn gng v iu tin trnh Khi nim ti nguyn gng


Khi nim Yu cu cha chng trnh iu Phn loi phng php Gi thit

Phng php kha trong Phng php kim tra v xc lp K thut n bo Cng c iu cp cao

88 / 105

Chng 2: Qun l tin trnh 5. V d v ng b tin trnh

V d v ng b tin trnh

89 / 105

Chng 2: Qun l tin trnh 5. V d v ng b tin trnh

Vn sn xut-tiu th

90 / 105

Chng 2: Qun l tin trnh 5. V d v ng b tin trnh

Vn trit gia n ti

91 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc

Tin trnh Lung (Thread) iu phi CPU Ti nguyn gng v iu tin trnh V d v ng b tin trnh B tc v x l b tc

92 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.1 Khi nim b tc

B tc v x l b tc Khi nim b tc iu kin xy ra b tc Cc phng php x l b tc Phng nga b tc Phng trnh b tc Nhn bit v khc phc

93 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.1 Khi nim b tc

V d

94 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.1 Khi nim b tc

nh ngha

95 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.1 iu kin xy ra b tc

B tc v x l b tc Khi nim b tc iu kin xy ra b tc Cc phng php x l b tc Phng nga b tc Phng trnh b tc Nhn bit v khc phc

96 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.1 iu kin xy ra b tc

iu kin cn

97 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.1 iu kin xy ra b tc

th cung cp ti nguyn

98 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.3 Cc phng php x l b tc

B tc v x l b tc Khi nim b tc iu kin xy ra b tc Cc phng php x l b tc Phng nga b tc Phng trnh b tc Nhn bit v khc phc

99 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.3 Cc phng php x l b tc

Phng php

Phng nga Phng trnh Nhn bit v khc phc

100 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.4 Phng nga b tc

B tc v x l b tc Khi nim b tc iu kin xy ra b tc Cc phng php x l b tc Phng nga b tc Phng trnh b tc Nhn bit v khc phc

101 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.5 Phng trnh b tc

B tc v x l b tc Khi nim b tc iu kin xy ra b tc Cc phng php x l b tc Phng nga b tc Phng trnh b tc Nhn bit v khc phc

102 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc 6.6 Nhn bit v khc phc

B tc v x l b tc Khi nim b tc iu kin xy ra b tc Cc phng php x l b tc Phng nga b tc Phng trnh b tc Nhn bit v khc phc

103 / 105

Chng 2: Qun l tin trnh 6. B tc v x l b tc

Tm tt

104 / 105

Chng 2: Qun l tin trnh

Kt lun
Tin trnh Khi nim tin trnh iu phi tin trnh Thao tc trn tin trnh Hp tc tin trnh Truyn thng lin tin trnh 2 Lung (Thread) Gii thiu M hnh a lung Ci t lung 3 iu phi CPU Cc khi nim c bn Tiu chun iu Cc thut ton iu iu a x l 4 Ti nguyn gng v iu tin trnh 105Khi / 105 nim ti nguyn gng
1

5 6

V d v ng b tin trnh B tc v x l b tc Khi nim b tc iu kin xy ra b tc Cc phng php x l b tc Phng nga b tc Phng trnh b tc Nhn bit v khc phc

You might also like