Professional Documents
Culture Documents
TRN-U ::
i-nh : I-BNG
i-khch : I-BNG
vng-thi-u: 1
t-s : T-S
Ghi ch: Mi i bng thi u ng 2 trn
vi cc i cn li (mt trn lt i trn sn
khch, mt trn lt v trn sn nh ca
chnh mnh).
true
Post
kq = trn-u . t-s . s-bn-thng-i-nh > trn-u . t-s . s-bn-thngi-khch
i-khch-thng (trn-u: TRN-U) kq: B
Pre
true
Post
kq = trn-u . t-s . s-bn-thng-i-nh < trn-u . t-s . s-bn-thngi-khch
L-i-nh (i: I-BNG, trn-u: TRN-U) kq: B
Pre
true
Post
kq = ( i = trn-u . i-nh )
Pre
true
Post
kq = ( i = trn-u . i-khch )
true
Post
true
Post
true
Post
kq = ( trn-u . t-s . s-bn-thng-i-nh = trn-u . t-s . s-bn-thngi-khch )
S-trn-ha (i: I-BNG, lch-thi-u: TRN-U*) kq:
Pre
true
Post
(kq = 1 + S-trn-ha (i, tl lch-thi-u) Ha ( hd lch-thi-u) (L-inh (i, hd lch-thi-u) L-i-khch (i, hd lch-thi-u)))
(kq = S-trn-ha (i, tl lch-thi-u) (Ha ( hd lch-thi-u) (L-inh (i, hd lch-thi-u) L-i-khch (i, hd lch-thi-u)))
(kq = 0 ( lch-thi-u = [])
true
Post
true
Post
)
( (L-i-nh (i, trn-u) L-i-khch (i, trn-u)) kq = 0)
S-bn-thua-trong-trn (i: I-BNG, trn-u: TRN-U) kq:
Pre
true
Post
true
Post
(kq = S-bn-thng-trong-trn (i, hd lch-thi-u) + S-bn-thng (i, tl
lch-thi-u))
(kq = 0 len lch-thi-u = 0)
S-bn-thua (i: I-BNG, lch-thi-u: TRN-U*) kq:
Pre
true
Post
kq = S-bn-thua-trong-trn (i, hd lch-thi-u) + S-bn-thua (i, tl lchthi-u)
true
Post
true
Post
true
Post
Hiu-s-
u)
( i inds
)) )
???
)))
Post
i [1,.., (len ds-i ) 1] Hng-cao-hn (ds-i(i), ds-i(i+1), kqxphng)
S dng kiu d liu di y cho cu 96 v 97:
Xt mt h iu hnh n gin. Cho trc c t cc kiu d liu biu din thng tin ca 1 tin
trnh v ReadyList nh sau:
PROCESS_ID =
PROCESS_INFO ::
pID : PROCESS_ID
CPUBurstTime:
READY_LIST = PROCESS_INFO*
Cho trc bin ton cc ready-List : READY_LIST
96. Hy c t hm FIFOScheduler cho php chn ra tin trnh theo chin lc FIFO vi thng
tin cc tin trnh ang ch s dng CPU trong ready-List.
FIFOScheduler () pID: PROCESS_ID
97. Hy c t hm SJFScheduler cho php chn ra tin trnh theo chin lc SJF (Shortest Job
First) vi thng tin cc tin trnh ang ch s dng CPU trong ready-List. Nu c nhiu tin trnh
c cng thi gian thc thi (CPUBurstTime) ngn nht bng nhau th u tin chn tin trnh c
thi gian ngn nht xut hin trc trong ready-List.
SJFScheduler () pID: PROCESS_ID
98. T nh ngha kiu d liu TOWER_STATE biu din 1 trng thi ca bi ton Thp H
Ni vi 3 ct (A, B, C) v n a (nh s t 1 n n, a 1 < a 2 < < a n). c t iu kin
rng buc i vi kiu d liu ny (ghi ch: vi mi ct, a di phi ln hn a trn)
COLUMN_STATE = N*
inv-COLUMN_STATE: COLUMN_STATE
B
inv-COLUMN_STATE (cs)
i, j inds cs i > j cs(i) > cs(j)
TOWER_STATE ::
Column-A : COLUMN_STATE
Column-B : COLUMN_STATE
Column-C : COLUMN_STATE
inv- TOWER_STATE : TOWER_STATE
B
inv- TOWER_STATE (ts)
let ac = ts . Column-A ts . Column-B ts .
Column-C in
len ac = card elems ac
99. c t thao tc MoveAB thc hin vic di chuyn 1 a (trn cng) t ct A sang ct B. Lu
ch x l nu ct A c t nht 1 a, v a trn cng ca ct A phi nh hn a trn cng ca ct
B, hoc ct B cn trng.
MoveAB(S0: TOWER_STATE) S1: TOWER_STATE
Pre
true
Post
(S1 . Column-A = tl S0 . Column-A ) (S1 . Column-B = hd S0 . Column-A S0 .
Column-B )