ổ
Chương 1 (b sung)
ơ b n c a h th ng máy tính
ấ
ả ủ ệ ố ủ ệ ố ậ ệ ố
ấ ấ
ấ
ệ ố A. H th ng máy tính ế Ki n trúc c Cơ ch v n hành c a h th ng ế ậ ệ ố C u trúc h th ng xu t nh p (I/O) C u trúc và phân c p h th ng l
ưu trữ
1
ế
ả ủ ệ ố
Ki n trúc c
ơ b n c a h th ng máy tính
PC
Keyboard
Monitor
Disks
Printer
Mouse
Disk controller
USB controller
Graphics adapter
CPU
MEMORY
ữ ệ
ệ
Đ m d li u (local buffer)
2
ủ
ộ
Chu trình ho t ạ đ ng c a CPU
HALT
Start
Fetch Next Instruction
Execute Instruction
ả
ắ
1. Chu trình đơn gi n không có ng t quãng
Interrupts disabled
Start
Fetch Next Instruction
Check for interrupt; Process interrupt
Execute Instruction
Interrupts enabled
HALT
ể
ắ
ề 2. Chu trình có đi u khi n ng t quãng
3
ắ
Ng t quãng
ắ
ạ
Phân lo i: ng t quãng do
ố ọ
ậ ụ ự ỳ ị ớ ấ ợ đó theo đ nh k
ụ ế ả i trong I/O
ỏ
i memory parity,… ọ ụ ệ ố ● Program: tràn s h c, chia cho 0, truy c p b nh b t h p pháp ộ ● Timer: cho phép CPU th c thi m t tác v nào ộ ● I/O: k t thúc tác v I/O, x y ra l ỗ ● Hardware failure: Hư h ng ngu n, l ồ ỗ ● Trap (software interrupt): yêu c u d ch v h th ng (g i system call),… ị ầ
4
2.1 Fig 2.2
ụ ầ ồ ờ Lư c ợ đ à th i gian khi process có yêu c u các tác v I/O
ử
ắ
Quá trình x lý ng t quãng
User Program
Interrupt vector table
0
0
0
(cid:0)
2
(cid:0)
00ffe23f
interrupt 0x21 routine
(cid:0)
1
21
00ffe23f
ret
i
int. 0x21
i+1
N
ffffffff
3
M
Interrupt ự handler th c thi
5
ử
ắ
Quá trình x lý ng t quãng (tt)
I/O interrupts
ỉ
ọ (hình ch minh h a I/O interrupt)
6
ử ụ ắ ử ụ ắ Không s d ng ng t quãng S d ng ng t quãng
ệ ố
ấ
C u trúc h th ng I/O
ự
ệ
ậ
ỹ
Các k thu t th c hi n I/O
ụ
(cid:0)
ọ ữ ệ Polling, ví d CPU đ c d li u: ● Đ đ c d li u t ế ị ể ọ ữ ệ ừ ộ m t thi ộ ế ậ t l p m t bit (bit I/O port), CPU thi ể thanh ghi đi u khi n (control register) ệ ệ hi u l nh
t b I/O (thông qua 1) c a ủ ể đ báo
ề ọ đ c cho I/O controller.
ế ị thi t b I/O,
(cid:0) ● I/O controller đ c word d li u t ọ ể ề xóa bit đi u khi n (bit ữ ệ ừ 0)
ỗ ● I/O controller không gây ra ng t m i khi xong
ọ
ế ị ể ắ vi cệ . CPU ph i ả đ c status bit ( polling) đ ể ạ ki m tra tr ng thái thi t b I/O
ọ
8
13.2.1
● Khi I/O controller s n sàng, CPU đ c word d ữ ẵ ữ ệ thanh ghi d li u (data register); CPU ế ọ đ c word k . ệ ừ li u t ử ệ g i l nh
ệ
ậ
ỹ
ự Các k thu t th c hi n I/O (tt)
Interruptdriven I/O
X
ẽ ● CPU không poll mà I/O controller s gây ra
X
ẵ ỗ
ắ ụ ng t quãng m i khi xong và s n sàng cho tác ớ . v I/O m i
ự ệ t b I/O th c thi l nh, CPU có
● Trong lúc thi ể ự ệ ế ị th th c thi công vi c khác.
ề
ờ
(cid:0) ở ọ
● Polling và interruptdriven I/O đ u tiêu t n ố ả ủ ử th i gian x lý c a CPU b i vì CPU ph i ữ ệ đư c ợ đ c/ghi memory copy byte d li u (programmed I/O, PIO).
ế ị ● Thích h p cho các thi ợ t b I/O có t c ố đ ộ
9
13.2.2
không cao (keyboard, mouse)
ệ
ậ
ỹ
ự Các k thu t th c hi n I/O (tt)
Direct Memory Access (DMA)
ế ● CPU g i yêu c u ử ầ đ n module DMA (= DMA
controller)
ữ ộ ● Module DMA chuy n m t kh i d li u gi a ể
ế ị ố ữ ệ ầ t b I/O mà không c n CPU
ớ ộ b nh và thi can thi p.ệ
ậ ộ ● Khi xong m t tác v g i / nh n thì phát kh i ở ụ ử
ộ ắ m t ng t quãng.
ỉ đo n kh i
● CPU ch tham gia vào giai ủ ạ ậ ữ ệ ề ệ
ậ ữ ệ ầ ở đ u và ế k t thúc c a vi c truy n / nh n d li u ● Trong khi đang truy n / nh n d li u, CPU ề
có th th c thi công vi c khác
10
2.2.2, 13.2.3
ể ự ● Thích h p cho các thi ợ ệ ế ị t b có t c ộ ố đ cao ( đĩa)
ệ
ậ
ỹ
ự Các k thu t th c hi n I/O (tt)
ự
ệ
Phương pháp th c hi n I/O
Synchronous
Asynchronous
kernel
kernel
: “bypassing”
11
2.2.1 Fig 2.3
ệ
ậ
ỹ
ự Các k thu t th c hi n I/O (tt)
ầ
ợ
Hàng đ i các yêu c u I/O, vd
ợ
Các hàng đ i (wait queue) I/O
12
2.2.1 Fig 2.4
C u trúc & phân c p
ấ ệ ố h th ng l
ấ ưu trữ
ệ ố H th ng l
ưu tr ữ
ữ
ữ
ứ
ạ
ộ
ọ
Lưu tr (memory, storage) là m t trong nh ng d ng th c I/O quan tr ng
ộ ớ ● B nh chính (main memory, primary memory)
CPU ch có th truy c p tr c ti p thanh ghi (registers) và b nh ROM, RAM
ự ể ế ậ ộ ớ ỉ
ộ ● B nh ph ớ ụ (secondary storage)
H th ng l ệ ố
ữ ưu tr thông tin ề ữ (nonvolatile storage) b n v ng
Đĩa t
Đĩa quang (optical disk): CDROM, DVDROM
Flash ROM: USB disk
14
2.3
ừ (magnetic disk): đĩa m m, ề ứ đĩa c ng, b ăng t ừ
ệ ố
ấ
Phân c p h th ng l
ưu trữ
ộ T c ố đ nhanh
vd: filesystem data
ỗ
ẻ
Giá thành m i byte r ớ ợ Dung lư ng l n
15
2.4 Fig 2.6
ệ ố
ấ
Phân c p h th ng l
ưu trữ
ụ M c tiêu
ớ
ấ ớ
ữ
ầ
ộ
● Giá thành m i byte th p g n v i m c l ứ ưu tr r nh t ầ ỗ ấ ữ ẻ ● T c ố đ nhanh g n v i m c l ấ ứ ưu tr nhanh nh t
16
ỹ
ậ K thu t caching
Caching
ạ
T i sao dùng cache?
ớ ữ ệ ● n p trạ ư c d li u vào thi ế ị ưu tr t c ộ ữ ố đ cao h t b l ơn
ụ ộ
ớ ộ ộ ộ ớ ữ ố đ CPU và t c ố đ b nh RAM, đĩa,…
nguyên lý c c b (locality principle)
ữ ệ ớ
ớ
ả
ả
ộ
D li u l n, còn kích th
ỏ (cid:0) ư c cache nh
ph i qu n lý cache: thay n i dung
cache
ậ
ỹ
ề
Trong k thu t caching, m t d li u có th
ể đư c lợ ưu tr nhi u n
ơi (cid:0)
c n ầ
ả
ộ ữ ệ ữ ữ ệ cache coherency problem
ấ b o ả đ m tính nh t quán d li u:
ữ ệ A: d li u
17
2.4 Fig 2.7
● Chênh l ch l n gi a t c ệ Vì sao caching “works”? (cid:0)
Dual mode
ả
ề
ụ
ứ
ệ ệ đi u hành và ch
ương trình ng d ng
ầ ứ ạ ủ
ự
ư ngờ
ọ
M c ụ đích: b o v h ả Gi i pháp ầ ỹ ỗ ợ ậ dual mode: c n có ph n c ng h tr • K thu t ● User mode – th c thi v i quy n h n c a user bình th ề ớ ● Kernel mode (còn g i là supervisor mode, system mode, monitor mode) –
ệ ố
ề
ấ có toàn quy n truy xu t tài nguyên h th ng
18
2.5.1
Dual mode (tt)
ầ ứ
ể ể
ệ
Ph n c ng có thêm
mode bit đ ki m soát mode hi n hành:
ế ị ế ở ị ỗ ả ạ t b ngo i vi, do l i x y ra,…), CPU
user mode, n u CPU b ng t (do thi ể ắ ự ● mode bit = 0: kernel mode ● mode bit = 1: user mode ● Đang ẽ s chuy n sang kernel mode và th c thi interrupt service routine t ương ng.ứ
19
ự ọ Dòng th c thi và thay ổ đ i mode khi g i system call
ầ ứ
ệ
ệ
ả
B o v ph n c ng – L nh I/O
Gi
ả ề privileged ệ i pháp: l nh I/O đ u là
ự ợ ệ đư c l nh ờ ọ system call trap), ph i thông qua l
ứ
ầ
I/O ((cid:0) System call ● Là phương th c duy nh t
ấ đ process yêu c u
ị
ề
các d ch v c a h
ể ụ ủ ệ đi u hành
ẽ
ề
ề
ế
ắ ể đư c chuy n ờ
ồ
trap), quy n ề ể đ n trình ph c v ụ ụ t l p
ế ậ mode = 0
đ ng th i thi
● System call s gây ra ng t m m ( ợ đi u khi n ng t tắ ương ng, ứ (kernel mode).
ể
● H ệ đi u hành ki m tra tính h p l
ự
ợ ệ đúng đ n ắ , ầ ồ ả ố ố đ i s , th c hi n yêu c u r i tr ề
ế ế
ờ
i
ề ệ ủ c a các ề ệ ể quy n ề đi u khi n v l nh k ti p ngay sau l ọ mode = 1. g i system call,
20
2.5.2 Fig 2.8
instruction ● User mode program không th c thi ả i g i
ầ ứ
ệ
ả
ộ
ớ B o v ph n c ng – B nh
ệ ộ
ả
ớ Vd: b o v b nh dùng 2 thanh ghi
ậ
ộ
ở
ẽ
ớ Truy c p b nh ngoài vùng xác base và thanh ghi limit s sinh ra
ị đ nh b i thanh ghi trap
ạ
ệ
ề
ị L nh n p giá tr cho các thanh ghi base và thanh ghi limit đ u là privileged instruction
(b)
(a)
21
2.5.3 Figs 2.9 + 2.10
ầ ứ
ệ
ả
B o v ph n c ng –
CPU
ệ
B o v CPU
ợ
ả
ể ề đi u khi n ề
ặ ở
ắ
ợ ệ Cơ ch th c hi n là dùng timer
ể đ kích kh i các ng t quãng
ả ● B o ả đ m OS duy trì đư c quy n ● Tránh trư ng h p CPU b k t trong các vòng l p vô h n ờ ạ ị ẹ ế ự ỳ ế
ầ
ỗ
ế
ắ
ợ
ạ (cid:0) đư c kích ho t
ề h ệ đi u hành
ể
ị đ nh k ● B ộ đ m timer s gi m d n sau m i xung clock. ẽ ả ● Khi b ộ đ m timer b ng 0 thì ng t timer ằ ề ề đi u khi n.
ẽ ắ s n m quy n
ệ
ế
ộ
ạ L nh n p giá tr b
ị ộ đ m timer là m t privileged instruction.
22
2.5.4
Timer
ệ
ỳ N ms (N: time slice, quantum time) và
ể ử ụ Có th s d ng timer ế ậ ờ
t l p timer gây ng t ỗ ầ
● Thi ị
ắ
ể ự đ th c hi n timesharing. ị ắ đ nh k đ nh th i CPU sau m i l n ng t.
ể
ờ
Có th dùng timer
ể đ tính th i gian trôi qua (elapse time)
23
2.5.4