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)

 Interrupt­driven 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à interrupt­driven 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): CD­ROM, DVD­ROM

 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: file­system 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 time­sharing. ị ắ đ 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