You are on page 1of 71

NH THI CPU

Mc tiu
Hiu c
Ti sao cn phi nh thi Cc tiu ch nh thi Mt s gii thut nh thi

Ghi ch: nhng slide c du * tiu l nhng slide dng din gii thm

nh thi CPU

Phn loi qu trnh


Chu kz CPU-I/O CPU burst I/O burst CPU-bound process c thi gian s dng CPU nhiu hn thi gian s dng I/O I/O-bound process dng phn ln thi gian i I/O

nh thi CPU

Vn cn gii quyt
Trong cc h thng multiprogramming / multitasking
Ti mt thi im trong b nh c nhiu process Ti mi thi im ch c mt process c thc thi
Gi s h thng ch c 1 CPU (1 processor)

Do , cn phi gii quyt vn phn loi v la chon process thc thi sao cho c hiu qu nht ( tiu ch nh thi). Cn c chin lc nh thi CPU
nh thi CPU 4

Phn loi cc hot ng nh thi (1/2) new


Long-term scheduling Medium-term scheduling
ready

Long-term scheduling

ng gch ri: chuyn i khng nht thit c

suspended ready

Short-term scheduling
running

suspended blocked

Medium-term scheduling
blocked terminated
5

nh thi CPU

Phn loi cc hot ng nh thi (2/2)


nh thi di hn (long-term scheduling): xc nh process mi (new) no c tip tc vo su hn trong h thng.
Thng ch c trong batch system

nh thi trung hn (medium-term scheduling): xc nh process no c a vo (swap in), a ra khi (swap out) b nh chnh.

Swap in/out c th tn n vi giy thi gian chu kz nh thi trung hn c th l vi pht.

nh thi ngn hn (short-term scheduling): xc nh process no c thc thi tip theo.


nh thi CPU 6

nh thi di hn
nh hng n -a-lp-trnh (degree of multiprogramming: s qu trnh ang trong b nh) Nu cng nhiu process ang trong b nh th kh nng moi process b block c xu hng gim
S dng CPU hiu qu hn Nhng mi process c phn chia khong thi gian s dng CPU nh hn

Thng c xu hng a vo mt tp ln ln cc CPU-bound process v I/O-bound process


nh thi CPU 7

nh thi trung hn
Quyt nh vic a process (khng phi process trng thi new) vo b nh chnh, hay ra khi b nh chnh Ph thuc vo yu cu qun l{ vic a-lp-trnh (multiprogramming)
Cho php b nh thi di hn chp nhn (admit) nhiu process hn s lng process m c tng kch thc c cha va trong b nh chnh ( k thut b nh o) Nhng nu c qu nhiu process th s lm tng vic truy xut a, do cn phi la chon -a-lp-trnh cho ph hp

c thc hin bi phn mm qun l{ b nh


nh thi CPU 8

nh thi ngn hn
Xc nh process no c thc thi tip theo, cn goi l nh thi CPU Ty h thng ( nh thi nonpreemptive, preemptive) m c kch hot khi c mt s kin dn n kh nng chon mt process thc thi
Ngt thi gian (clock interrupt) Ngt ngoi vi (I/O interrupt) Li goi h thng (operating system call) Signal

Chng ny s tp trung vo nh thi ngn hn.


nh thi CPU 9

Ni dung cn quan tm
nh thi trn h thng c mt processor (uniprocessor scheduling): quyt nh vic s dng (mt) CPU cho mt tp cc process trong h thng Tiu ch no?

nh thi CPU

10

Tiu ch nh thi (1/4)


CPU utilization (% s dng CPU, li CPU) Throughput (Thng nng) Turnaround-time (Thi gian quay vng) Response time (Thi gian p ng) Waiting time (Thi gian ch)
Thi gian mt process trong hng i ready

Average turn-around time (Thi gian quay vng trung bnh)


nh thi CPU 11

Tiu ch nh thi (2/4)


CPU utilization (% s dng CPU, li CPU)
CPU utilization CPU: [0% - 100%] Lightly loaded system: < 40%, heavy-loaded: > 90% Maximize CPU utilization

Thng nng (throughput)


S lng process hon tt trong mt n v thi gian Maximize throughput

nh thi CPU

12

Tiu ch nh thi (3/4)


Thi gian p ng (response time)
Thi gian t lc c yu cu ca ngi dng (user request) n khi c p ng u tin Thng l vn vi cc I/O-bound process Minimize response time

Waiting time (Thi gian ch)


Thi gian mt process trong hng i ready Minimize waiting time

Thi gian quay vng (turn-around time) Thi gian quay vng trung bnh (average turnaround time)
nh thi CPU 13

Tiu ch nh thi (3/4)


Thi gian p ng (response time) Waiting time (Thi gian ch) Thi gian quay vng (turn-around time)
Thi gian mt process hon tt, k t lc vo h thng (submission) n lc kt thc (termination) L mt tr c trng cn quan tm vi cc process thuc dng CPU-bound Minimize turn-around time

Thi gian quay vng trung bnh (average turnaround time)


nh thi CPU 14

Tiu ch nh thi (4/4)


li CPU gi CPU cng bn cng tt Thng nng s lng process kt thc vic thc thi trong mt n v thi gian Turnaround time thi gian k t lc a vo (submission) n lc kt thc Thi gian ch thi gian mt process ch trong hng i ready
Ti thiu ha Ti thiu ha Ti thiu ha Ti a ha

Ti a ha

Thi gian p ng thi gian t khi a yu cu n khi c p ng u tin

nh thi CPU

15

Scheduling algorithms
Cc gii thut lp lch s c nh gi qua 5 tiu ch ny. Cc gii thut gm:
First Come, First Served (FCFS) scheduling Shortest-Job-First scheduling Priority Scheduling Round-robin scheduling Etc.,
nh thi CPU 16

Tiu ch nh thi t cc gc nhn (1/2)


Hng n ngi s dng (user-oriented)
Thi gian quay vng
Thi gian t lc submission n lc process kt thc Cn quan tm vi cc h thng x l{ b (batch system)

Thi gian p ng
Cn quan tm vi cc h thng giao tip (interactive system)

nh thi CPU

18

Tiu ch nh thi t cc gc nhn (2/2)


Hng n h thng (system-oriented)
li CPU Cng bng (fairness) Thng nng: s process hon tt trong mt n v thi gian

nh thi CPU

19

Hai thnh phn ca chin lc nh thi (1/2)


Hm la chn (selection function)
Xc nh process no trong ready queue s c thc thi tip theo. Thng theo cc tiu ch nh
w = tng thi gian i trong h thng e = thi gian c phc v s = tng thi gian thc thi ca process (bao gm c tr e)

nh thi CPU

20

Hai thnh phn ca chin lc nh thi (2/2)


Ch quyt nh (decision mode)
nh ngha thi im hm la chon c thc thi Nonpreemptive
Mt process s trng thi running cho n khi n b block hoc n kt thc

Preemptive
Process ang thc thi c th b ngt v chuyn v trng thi ready Trnh trng hp mt process c chim CPU
nh thi CPU

21

Thi im thc thi hm la chn


new (3) (4) terminated

ready

running

(2) (3) waiting (1)

nh thi CPU

22

Nonpreemption v preemption (1/2)


Hm la chon c th c thc thi khi c qu trnh
(1) chuyn t trng thi running sang waiting (2) chuyn t trng thi running sang ready (3) chuyn t trng thi waiting, new sang ready (4) kt thc thc thi

Chin lc nh thi nonpreemptive: ch thc thi hm la chon trong trng hp 1 v 4 (qu trnh running nu b ngt s tip tc running sau ) Chin lc nh thi preemptive: ngoi trng hp 1 v 4 cn thc thi thm hm la chon trong trng hp 2 hoc 3 (hoc c hai)
nh thi CPU 23

Nonpreemption v preemption (2/2)


Hin thc ch quyt nh no kh hn? Ti sao? Preemptive scheduling: hai loi hin thc
Preemption ch trong user space C th preemption trong kernel space
V d: preemption khi kernel ang thc thi mt li goi h thng Vn : gi nht qun cc d liu trong kernel (v d cc hng i I/O)
nh thi CPU 24

Dispatcher
Dispatcher s chuyn quyn iu khin CPU v cho process c chon bi b nh thi ngn hn Bao gm:
Chuyn ng cnh (s dng thng tin ng cnh trong PCB) Chuyn v user mode Nhy n v tr thch hp (chnh l program counter trong PCB) trong chng trnh ng dng qu trnh tip tc thc thi

Cng vic ny gy ra ph tn
Dispatch latency: thi gian dispatcher cn t lc dng mt process n lc mt process khc tip tc chy
nh thi CPU 25

Scheduling algorithms
Cc gii thut nh thi CPU gm:
First Come, First Served (FCFS) scheduling Shortest-Job-First scheduling Priority Scheduling Round-robin scheduling Etc.,

Cc gii thut nh thi CPU s c nh gi qua 5 tiu ch (scheduling criteria).


nh thi CPU 26

First Come First Served (FCFS) (1/5)


Hm la chon: chon process trong hng i ready lu nht Ch quyt nh: nonpreemptive
Mt process s c thc thi cho n khi n block hoc kt thc

FCFS thng c hin thc bng mt FIFO queue

nh thi CPU

27

First Come First Served (FCFS) (2/5)


Process Burst time (ms) P1 24 P2 3 P3 3 Gi s cc process n theo th t P1 , P2 , P3 Gin Gantt cho vic nh thi l:
P1 0 24 P2 27 P3 30

Thi gian i cho P1 = 0, P2 = 24, P3 = 27 Thi gian i trung bnh: (0 + 24 + 27) / 3 = 17


nh thi CPU 28

First Come First Served (FCFS) (3/5)


Thi gian phc v trung bnh = Thng nng = Thi gian quay vng =

P1 0 24

P2 27

P3 30

nh thi CPU

29

First Come First Served (FCFS) (4/5)


Gi s cc process n theo th t: P2 , P3 , P1 Gin Gantt cho vic nh thi l: P P P
2 3 1

30

Thi gian i ca P1 = 6, P2 = 0, P3 = 3 Thi gian i trung bnh: (6 + 0 + 3) / 3 = 3


Tt hn rt nhiu so vi trng hp trc
nh thi CPU 30

First Come First Served (FCFS) (5/5)


FCFS khng cng bng vi process c CPU burst ngn v n phi ch trong thi gian di (so vi thi gian m n cn phc v) th mi c s dng CPU. iu ny ng ngha vi vic FCFS u tin cc process thuc dng CPU bound. Cu hi: Liu c xy ra trng hp tr hon v hn nh (starvation hay indefinite blocking) vi gii thut FCFS? FCFS thng c s dng trong cc h thng b (batch system)
nh thi CPU 31

V d thc t
Vic phc v khch trong nh hng
Thc khch s n v goi mn n cho mnh Mi mn n cn thi gian chun b khc nhau

Mc tiu:
Gim thi gian i trung bnh ca cc thc khch

Cch lm no s ph hp?
Thng thng cc nh hng s phc v theo kiu FCFS (!)
nh thi CPU 32

Shortest Job First (SJF) (1/3)


Process Thi im n Burst time P1 0,0 7 P2 2,0 4 P3 4,0 1 P4 5,0 4 Gin Gantt khi nh thi theo SJF
P1 P3 P2 P4

(ms)

12

16

Thi gian i trung bnh = (0 + 6 + 3 + 7)/4 = 4


nh thi CPU 33

Shortest Job First (SJF) (2/3)


Thi gian phc v trung bnh = Thng nng = Thi gian quay vng =
P1
0 3 7

P3
8

P2
12

P4
16

nh thi CPU

34

Shortest Job First (SJF) (3/3)


i vi mi process, cn bit di ca CPU burst Hm la chon: chon process c di CPU burst nh nht Ch quyt nh: nonpreemptive Chng minh c: SJF ti u trong vic gim thi gian i trung bnh Vn : Cn phi c lng thi gian cn CPU tip theo ca process Gii php cho vn ny?
nh thi CPU 35

D on thi gian s dng CPU (1/2)


(Thi gian s dng CPU chnh l di ca CPU burst) Trung bnh c trong s cc CPU burst o c trong qu kh Gi thit: nhng CPU burst cng mi cng phn nh gn hnh vi ca process trong tng lai Phng php trung bnh hm m (exponential averaging)
n+1 = atn + (1 a)n , 0 a 1
t ch tr o c, ch tr d on

Suy ra: n+1 = atn + (1 a)atn1 ++ (1 a)jatnj ++ (1 a)n+1a0 Nu chon a = th c ngha l tr o c tn v tr d on n c xem quan trong nh nhau.

nh thi CPU

36

D on thi gian s dng CPU di CPU burst (2/2) o c


di CPU burst d on, vi a = v 0 = 10

nh thi CPU

37

Shortest Job First (SJF)


SJF s dng u tin ngm nh: cng vic ngn nht c u tin trc
Nhng cng vic thuc loi I/O bound thng c CPU burst ngn

Process c thi gian thc thi di c th b tr hon v hn nh nu cc process c thi gian thc thi ngn lin tc vo Khng thch hp cho mi trng time-sharing khi khng dng preemption
Cc CPU bound process c u tin thp, nhng mt process khng thc hin I/O c th c chim CPU nu n l process u tin vo h thng
nh thi CPU

38

Shortest Remaining Time First (SRTF) (1/4)


Ch quyt nh ca SJF: nonpreemptive Phin bn preemptive ca SJF:
Nu mt process mi n m c di CPU burst nh hn thi gian cn CPU cn li ca process ang thc thi, th thc hin preempt process ang thc thi Cch lm ny cn c goi l Shortest-RemainingTime-First (SRTF)

nh thi CPU

39

Shortest Remaining Time First (2/4)


(V d ging vd cho SJF) Process Thi im n Burst time (ms) P1 0,0 7 P2 2,0 4 P3 4,0 1 P4 5,0 4 Gin PGantt khi2 nh thi theo SRTF P1 P3 P P4 P1 2
0 2 4 5 7 11 16

Thi gian i trung bnh = (9 + 1 + 0 + 2) / 4 = 3


Tt hn gii thut SJF
nh thi CPU 40

Shortest Remaining Time First (3/4)


Thi gian phc v trung bnh = Thng nng = Thi gian quay vng =
P1 0 2 P2 4 P3 5 P2 7 P4 11 P1 16

nh thi CPU

41

Shortest Remaining Time First (4/4)


Trnh trng hp process c thi gian thc thi di c chim CPU Cn phi qun l{ thi gian thc thi cn li ca cc process C thi gian quay vng tt hn SJF Process c thi gian thc thi ngn c u tin cao C th dn n starvation
nh thi CPU 42

Priority Scheduling
Mi process s c gn mt u tin CPU s c cp cho process c u tin cao nht Ch quyt nh:
Preemptive Nonpreemptive

nh thi CPU

43

Gn u tin
SJF: u tin l thi-gian-s-dng-CPU-don Gn u tin cn c th da vo:
Yu cu v b nh S lng file c m T l thi gian dng cho I/O trn thi gian s dng CPU Cc yu cu bn ngoi nh: s tin ngi dng tr khi thc thi cng vic
nh thi CPU 44

Priority Scheduling
Vn : tr hon v hn nh process c u tin thp c th khng bao gi c thc thi Gii php: aging u tin ca process c tng theo thi gian

nh thi CPU

45

Round Robin (RR) (1/4)


Hm la chon: ging FCFS

1 8 7 6

2 3 4 5

nh thi CPU

46

Round Robin (2/4)


Ch quyt nh: preemptive
Khong thi gian ti a cho php (quantum time, thng 10 - 100 ms) c m bo bng vic s dng timer interrupt Process ang chy khi ht thi gian s c chuyn v cui ca hng i ready

nh thi CPU

47

Round Robin (3/4)


Process Burst time (ms) P1 53 P2 17 P3 68 P4 24 Quantum time = 20 ms Gin Gantt:
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

20

37

57

77

97 117

121 134 154 162

Thng c thi gian quay vng cao hn SJF, nhng li c thi gian p ng tt hn
nh thi CPU 48

Round Robin (4/4)


Thi gian phc v trung bnh = Thng nng = Thi gian quay vng =

P1 0 20

P2 37

P3 57

P4 77

P1

P3 97 117

P4

P1

P3

P3

121 134 154 162

nh thi CPU

49

Quantum time v chuyn ng cnh


Quantum time cng nh th cng c nhiungng/tip S ln ln tc qu trnh chuyn ng cnh (context switch) trong khi thc thi.

nh thi CPU

50

Quantum time v thi gian quay vng


Thi gian quay vng trung bnh khng chc s c ci thin khi quantum ln

nh thi CPU

51

Quantum time cho Round Robin*


Khi thc hin process switch th OS s s dng CPU ch khng phi process ca ngi dng (OS overhead, ph tn):
Dng thc thi, lu tt c thng tin, np thng tin ca process sp thc thi

Performance ty thuc vo kch thc ca quantum time (cn goi l time slice), v hm ph thuc ny khng n gin Time slice ngn th p ng nhanh
Vn : c nhiu chuyn ng cnh. Ph tn s cao.

Time slice di hn th throughput tt hn (do gim OS overhead) nhng thi gian p ng ln


Nu time slice qu ln, RR tr thnh FCFS.

nh thi CPU

52

Quantum time cho Round Robin


Quantum time v thi gian cho process switch:
Nu quantum time = 20 ms v thi gian cho process switch = 5 ms, th ph tn (OS overhead) chim 5 / (20 + 5) = 20% Nu quantum = 500 ms, th ph tn ch cn 1%
Nhng nu c nhiu ngi s dng interactive th s thy p ng rt chm

Ty thuc vo tp cng vic m la chon quantum time Quantum time nn ln trong tng quan so snh vi thi gian cho process switch
V d vi 4.3 BSD UNIX, quantum time l 1 giy

nh thi CPU

53

Round Robin
Nu c n process trong hng i ready, v quantum time l q, nh vy mi process s ly 1/n thi gian CPU theo tng khi c kch thc ln nht l q
S khng c process no ch lu hn (n 1)q n v thi gian

RR s dng mt gi thit ngm l tt c cc process u c tm quan trong ngang nhau


Khng th s dng RR nu mun cc process khc nhau c u tin khc nhau
nh thi CPU 54

Round Robin: nhc im


Cc process dng CPU-bound vn cn c u tin
V d:
Mt I/O-bound process s dng CPU trong thi gian ngn hn quantum time v b blocked i I/O. V Mt CPU-bound process chy ht time slice v lin tc quay tr v hng i ready queue, thng trc cc I/O bound process b blocked.

nh thi CPU

55

Multilevel Queue Scheduling (1/3)


Trng hp cc qu trnh c th c phn thnh nhm, v d: interactive v batch. Hng i ready s c chia thnh nhiu hng i ring r. V d:
foreground (cho cng vic cn giao tip) background (cho cng vic dng b)

Mi hng i s c gii thut nh thi ring. V d:


foreground: dng RR background: dng FCFS
nh thi CPU 56

Multilevel Queue Scheduling (2/3)


nh thi cn phi thc hin gia cc hng i vi nhau
Theo cch c nh (fixed priority scheduling) v d: phc v tt c cc process ca foreground ri mi n background
C kh nng xy ra tr hon v hn nh (starvation)

Chia thi gian (time slice) mi hng i s c ly mt khong s dng CPU nht nh nh thi cho cc process ca mnh. V d:
80% cho foreground (dng RR) 20% cho background (dng FCFS)
nh thi CPU 57

Multilevel Queue Scheduling (3/3)


V d phn nhm cc qu trnh u tin cao nht
System Processes

Interactive Processes Batch Processes

Student Processes
u tin thp nht

nh thi CPU

58

Multilevel Feedback Queue (1/3)


Trong h thng Multilevel Feedback Queue, b nh thi c th di chuyn process gia cc queue ty theo c tnh ca n c quan st. V d:
Nu mt process s dng CPU qu lu, n s b di chuyn sang mt hng i c u tin thp hn Nu mt process ch qua lu trong mt hng i c u tin thp, n s c di chuyn ln hng i c u tin cao hn (aging, gip trnh starvation)
nh thi CPU 59

Multilevel Feedback Queue (2/3)


V d: C 3 hng i
Q0 , dng RR vi quantum 8 ms Q1 , dng RR vi quantum 16 ms Q2 , dng FCFS Cng vic mi s vo hng i Q0. Khi n lt, cng vic s c mt quantum l 8 milli giy. Nu khng tr CPU trong 8 milli giy, cng vic s c a xung ui hng i Q1 Ti Q1, cng vic s c cho mt quantum l 16 milli giy. Nu cng vic khng tr CPU trc khi ht quantum th s b chuyn xung Q2 Cng vic hng i cao preempt cng vic hng i thp
nh thi CPU 60

Gii thut

Multilevel Feedback Queue (3/3)


Multilevel Feedback Queue c xc nh bi cc thng s
C bao nhiu hng i? Vi mi queue s dng gii thut nh thi no? Khi no thng cp mt process? Khi no ging cp mt process?

nh thi CPU

61

Policy v Mechanism *
Rt quan trong trong nh thi v phn phi ti nguyn Policy
iu g (what) nn (hay cn) lm

Mechanism (Implementation)
Lm sao (how) lm iu

V d
Policy: tt c ngi dng cn c cng bng Mechanism: s dng round robin

Policy: cng vic c tr tin cao c u tin cao Mechanism: s dng cc gii thut preemptive
nh thi CPU 62

nh thi trn h thng multiprocessor *


Nu c nhiu CPU th c th thc hin vic chia ti Lm sao chia ti?
Asymmetric multiprocessor Phc tp hn so vi nh thi trn mt processor
Mt master processor s thc hin nh thi cho tt c cc processor cn li
Hoc mi processor c mt hng i ready ring v b nh thi ring Hoc c mt hng i ready chung cho tt c processors
Mt processor c chon lm scheduler cho cc processor khc Hoc mi processor c b nh thi ring v t chon process t hng i chung thc thi
nh thi CPU

Symmetric multiprocessor (SMP)

63

Processor affinity *
Khi mt process chy trn mt processor, c mt s d liu c cache trn b nh cache ca processor Khi mt process c di di sang mt processor khc
Cache ca processor mi phi c repopulated Cache ca processor c phi c invalidated vn ph tn
nh thi CPU 64

Cn bng ti *
Mt processor c qu nhiu ti, trong khi nhng b x l{ khc th li rnh Cn bng ti s dng:
Push migration: mt task c bit s nh kz kim tra ti trn tt c cc processors v cng vic s c y n processor rnh Pull migration: processor rnh s ly cng vic t processor ang bn Mt s h thng (v d Linux) hin thc c hai

Cn phi c s cn bng gia load balancing v processor affinity


nh thi CPU 65

Phng php nh gi gii thut nh thi CPU *

Deterministic modeling Queuing model

nh ngha trc mt tp ti (workload) v kho st performance ca cc gii thut trn cng tp ti Khng tng qut
S dng queuing theory phn tch gii thut S dng nhiu gi thit phc v vic phn tch Khng st thc t Xy dng b m phng v chy th
Vi tp ti gi (thng c sinh t ng) Hoc tp ti c ghi nhn t thc t

M phng (simulation) Hin thc

Vit m ca gii thut v test n trong h thng thc


nh thi CPU 66

Tng kt
S thc thi ca mt process B nh thi chon mt process t hng i ready Cc tiu ch nh thi (thng xung t nhau)
Dispatcher thc hin switching li CPU, thi gian ch, thi gian p ng, thng nng, FCFS, SJF, Priority, RR, Multilevel Feedback Queue, Processor affinity v cn bng ti M hnh, m phng, hin thc
nh thi CPU

Cc gii thut nh thi

nh thi trn h thng multiprocessor (oc thm) Phng php nh gi gii thut nh thi CPU (oc thm)

67

Mt s vn bn thm
Cch lm tt nht l adaptive thc hin ti u hon ton th cn phi tin on ng tng lai (!)
Thc t th a s cc gii thut li cho kt qu gn u tin cao nht cho cc process c nhu cu t nht Vn nh thi c xu hng chuyn sang tweak and see

Cc tiu ch no nn ti u?
C rt nhiu, ty vo h thng, ng cnh m chon la
nh thi CPU 68

Bi tp 1
Process Burst Time P1 10 P2 29 P3 3 P4 7 P5 12 Tt c u n thi im 0 Xt cc gii thut FCFS, SFJ, v RR vi quantum time = 10 Gii thut no cho
thi gian i trung bnh nh nht? thng nng cao nht? thi gian quay vng trung bnh ca process nh nht?

nh thi CPU

69

Bi tp 2
FCFS: thi gian i trung bnh l 28 milli giy, hy tnh cc thng s khc

nh thi CPU

70

Bi tp 3
SJF (nonpreemptive): thi gian i trung bnh l 13 milli giy, hy tnh cc thng s khc

nh thi CPU

71

Bi tp 4
RR: thi gian i trung bnh l 23 milli giy, hy tnh cc thng s khc

nh thi CPU

72

You might also like