Tải bản đầy đủ (.pdf) (143 trang)

Giáo trình nguyên lý hệ điều hành phần 2 hồ đắc phương

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (11.76 MB, 143 trang )

Chương 8
QUÀN LÝ THIÉT BỊ
HĐH kiểm soát hoạt động các thiết bị vào/ra gắn với máy tính bằng cách
phát lệnh điếu khiển thiết bị; phát hiện, xử lý ngắt và quản lý lỗi. HĐH
cung cấp giao diện đơn giản giúp người sử dụng và lập trinh viên sử
dụng thiết bị dễ dàng. Để dễ ghép nối các thiết bị mới, giao diện giữa hệ
thống với các thiết bị nên giống nhau. Tốc độ vào/ra nhỏ hơn tốc độ tính
toàn (CPU) hàng triệu lần và tỷ lệ này khõng có xu hướng giàm. Do vậy,
các hệ thống máy tinh hiện đại có gắng thục hiện xen kẽ thao tác vào/ra
với thao tác tinh toán để tàng hiệu suất tổng thể của hệ thống. Chương
này trình bày cách thức HĐH quản lý thiết bị vào/ra: cách thức HĐH quản
lý thiết bị, các phương pháp quản lý cơ bản, cách sử dụng bộ đệm để
tăng hiệu suất vào/ra và cấu trúc tổng quát của trình điều khiển thiét bị.

8 .1 . N G U Y Ê N L Ý H O Ạ T Đ Ộ N G

K ỹ sư đ iệ n tử co i th iế t bị v à o /ra là tổ h ợ p vi m ạ ch , d ây d ẫ n , n g u ồ n đ iện ,
m o to r. L ập trìn h v iê n "g iao tiế p " vớ i th iế t bị th ô n g q u a g iao d iệ n p h ầ n m ềm
v à đ ây là k h ía cạ n h m à c h ú n g ta q u an tâm .
8 .1 .1 . P h â n lo ạ i t h iế t b ị v à o /r a

T h iế t bị v à o /ra có th ể đ ư ợ c c h ia th à n h hai loại là th iế t bị h ư ớ n g kh ố i v à
th iế t bị h ư ớ n g k ý tự . T h iế t bị h ư ớ n g k h ố i lư u trữ th ô n g tin tro n g cá c k h ố i có
k íc h th ư ớ c cố đ ịn h (v í d ụ ổ đ ĩa từ ), th ư ờ n g n ằ m tro n g k h o ả n g từ 5 1 2 tớ i
3 2 7 6 8 b y te. T ín h c h ấ t c ủ a th iế t bị h ư ớ n g k h ố i là có th ể đ ọ c h o ặ c ghi các
k h ố i đ ộ c lập v ớ i n h au . N ế u tiế p tụ c p h â n loại "m ịn" h ơ n , có th ể p h â n th iế t bị
h ư ớ n g k h ố i ra h ai k iể u là k iể u có th ể đ á n h đ ịa ch i v à k iể u k h ô n g th ể đ án h
đ ịa chi. Ố đ ĩa là th iế t bị có th ể đ á n h đ ịa ch ỉ ch o từ n g k h ố i, vì trụ c q u a y có

132



k h ả n ăn g d ịc h tớ i bấl kỳ vị trí nào. M ộ t k iểu th iế t bị v à o /ra k h ác là h ư ớ n g ký
tự (th iế t bị tạo ra h o ặc n h ận d ã y từ n g k ý tự ). K h ô n g th ể đ án h đ ịa chi và
k h ô n g có q u á trin h d ịc h c h u y ể n tro n g k iể u th iế t bị này. M á y in, ca rd m ạn g ,
co n c h u ộ t (đ ể trỏ ) v à h ầ u h ết các th iế t bị k h ô n g h o ạ t đ ộ n g g iố n g ổ đ ĩa đ ều
có th ể x em n h ư th iể t bị h ư ớ n g ký tự. P h ân loại n ày c h ư a th ự c sự đ ầy đ ủ , vì
m ộ t số th iế t bị k h ô n g n ằm tro n g loại n ào . C h ẳ n g h ạn , đ ồ n g h ồ h a y m à n h ình
v ớ i bộ n h ớ án h xạ. T u y n h iê n , m ô h ìn h th iế t bị h ư ớ n g kh ố i v à h ư ớ n g k ý tự
k h á tổ n g q u á t đ ể có th ể là m n ền tả n g g iú p H Đ H tạ o ra c ơ ch ế q u ả n lý h o ạt
đ ộ n g c ù a th iế t bị. S ự c h ê n h lệch rất lớ n g iữ a tố c đ ộ các th iế t bị k h iến v iệc
th iế t k ế p h ần m ềm k h ó k h ăn h ơ n rấ t n h iều . M ặc d ù tố c đ ộ h o ạt đ ộ n g c ủ a
thiết bị đ ư ợ c cải thiện, n h ư n g tốc độ này không tăng nh an h b ằn g tốc độ C P U .
8 .1 .2 . B ộ đ iề u k h iể n t h iế t b ị

T h iế t b ị v à o /ra g ồ m hai p h ần c ơ b ản là p h ần c ơ khí v à p h ần đ iệ n tử,
đ ư ợ c th iế t k ế đ ộ c lập v ớ i n h au . P h ần đ iệ n tử đ ư ợ c gọ i là d e v ice c o n tro lle r
(b ộ đ iề u k h iể n ) h o ặc a d a p te r (b ộ đ iề u hợ p). T rê n m áy tín h cá n h ân (P C ), bộ
đ iề u k h iể n th ư ờ n g là b ản m ạ ch in có th ể cắm v ào k h e cắ m m ờ rộng. P h ần c ơ
k h í là Ih iết bị.
B á n g m ạ ch c ủ a b ộ đ iề u k h iể n
\

th ư ờn g

c ó



,


,

^

Câm vào bàng m ạch chính

,

phần kết nối vớ i thiết bị.

N h iề u bô đ iề u k h iể n có th ể q u à n lý 2,
,
o i - i i - . Ắ
NỐI v ớ i th iẻ t bj
4 h o ặ c 8 th iê t bị g iô n g h ệt n h au .
T h ư ờ n g g ia o d iệ n g itta b ộ đ iề u k h iề n
J
51^1
v à th iê t bị đ u ợ c ch u â n h ó a, h o ặc th eo
c h u ẩ n c h ín h th ứ c (IE E E , A N S I, IS O ), h o ặc c h u ẩ n k h ô n g c h ín h th ứ c n h ư n g
đ ư ợ c th ừ a n h ận rộ n g rãi. V í d ụ , p h ần lớ n các sản p h ẩm ổ đ ĩa đ ều tu â n th e o
c h u ẩ n ID E h ay S C S I.
G ia o d iệ n g iữ a b ộ đ iề u k h iể n v à th iế t bị là g iao d iệ n ở m ứ c th ấp , ở m ứ c
cao có th ể co i ổ đ ĩa đ ư ợ c c h ia th à n h n h iề u trac k , trac k có 2 5 6 se c to r và
se c to r c h ứ a 512 byte. T u y n h iê n , ờ m ứ c vật lý th ấ p n h ất (b ên tro n g ổ đ ĩa ) là
d ò n g các b it, b ắt đ ầ u vớ i m ộ t tiê u đề p re a m b le (ch u ồ i b it đ án h d ấ u sự bắt
đ ầ u ), sau đ ó là 4 0 9 6 b it ứ n g v ớ i m ộ t se cto r v à cu ố i c ù n g là các b it k iểm tra
các bit n ày cò n đư ợc gọi là m ã sử a lỗi (Error C orectin g C o d e E C C ). P h ần tiê u đề p re a m b le đ ư ợ c ghi tro n g q u á trìn h đ ịn h d ạn g đ ĩa , ch ứ a

(c h e ck su m ),


133


số h iệu se c to r v à c y lin d e r, k ích th ư ớ c se cto r và các th ô n g tin phục vụ ch o
m ụ c đ íc h đ ồ n g bộ. C ô n g việc cù a bộ đ iều k h iể n ổ đ ĩa là ch u y ể n d ò n g b it
san g k h ố i b y te v à sử a n h ữ n g lỗi có thể. Đ ầu tiên các b it lần lư ợ t đ ư ợ c g h ép
lại th à n h m ộ t k h ố i b y te v à lư u tạ m tro n g bộ n h ớ đ ệm c ủ a bộ đ iề u k h iển . S au
đ ó , b ộ đ iều k h iể n th ự c h iệ n k iể m tra g iá trị các b it sừ a lồi v à nếu x ác đ ịn h
k h ô n g có lỗi th ì k h ố i b y te đ ư ợ c ch u y ể n v ào bộ n h ớ tro n g . B ộ đ iề u k h iể n
m àn h ìn h cũ n g là m ộ t d ạ n g th iế t bị h o ạt đ ộ n g th e o c h u ồ i b it liên tiếp. B ộ
đ iều k h iể n đ ọ c b y te (là m ã ký tự cần h iển th ị) từ bộ n h ớ v à sa u đó tạ o ra tín
h iệu đ iề u c h ỉn h d ò n g C R T in ra m àn hình. B ộ đ iều k h iể n c ũ n g tạ o ra tín
h iệu đ ể y êu c ầ u d ò n g C R T q u é t lại th eo c h iề u d ọ c sau khi đ ã q u ét h ết m ộ t
d ò n g , v à q u ét lại đ iể m đ ầ u tiê n c ù a m àn h ìn h sau khi q u é t x o n g to àn bộ m àn
h ìn h . N ếu k h ô n g có b ộ đ iề u k h iể n , H Đ H phải tự th ự c h iện v iệc q u é t m àn
h ìn h . N h ư n g b ây g iờ , H Đ H chi cần k h ở i tạo bộ đ iề u k h iể n vớ i m ộ t vài th a m
số (số lư ợ n g k ý tự h ay số đ iể m ản h trên m ộ t d ò n g v à số lư ợ n g d ò n g trê n
m àn h ìn h ). S au khi k h ở i đ ộ n g , bộ đ iều k h iể n trự c tiếp k iể m so á t th iế t bị.
8 .2 . C H IÉ N L Ư Ợ C Q U Ả N L Ý T H IÉ T BỊ
T iềo trìD b
G ia o diện H ệ tb ố n g

ứ n g dụ D g

B ộ quào lý
Fỉle

11_____
Đ ộc lập T b lể t b |

P bụ ỉh u ộ c T h ỉể t b|
G U o diệp P hần cứni^ y

w


B ộ đ lề u k h lễ n T h ié t b|

Hình 8.2. Bộ phận quản lý thiết bị của HĐH

T ro n g H Đ H , b ộ p h ận q u ả n lý th iế t bị đ iều k h iể n th iế t bị và c u n g cấ p
ch o tiế n trìn h sử d ụ n g m ứ c trừ u tư ợ n g th iế t bị th ấ p n h ất. C ó n h iề u p h ư ơ n g
p h á p trừ u tưọm g h ó a k h ác n h au . P h ư ơ n g p h á p đ ơ n g iả n n h ấ t là v à o /ra trự c
tiế p (tiế n trìn h trự c tiế p ch u y ể n d ữ liệu tớ i các th a n h ghi tro n g bộ đ iề u k h iể n
th iế t bị). N ếu có th ê m c ơ ch ế th ă m dò (p o llin g ), p h ầ n m ề m đ iề u k h iể n th iế t
bị sẽ k iể m tra th a n h g h i trạn g th ái tro n g bộ đ iề u k h iể n đ ể x ác đ ịn h y êu c ầ u

134


n ào đ ó đ ã h o à n th à n h ch ư a. T u y n h iên , n ếu hệ th ố n g sử d ụ n g n g ắt, tiế n trìn h
ứ n g d ụ n g k h ô n g p h ải tự m in h k iểm Ira x em th iế t bị đ ã th ự c h iệ n x o n g cô n g
v iệ c c h ư a . P h ư ơ n g p h á p th ứ h ai là v à o /ra q u a á n h x ạ bộ nhớ. B ộ n h ớ của
ih iế t bị d ư ợ c án h x ạ v ào m ộ t p h ầ n k h ô n g g ia n bộ n h ớ hệ th ố n g . C ơ ch ế cuối
c ù n g là s ử d ụ n g c ơ c h ế tru y cập bộ n h ớ trự c tiế p (D M A - D irect M em o ry
A c c e ss), tứ c là có th iế t bị c h ịu trách n h iệ m sao ch é p d ữ liệu từ bộ n h ớ đến
th a n h ghi tro n g bộ đ iề u k h iể n th iế t bị m à k h ô n g c ầ n C P U đ iề u khiển.
8 .2 .1 . T ổ c h ứ c h ệ t h ố n g v à o /r a

T ro n g H Đ H h iệ n đ ại, có h ai p h ư ơ n g p h á p cài đ ặ t b ộ p h ận q u ả n lý th iết

bị; h o ặ c th ô n g q u a s ự tư ơ n g tá c g iữ a trìn h đ iề u k h iể n th iế t bị (d ev ic e d riv er)
vớ i b ộ q u ả n lý n g ắt (c ơ ch ế v à o /ra có n g ắt), h o ặ c h o à n to à n b ằ n g trìn h đ iều
k h iể n th iế t bị n ếu k h ô n g sử d ụ n g n g ẳt (c ơ ch ế v à o /ra th ă m dò). H ìn h 8.3
m in h h ọ a c á c th à n h p h ầ n tro n g c ả hai c ơ ch ế này. N ế u m u ố n sử d ụ n g th iế t
bị, tiế n trìn h ím g d ụ n g g ử i lệ n h cần th ự c h iệ n (cù n g vớ i d ữ liệu n ếu có ) tới
trin h đ iề u k h iể n th iế t bị.
T rìn h đ iề u k h iể n th ự c h iệ n hai v iệ c sau:
1. C à i đ ặ t A P l - g ia o d iệ n đ ể ứ n g d ụ n g sử d ụ n g khi m u ố n tư ơ n g tác với
th iế t bị.
2. D ịc h n h ữ n g lệ n h m ứ c ca o (từ ứ n g d ụ n g gử i x u ố n g ) th à n h các lệnh
m ứ c th ấ p (p h ụ th u ộ c v ào từ n g th iế t bị cụ thể).
Đ ể th u ậ n tiện , g ia o d iệ n g iữ a các trin h đ iề u k h iể n n ên g iố n g n h au , vì
khi đ ó , n g ư ờ i lập trìn h n ếu b iế t sử d ụ n g m ộ t th iế t bị sẽ d ễ d àn g làm v iệ c với
các th iế t b ị k h ác . T u y n h iê n , d o c h ịu trác h n h iệ m q u à n lý từ n g th iế t bị đặc
th ù , n ê n trin h đ iề u k h iể n p h ải có k h ả n ă n g đ ư a ra lệ n h c h o từ n g th iế t bị v à rõ
rà n g c á c lệ n h n ày p h ụ th u ộ c v à o bộ đ iề u k h iể n th iế t bị.
8 .2 .2 . V à o /r a t r ự c t iế p q u a th ă m d ò

T ro n g c ơ ch ế v à o /ra trự c tiế p , C P U c h ịu trác h n h iệ m c h u y ể n d ữ liệu
g iũ a b ộ n h ớ c h ín h v à th a n h ghi tro n g bộ đ iề u k h iể n th iế t bị. T rìn h đ iều
k h iể n đ ọ c c ờ b u s y -d o n e trên th iế t bị, h o ặc sử d ụ n g n g ắt đ ể "th ăm d ò " 'th iế t
bị h o à n th à n h n h iệ m v ụ ch ư a. T a trìn h b ày hai th a o tác c ơ b ản n h ất củ a C P U
là k h ở i đ ộ n g th iế t b ị v à th ă m d ò th a n h ghi trạ n g thái.

135


H ình 8.3a m in h h ọ a các bước ch u y ển d ữ liệu từ thiết bị vào b ộ n h ớ trong;
1. T iến trìn h ứ n g d ụ n g y êu cầ u đ ọc d ữ liệu.
2. T rìn h đ iề u k h iể n k iểm tra th a n h ghi trạ n g thái x em th iế t b ị có b ận

k h ô n g . N ế u b ận , trìn h đ iề u k h iể n p h ải chờ .
3. T rìn h đ iề u k h iể n k h ở i tạo th iế t bị b ằn g c á c h ghi lệ n h c ầ n th ự c h iệ n
(re a d ) v ào th a n h ghi lện h c ủ a bộ đ iề u k h iển .
4. T rìn h đ iề u k h iể n k iểm tra th iế t bị đ ã th ự c h iệ n x o n g lệ n h đ ọ c h ay
ch ư a b ằ n g cá c h đ ịn h kỳ đ ọ c th a n h ghi trạ n g th ái.
5. T rìn h đ iề u k h iể n sao c h é p g iá trị (các ) th a n h ghi d ừ liệ u tro n g b ộ
đ iề u k h iể n v ào k h ô n g g ia n n h ớ củ a tiế n trìn h .
T h a o tác g h i d ữ liệ u đ ư ợ c th ự c h iệ n tư ơ n g tự. T ro n g c ơ c h ế v à o /ra trự c
tiế p q u a th ă m d ò , y êu c ầ u v à o /ra đ ư ợ c th ự c h iệ n th ô n g q u a tưorng tác vớ i
trìn h đ iề u k h iể n , đ iề u n ày "ch e d ấ u " to à n b ộ h o ạ t đ ộ n g c ủ a p h ầ n c ứ n g c ù a
b ộ đ iề u k h iển . N h ư ợ c đ iể m c ủ a c á c h tiế p cậ n n ày là h iệ u su ấ t sử d ụ n g C P U
th ấ p d o C P U p h ải th ư ờ n g x u y ê n k iể m tra tấ t cả cá c th iế t bị x e m đ ã h o àn
th à n h th a o tác v à o /ra ch ư a. C ó th ể k h ắc p h ụ c đ iề u n à y b ằ n g cá c h sử
d ụ n g ngắt.
Giao diệo vỡi Hệ ibốDg

NUỸb

D * U fi

Gi lodỊ^DRệlbó^

BÌA|tT|Bs

riiB ỉkyc rtad

readdrktr

Tbõtvciiríle


vríte drhvr

7

Da-ì»
H»dlfr
ỉalempt

GiJO diệi vởỉ PhằD

,_

Giio díệi PhiD c n
Coãmud 11 Statis

ll

Data

Bộ Điền kbỉéa Thiết bj

(a) Thăm dò

1

1CDBaiu4 ||

Stitos 1

DiU


1

BôĐỉèi kkiểaThỉcl bf

(b) Ngắt

Hình 8.3. Cài đặt bộ điều khiển thiết bj
8 .2 .3 . V à o /r a s ử d ụ n g n g ắ t

Đ ối vớ i h ệ th ố n g m á y tín h c á n h ân , c ấ u trú c n g ắ t đ ư ợ c th ể h iệ n tro n g
H ìn h 8.4. N g ắ t h o ạ t đ ộ n g n h ư sau ; K hi th ự c h iệ n x o n g c ô n g v iệ c đ ư ợ c giao,
th ié t bị gửi tín h iệ u tớ i ch ip đ iề u k h iể n n g ẳ t g ắn trên b o m ạ c h ch ủ . P hụ
th u ộ c v ào tín h iệ u đ ế n từ d ây d ẫ n n ào , b ộ đ iề u k h iể n n g ắ t x á c đ ịn h đ ư ợ c
th iế t bị g ây ra n g ắt.
136


1 T h lểt b | k ế t th ú c c ỏ n g VÌẬC

Hình 8.4. Cơ chế hoạt động của ngắt

N ế u tại th ờ i đ iể m n ào đó có đ ú n g m ộ t n g ắ t x u ấ t h iệ n , b ộ đ iề u k h iể n sẽ
x ử lý n g ắ t n g a y lập tức. N h ư n g khi x u ấ t h iệ n n h iề u n g ắt, thì hệ th ố n g ư u tiên
x ử lý n g ắ t có đ ộ ư u tiên cao trư ớ c. B ộ đ iề u k h iể n n g ắt g án số th ứ tự ch o m ồi
đ ư ờ n g đ ịa chi x ác đ ịn h th iết bị và tạo ra tín h iệ u n g ắt tư ơ n g ứ n g gửi tới
C P U . T ín h iệ u n g ắ t k h iế n C P U tạm d ừ n g c ô n g v iệc đ a n g th ự c h iệ n để
c h u y ể n sa n g x ử lý n g ắt, số h iệ u đ ư ờ n g đ ịa ch i đ ư ợ c sử d ụ n g làm chi số tra
c ứ u tro n g b ản g v e c to r n g ắt đ ể x ác đ ịn h đ ịa c h ỉ đ ầ u tiê n c ủ a đ o ạn chưcm g
trìn h x ử lý ng ất. B ả n g v e c to r n g ắt có th ể đ ư ợ c gh i c ứ n g tro n g m á y , h o ặc có

th ể n ằm tro n g b ộ n h ớ , v à hệ th ố n g sử d ụ n g th a n h ghi đ ặ c b iệ t tro n g C P U trỏ
tới đ ịa ch ỉ b ả n g v e c to r ng ắt. N g a y sau khi b ắt đ ầ u ch ạ y , th ù tục x ử lý n g ắ t sẽ
ghi g iá trị x ác đ ịn h n ào đ ó trên m ộ t c ổ n g c ủ a bộ đ iề u k h iể n n g ắt v à o /ra để
x ác n h ận n g ắt đ ã đ ư ợ c x ử lý, khi đ ó bộ đ iề u k h iể n có th ể tạo ra n g ắt m ớ i.
C P U ch ỉ gửi tín h iệ u x ác n h ận ch o tớ i khi có th ể x ử lý đ ư ợ c n g ắt tiế p th e o ,
và d o đ ó trá n h đ u ợ c x u n g đ ộ t k h i n h iề u n g ấ t x à y ra đ ồ n g th ờ i.
ỉệ th ố n g p h ải g h i lại m ộ t số th ô n g tin trư ớ c khi k h ở i đ ộ n g th ủ tụ c x ử lý
n g ắt. N h ừ n g th ô n g tin n ào đ ư ợ c ghi v à ghi v ào đ â u p h ụ th u ộ c v ào k iến trú c
1

C P U . ít n h ấ t p h ải g h i lại th a n h ghi P C để sa u k h i x ử lý x o n g n g ắ t cò n q u ay
lại c h ư ơ n g trìn h cũ . N h ư n g c ũ n g có m ộ t số k iế n trú c p h ứ c tạp y ê u cầ u p h ải
ghi lại tấ t c ả các th a n h ghi.
N ếu lư u v ào th a n h g h i, th ì các n g ắt liê n tiế p n h a u có thể ghi đ è lên
th a n h g h i v à d o đ ó d ừ liệu có th ể bị m ất. D o v ậy , p h ần lớ n C P U ghi th ô n g
tin v ào n g ă n x ếp . ở đ ây có th ể lư u v ào n g ăn x ế p c ủ a H Đ H h o ặc n g ăn x ếp
cù a tiế n trin h n g ư ờ i d ù n g . M ộ t v ấ n đ ề k h ác là, C P U h iệ n đại đ ề u th e o cẩu
trú c đ u ờ n g ố n g (p ip e lin e ), h o ặc cấu trú c siê u v ô h ư ớ n g (su p e rsc a la r). T ro n g
các h ệ th ố n g m á y tín h tru ớ c k ia, sau khi k ết th ú c m ộ t ch i th ị, c h ư ơ n g trìn h

137


h o ặ c p h ầ n c ứ n g k iể m tra x e m có x u ấ t h iệ n n g ắ t h a y k h ô n g . N ế u c ó , g iá trị
P C đ ư ợ c g h i v à o n g ă n x ế p v à c h ư ơ n g trìn h x ử lý n g ắ t b ắt đ ầ u th ự c thi. S au
kh i x ử lý x o n g n g ấ t, P C đ ư ợ c k h ô i p h ụ c từ n g ă n x ế p đ ể k h ô i p h ụ c tiế n trìn h
bị g iá n đ o ạ n trư ớ c k ia. C h ế đ ộ k iể u n à y n g ầ m đ ịn h rằn g , n ếu n g ắ t x u ấ t h iệ n
n g a y sa u ch i th ị A , tấ t c ả ch ỉ th ị trư ớ c A đ ã h o à n th à n h v à k h ô n g ch ỉ thị n ào
sa u A đ ư ợ c th ự c th i. T ro n g k iế n trú c đ ư ờ n g ố n g , C P U có th ể th ự c thi c ù n g
lú c n h iề u ch i th ị. G iả sử n g ắ t x u ấ t h iệ n tro n g k h i đ ư ờ n g ố n g đ a n g đ ầy , các

ch ỉ th ị đ a n g ở tro n g c á c trạ n g th á i th ự c h iệ n k h á c n h au . K hi n g ắ t x u ấ t h iện ,
g iá trị P C k h ô n g p h ả n á n h c h ín h x á c n h ữ n g ch ỉ th ị n ào đ ã b ắ t đ ầ u thi h àn h
v à ch ỉ th ị n à o c h ư a th i h à n h . P C c h ỉ là đ ịa c h i c ủ a c h ỉ thị kế tiế p sẽ đ ư ợ c lấy
v à đ ư a v à o đ ư ờ n g ổ n g , c h ứ k h ô n g p h ải đ ịa ch ỉ c ủ a ch ỉ th ị đ ư ợ c x ử lý tro n g
C P U . D o v ậy , p h ải đ ịn h n g h ĩa rõ rà n g ra n h g iớ i g iữ a chì thị đ ã v à chi thị
c h ư a th ự c th i. T u y n h iê n , p h ầ n c ứ n g k h ô n g th ể x á c đ ịn h đ ư ợ c ra n h g iớ i này.
D o đ ó , k h i th ự c h iệ n x o n g n g ắ t c h i v ớ i đ ịa c h ỉ tro n g th a n h gh i P C , H Đ H
k h ô n g th ể là m đ ầ y lại đ ư ờ n g ố n g n h ư cũ . cần x á c đ ịn h chỉ th ị cu ố i cù n g
đ ư ợ c th ự c th i, tu y n h iê n c h ứ c n ă n g n à y th ư ờ n g rấ t p h ứ c tạ p , vì cầ n p h â n tích
trạ n g th á i m á y tín h . T rê n k iế n trú c siê u v ô h ư ớ n g v ấ n đ ề c ò n p h ứ c tạp h ơ n ,
vì cá c ch ỉ th ị có th ể đ ư ợ c th ự c th i k h ô n g th e o th ứ tự , n ên k h ô n g th ể đ ịn h
n g h ĩa rõ rà n g ra n h g iớ i g iữ a c h ỉ th ị đ ă th ự c h iệ n v à c h ư a th ự c h iệ n . C h ẳ n g
h ạ n , có th ể ch i th ị 1, 2 , 3, 5 v à 8 đ ã th ự c h iệ n v à c h ỉ thị 4 , 6 , 7, 9 c h ư a thự c
h iệ n . B ê n c ạ n h đ ó , th a n h g h i P C có th ể trỏ tớ i c h ỉ th ị 9, 10 h o ặc 11.
N g ắ t n g h iê m n g ặ t (p re c is e in te rru p t) đ ặ t m á y tín h tro n g m ộ t trạ n g thái
rõ rà n g v à c ó 4 th u ộ c tín h :
1. T h a n h g h i P C trỏ tớ i m ộ t c h i th ị x á c đ ịn h .
2. T ấ t c ả c á c c h i th ị trư ớ c ch i th ị d o P C trỏ tới đ ã h o à n to à n th ự c
th i x o n g .
3. M ọ i c h i th ị sa u c h ỉ th ị đ ư ợ c P C trỏ tớ i đ ề u c h ư a th ự c thi.
4 . T rạ n g th á i th ự c th i c ủ a c h ì th ị đ ư ợ c P C trỏ tớ i h o à n to à n x ác đ ịn h .
C h ú ý rằ n g , c á c c h ỉ th ị đ ằ n g sa u c h ỉ th ị d o P C trỏ tớ i k h ô n g bị c ấ m th ự c
th i. T u y n h iê n , n ế u c h ỉ th ị n à y g â y ra th a y đ ổ i trê n th a n h gh i h o ặc b ộ n h ớ ,
th ì cá c th a y đ ổ i n à y c ầ n p h ả i đ ư ợ c k h ô i p h ụ c lại trạ n g th ái b a n đ ầ u trư ớ c khi
n g ắ t x ả y ra. '
N g ắ t k h ô n g đ ả m b ả o c á c y ê u c ầ u trê n đ ư ợ c g ọ i là n g ắt k h ô n g n g h iê m
n g ặ t (im p re c is e in te ru p t). K iể u n g ắ t n à y là m n g ư ờ i v iế t H Đ H g ặ p rấ t n h iề u
138



k h ó k h ă n , d o p h ải xác đ ịn h đ ư ợ c ch i th ị n à o đ ã v à ch ỉ th ị n à o đ a n g th ự c thi.
M áy tín h vớ i n g ắt k h ô n g n g h iê m n g ặ t th ư ờ n g p h ả i ghi lại rấ t n h iề u th ô n g tin
trạ n g th ái v ào n g ăn x ếp , d ể H Đ H có th ể x ác đ ịn h đ ư ợ c ch ỉ th ị n ào đ a n g th ự c
thi tro n g giai đ o ạn n ào . P h ải g h i lư ợ n g lớ n th ô n g tin v à o b ộ n h ớ m ồ i k h i g ặp
n g át làm tă n g th ờ i g ian x ừ lý n g ắt. Đ iề u n à y d ẫ n tớ i n g h ịc h lý là, c á c C P U
siê u vô h ư ớ n g tố c đ ộ cự c c a o đ ô i k h i k h ô n g th íc h h ợ p v ớ i c á c c ô n g v iệ c th ờ i
g ia n th ự c d o x ử lý n g ắt q u á c h ậ m .
M ộ t số m áy tín h đ ư ợ c th iế t k ế đ ể v ừ a có n g ắ t n g h iê m n g ặ t, v ừ a có n g ắ t
k h ô n g n g h iê m n g ặt. M ộ t số k iế n trú c siê u v ô h ư ớ n g , n h ư P e n tiu m P ro và
cá c sản p h ẩm th u ộ c d ò n g n à y sừ d ụ n g n g ắ t n g h iê m n g ặ t, ch o p h é p các
c h ư ơ n g trìn h v iết trên n ền 3 8 6 , 4 8 6 v à P e n tiu m I h o ạ t đ ộ n g c h ín h x ác
(su p e rs c a la r ch ỉ b ắt đ ầ u x u ấ t h iệ n tro n g P e n tiu m P ro ; P e n tiu m I c h i c ó 2
đ ư ò n g ố n g ). K hi đó, m ạ c h lo g ic c ủ a b ộ đ iề u k h iể n n g ắ t b ê n tro n g C P U cự c
kỳ p h ứ c tạp . B ộ đ iề u k h iể n n g ắ t p h ả i đ ả m b ả o k h i x u ấ t h iệ n n g ắ t, th ì m ọ i ch ỉ
thị ở trư ớ c m ộ t m ố c n à o đ ó p h ả i đ ư ợ c th ự c th i x o n g v à tấ t c ả c h ỉ th ị p h ía sau
m ố c k h ô n g g ây ản h h ư ở n g g ì tớ i trạ n g th á i m á y . ở đ â y , g iá p h ả i trả k h ô n g
p h ả i là th ờ i g ian m à là d iệ n tíc h c h ip v à sự p h ứ c tạ p k h i th iế t kế. N ế u k h ô n g
cầ n n g ắ t n g h iê m n g ặt (đ ể tư ơ n g th íc h n g ư ợ c v ớ i cá c ứ n g d ụ n g c ũ ), th ì d iệ n
tích n ày trê n b o m ạ ch c ó th ể đ ư ợ c sử d ụ n g cà i đ ặ t th ê m c a c h e . N g ư ợ c lại,
n g ắt k h ô n g n g h iê m n g ặ t làm H Đ H p h ứ c tạ p v à c h ậ m h ơ n . D o đ ó , th ậ t sự
k h ó xác đ ịn h đ ư ợ c p h ư ơ n g p h á p n à o ư u v iệ t h ơ n .
V ớ i n g ắt, trìn h đ iề u k h iể n k h ô n g p h ả i th ă m d ò x e m th iế t bị đ ã h o à n
th à n h n h iệ m v ụ h ay c h ư a . K h i k ế t th ú c c ô n g v iệ c , b ộ đ iề u k h iể n b á o lại c h o
trìn h đ iề u k h iể n th iế t b ị. B ộ q u ả n lý th iế t bị tro n g c ơ c h ế v à o /ra sử d ụ n g n g ắ t
có 3 th à n h p h ần :


B ả n g trạ n g th ái th iế t bị.

• T rìn h x ử lý n g ắt.



B ộ p h ậ n th ự c h iệ n c ủ a th iế t bị.

H ìn h 8 .3 b m in h h ọ a c á c b ư ớ c đ ọ c d ữ liệ u trê n h ệ th ố n g sử d ụ n g n g ắt:
1. T iế n trìn h ứ n g d ụ n g y ê u c ầ u đ ọ c d ữ liệu .
^ 2 . T rìn h đ iề u k h iể n k iể m tra th a n h ghi trạ n g th á i x e m th iế t bị có rồi h a y
k h ô n g . N ế u th iế t bị b ậ n , trìn h đ iề u k h iể n đ ợ i.

139


3. T rìn h đ iề u k h iể n ghi lện h khở i tạo v ào th a n h ghi lệ n h c ủ a b ộ đ iề u
k h iển .
4. K hi h o àn th à n h c ô n g v iệc, trìn h đ iề u k h iể n ghi v ào b ả n g trạ n g th ái
th iế t bị các th ô n g tin liên q u an đ ến th a o tác. B à n g n ày c h ứ a th ô n g tin
về tấ t cả cá c th iế t bị tro n g hệ th ố n g , m ỗ i h àn g ứ n g vớ i m ộ t th iế t bị cụ
thể. T rìn h đ iề u k h iể n gh i lại m ộ t số th ô n g tin về th iế t bị m ìn h q u ản
lý. C ác th ô n g tin n ày có th ể là đ ịa chỉ trả v ề sau khi th a o tác th ự c
h iệ n x o n g v à có th ể là m ộ t số th am sổ đ ặc b iệ t k h ác . K ế tiếp , trìn h
đ iề u k h iể n k ểt th ú c v à ch u y ể n q u y ề n đ iề u k h iể n ch o b ộ đ iề u phối.
5. K hi k ết th ú c c ô n g v iệc đ ư ợ c g iao , th iế t bị tạo ra n g ắt gử i đ ế n C P U v à
trìn h x ử lý n g ắt tư ơ n g ứ n g đ ư ợ c th ự c thi.
6

. T rìn h x ử lý n g ắ t x á c đ ịn h th iế t bị n ào tạo ngắt. S au đ ó sẽ rẽ n h án h
đ ến trìn h x ử lý n g ắt c ủ a th iế t bị.

7. T rìn h x ử lý n g ắt đ ọ c b àn g trạ n g th ái th iế t bị đ ể lấy th ô n g tin về th a o
tác v ừ a th ự c th i.

8

. T rìn h x ử lý n g ắ t c h u y ể n d ữ liệu từ (các ) th a n h gh i d ữ liệ u tro n g bộ
đ iề u k h iể n v ào k h ô n g g ia n n h ớ c ủ a n g ư ờ i sử d ụ n g .

9. T rìn h x ừ lý n g ắ t c h u y ể n q u y ề n đ iề u k h iể n ch o tiế n trìn h ứ n g d ụ n g .
s ta rtR e a d (d e v _ I,
re a d (d e v _ I,
y = f(x)

"% d ",

x) ;

x )/
W h ile { s tillR e a d in g ( ) )
y = f(x)

;

D a ta o n d e v ic e

D e v ic e d e v j

M em ory

CPU

Hình 8.5. Xử lý qua ngắt


T h a o tác g h i d ữ liệu d iễ n ra tư ơ n g tự . V ớ i tiế n trìn h ứ n g d ụ n g , th a o tác
n ày tư ơ n g tự lờ i g ọ i h ệ th ố n g . T u y n h iê n , th ờ i g ia n ghi GÓ th ể lớ n hom rất
n h iề u , đ ặc b iệ t tro n g h ệ th ố n g th ă m dò. T h ờ i g ia n n à y p h ụ th u ộ c v ào th ờ i
g ia n tín h to á n , tố c đ ộ th ự c h iệ n v à o /ra v à k h p ả n g th ờ i g ia n th ă m d ò th iế t bị.
Đ ố i vớ i h ệ th ố n g th ă m d ò , cần tín h th ê m k h o ả n g th ờ i g ia n từ k h i th iế t bị
th ự c sự h o à n th à n h x o n g cô n g v iệc cho tớ i k h i tiế n trìn h ứ n g d ụ n g p h át h iệ n

140


ra sự k iệ n n ày đ ể tiế p tụ c th ự c th i c ô n g v iệ c c ủ a m ìn h . D o d ó , b ằn g cá ch
tư ơ n g tác với th iế t bị th ô n g q u a g ia o d iệ n p h ần m ềm , H Đ H ch o p h é p tiế n
trìn h th ự c h iệ n tín h to á n trên C P U tro n g khi tiế n trìn h k h ác sử d ụ n g th iết bị.
M ồ i tiế n trìn h v ẫn đ ư ợ c đ ảm b ảo th ự c thi m ộ t cá ch tu ầ n tự , cho d ù có g ián
đ o ạn . C ác th a o tác v à o /ra có tín h c h ấ t tu ầ n tự , n g h ĩa là khi lập trìn h v iên sử
d ụ n g lện h read tro n g chưorng trin h thì lện h read phải th ự c h iệ n x o n g trư ớ c
k h i th ự c th i cá c lện h sau . V í dụ, kh i tiế n trìn h th ự c h iệ n đ o ạn chưcm g trìn h
m in h h ọ a trên H ìn h 8 .5 , to là th ờ i đ iể m sa u khi tiế n trìn h sử d ụ n g lời gọi hệ
ih ố n g đ ể đ ọ c từ th iế t b ị, n h ư n g lời gọi n à y c h ư a th ự c h iện x o n g . N ế u hàm f
v ớ i th am số X đ ư ợ c tín h tru ớ c khi th a o tác đ ọc th ự c h iệ n , th ì tiế n trìn h sẽ sử
d ụ n g g iá trị X cũ. Đ ể trá n h tìn h trạ n g n ày , sau kh i gọi read, tiế n trìn h p h ải bị
p h o n g tỏ a ch o đ ế n khi read h o àn th àn h .
T ừ n g tiế n trìn h riê n g lẻ k h ô n g n h ận đ ư ợ c ích lợi củ a v iệc x e n k ẽ th ao
tác tín h to á n v ớ i th a o tá c v ào /ra , n h ư n g h iệ u su ấ t h ệ th ố n g tổ n g th ể tă n g
đ á n g kổ, vì C P U đ ư ợ c tậ n d ụ n g tối đ a (k h i tiế n trin h đ a n g th ự c thi p h ải đợ i
v à o /ra v à bị p h o n g tỏ a, tiế n trìn h k h ác sử d ụ n g C P U ).
8 .2 .4 . V à o /r a q u a á n h x ạ b ộ n h ớ

Đ ể tư ơ n g tác vớ i th iế t bị p h ải có chi thị th a o tác trên th a n h gh i c ù a bộ
đ iề u k h iể n tro n g tậ p ch ỉ thị n g ô n n g ữ m á y , đ ể H Đ H có th ể ra lệnh ch o th iế t

bị (g h i lện h tưom g ứ n g lê n th a n h gh i lện h ) v à x ác đ ịn h trạ n g thái th iế t bị
(đ ọ c th a n h g h i trạ n g th ái).
Haí đja ch l

Một khững gian đja c h i

OxFFFF .

Hal khỏng gian đ|a chl

Mttmory

1/0 ports

/
1
(a)

1
(b)

(e)

Hình 8.6. Giao tiếp giữa CPU và bộ điều khiển

C ó hai cá c h đ ể C P U trao đ ổ i d ữ liệ u vớ i b ộ đ iề u k h iể n th iế t bị. T h ứ
n h ấ t, m ỗ i th a n h g h i c ủ a b ộ đ iề u k h iể n đ ư ợ c g á n đ ịn h d a n h là số n g u y ê n , gọi
là số h iệu c ổ n g v à o /ra (I/O p o rt n u m b e r). C P U sử d ụ n g chi th ị IN REG,
PORT đ ể đ ọ c th a n h g h i có đ ịn h d a n h PORT v ào th a n h ghi REG tro n g C P U .


141


C á c m á y tín h th ờ i k ỳ đ ầ u đ ề u làm v iệ c th e o c á c h này. T ro n g H ìn h 8 .6 a,
k h ô n g g ia n đ ịa ch i b ộ n h ớ đ ộ c lập vớ i k h ô n g g ia n v à o /ra c ủ a b ộ đ iều k h iể n .
C h i th ị IN RO, 4 (c h u y ể n n ộ i d u n g c ù a c ổ n g I/O có số h iệ u 4 v ào th a n h ghi
RO) khác với chỉ thị MOV RO, 4 (đưa nội dung ô nhớ thứ 4 trong bộ nhớ
c h ín h v à o RO). G iá trị 4 tro n g h ai ch ỉ th ị trê n ứ n g v ớ i hai k h ô n g g ia n đ ịa ch ỉ
k h á c n h au . G iả i p h á p th ứ h a i, á n h x ạ tấ t c ả cá c th a n h ghi v ào k h ô n g g ia n bộ
n h ớ c h ín h (H ìn h 8 .6 b). M ỗ i th a n h ghi đ ư ợ c g á n m ộ t đ ịa ch i d u y n h ấ t v à
k h ô n g trù n g v ớ i b ấ t k ỳ đ ịa ch ỉ ô n h ớ n à o tro n g b ộ n h ớ ch ín h . H ệ th ố n g n h ư
v ậ y đ ư ợ c g ọ i là v à o /ra q u a á n h x ạ b ộ n h ớ . T h ô n g th ư ờ n g , đ ịa ch ỉ các th a n h
g h i n à m ở đ ầ u k h ô n g g ia n đ ịa ch i. G iải p h á p th ứ b a lai g iữ a hai giải p h áp
trê n (H ìn h 8 .6 c ), th ự c h iệ n á n h x ạ b ộ n h ớ v à o /ra (n ằ m trê n b ộ đ iề u k h iể n )
v à o k h ô n g g ia n b ộ n h ớ tro n g , n h ư n g lại g á n đ ịn h d a n h c ổ n g v à o /ra ch o các
th a n h g h i đ iề u k h iể n . P e n tiu m sừ d ụ n g k iế n trú c n ày vớ i v ù n g đ ịa chi
6 0 4 K B tớ i 1M B d ù n g c h o b ộ n h ớ th iế t b ị v à số h iệ u c ổ n g từ 0 đ ế n 6 4 K B .
H ệ th ố n g n à y h o ạ t đ ộ n g n h ư sau : C P U đ ặ t đ ịa ch ỉ c ầ n đ ọ c (có th ể n ằ m ở bộ
nhớ trong hay bộ nhớ vào/ra) lên bus địa chi và phát lệnh READ trên bus

đ iề u k h iể n . C ó th ể s ử d ụ n g th ê m m ộ t tín h iệ u k h á c đ ể x ác đ ịn h từ c ầ n đ ọ c
n ằ m tro n g b ộ n h ớ v à o /ra h a y b ộ n h ớ tro n g . N ế u s ử d ụ n g c h u n g k h ô n g g ia n
b ộ n h ớ (n h ư H ìn h 8 .6 b ), c ả b ộ n h ớ tro n g lẫn tấ t c à th iế t bị v à o /ra đ ề u phải
so sá n h đ ịa c h ỉ trê n b u s đ ịa ch i v ớ i k h o ả n g đ ịa c h ỉ c ủ a m ìn h . N ế u đ ịa chỉ
y ê u c ầ u n ằ m tro n g p h ạ m v i q u ả n lý, bộ p h ậ n tư ơ n g ứ n g sẽ trả lờ i y êu cầu.
H ai p h ư ơ n g p h á p trê n có ư u , n h ư ợ c đ iể m riê n g , ư u đ iể m v à o /ra q u a
á n h x ạ b ộ n h ớ là đ o n g iả n c ô n g v iệ c c ủ a n g ư ờ i lậ p trìn h . T h ứ n h ất, tro n g hệ
th ố n g p h ả i s ử d ụ n g c h ỉ th ị v à o /ra đ ặ c b iệ t đ ể đ ọ c /g h i th a n h ghi trên b ộ đ iề u
k h iể n th iế t b ị, lập trìn h v iê n p h ả i sử d ụ n g m ã A s se m b ly vì tro n g n g ô n n g ữ
C /C + + k h ô n g c ó lệ n h ứ n g v ớ i ch i thị IN/OUT. N g ư ợ c lại, vớ i v à o /ra q u a án h

x ạ b ộ n h ớ , th a n h g h i trê n b ộ đ iề u k h iể n g iố n g b ấ t k ỳ ô n h ớ n à o tro n g b ộ n h ớ
v à c ó th ể đ á n h đ ịa c h i n h ư m ọ i b iế n k h á c . D o đ ó , tro n g h ệ th ố n g v à o /ra q u a
á n h x ạ b ộ n h ớ , c ó th ể v iế t trìn h đ iề u k h iể n th iế t bị b ằ n g n g ô n n g ữ c. T h ứ
h a i, v ớ i v à o /ra q u a á n h x ạ b ộ n h ớ , k h ô n g c ầ n s ừ d ụ n g c ơ c h ế b ả o v ệ đ ặc b iệt
n à o đ ể h ạ n c h ế tiế n trìn h n g ư ờ i d ù n g th ự c h iệ n v à o /ra . H Đ H chỉ c ầ n n g ăn
k h ô n g đ ặ t k h ô n g g ia n đ ịa c h ỉ c h ứ a th a n h g h i c ủ a b ộ đ iề u k h iể n v ào k h ô n g
g ia n b ộ n h ớ tiế n trìn h n g ư ờ i d ù n g . N ế u th a n h g h i đ iề u k h iể n c ủ a các th iế t bị
k h á c n h a u n ằ m trê n c á c tra n g n h ớ k h á c n h a u , th ì H Đ H có th ể h ạn c h ế tiến
trìn h n g ư ờ i d ù n g c h ỉ đ ư ợ c s ử d ụ n g m ộ t số th iế t bị n h ấ t đ ịn h . T rìn h đ iề u
k h iể n c á c th iế t b ị n ằ m tro n g c á c k h ô n g g ia n đ ịa c h i k h á c n h a u , đ iề u này
142


k h ô n g ch ỉ làm g iả m k íc h th ư ớ c k e rn e l m à c ò n trá n h x u n g đ ộ t g iữ a c á c bộ
đ iề u k h iể n . T h ứ b a, v ớ i v à o /ra q u a án h x ạ b ộ n h ớ , m ọ i c h ỉ th ị n ế u th a m
c h iế u đ ư ợ c tới b ộ n h ớ c ũ n g sẽ th a m c h iế u đ ư ợ c th a n h g h i đ iề u k h iể n . V í d ụ ,
n ế u ch ỉ thị TEST k iể m tra từ n h ớ có b ằ n g 0 h a y k h ô n g , th ì c ũ n g c ó th ể k iể m
tra đ ư ợ c th a n h ghi đ iề u k h iể n có n h ậ n g iá trị 0 h a y k h ô n g . Đ o ạ n m ã tro n g
n g ô n n g ữ A sse m b ly k iể u n h ư sau:
LOOP:

TEST
BEQ
BRANCH
READY:

P0RT_4
READY
LOOP


//kiểm tra nếu port_4 bằng 0
//nếu bằng 0, nhảy tớ i READY
//nếu không, tiếp tục kiểm tra.

N ếu k h ô n g d ù n g c ơ c h ế á n h x ạ b ộ n h ớ , m u ố n th ự c h iệ n đ iề u n à y thì đ ầ u
tiê n p h ải sa o c h é p g iá trị th a n h ghi đ iề u k h iể n v à o th a n h g h i n à o đ ó tro n g
C P U , rồi sa u đ ó m ớ i k iể m tra. Q u á trìn h n à y c ầ n 2 c h ứ k h ô n g p h ải 1 ch i th ị
n h ư c ơ ch ế án h x ạ bộ n h ớ .
Đ ọ c/g h i bộ n h ớ tro n g
qua B us có tổ c đ ộ cao

CPU

\

1/0

Memory

Bus dúng chung
(cà bộ nhớ lẳn vào^ra)

CPU

8US

1

Memory


1/0

C ổng này c h o th iế t bị
vào/ra tru y cập vào bộ
nhớưõng

{b)
ổ đĩa

Bus

Hình 8.7. Kiến trúc bộ nhớ và DMA

Á n h x ạ b ộ n h ớ c ũ n g c ó n h ư ợ c đ iể m . P h ầ n lớ n m á y tín h h iệ n đ ạ i c ó
c a c h e bộ n h ớ . X ét đ o ạ n m ã A s s e m b ly ở trê n , lầ n th a m c h iế u đ ầ u tiê n tớ i
P0RT_4 sẽ khiến nội dung P0RT_4 được lưu tạm trên cache. T ro n g các iần

143


th am ch iếu kế tiếp , g iá trị tro n g c a c h e sẽ đ ư ợ c lấy ra so sán h , c h ứ k h ô n g
p h ải g iá trị th ụ c tro n g P0RT_4. K h i th iế t bị sẵ n sàn g , p h ầ n m ềm k h ô n g có
cách n ào đ ể p h át h iệ n , v à v ò n g lặ p LOOP sẽ lặp v ô hạn. Đ ẻ trán h tìn h trạ n g
n ày , trư ớ c tiê n p h ần c ứ n g p h ải c ó k h ả n ăn g k h ô n g ch o c a c h e m ộ t tra n g n h ớ
cụ th ể. C h ứ c n ăn g n ày làm k iế n trú c p h ầ n c ứ n g lẫn H Đ H trở n ên p h ứ c tạp .
Thứ h ai, n ếu chỉ có m ộ t k h ô n g g ia n đ ịa ch i, m o d u le b ộ n h ớ v à th iết bị
v à o /ra cầ n k iể m tra x em th am c h iế u bộ n h ớ có tru y x u ấ t v ào k h u vự c n h ớ
c ủ a m ìn h h ay k h ô n g . Đ iều n ày d ễ d à n g th ự c h iệ n n ế u m á y tín h c h i có m ộ t
b u s n h ư H ìn h 8.7a. T u y n h iê n , cá c m á y tín h h iệ n đ ại có b u s c h u y ê n d ụ n g tốc
đ ộ cao nổi g iữ a C P U v à bộ n h ớ (H ìn h 8 .7 b ) để tă n g h iệ u su ất sử d ụ n g bộ

nhớ. K hi đ ó , tro n g h ệ th ố n g ánh x ạ b ộ n h ớ có b u s b ộ n h ớ ch u y ê n d ụ n g , th iế t
bị v à o /ra có th ể "k h ô n g th ấy " đ ịa chi b ộ n h ớ khi đ ịa chi n ày đ ư ợ c đ ặt trê n
b u s c h u y ê n d ụ n g . M ộ t g iải p h áp là, đ ầ u tiê n C P U g ử i đ ịa ch i th a m ch iếu tới
b ộ n h ớ tro n g trư ớ c. N ế u k h ô n g có , C P U m ớ i gửi ra các b u s khác. P h ầ n c ứ n g
tro n g k iể u th iế t k ế n ày h ết sứ c p h ứ c tạp. G iải p h á p th ứ hai là đ ặ t th iết bị
sn o o p trên b u s b ộ n h ớ đ ể th iết bị n ày ch u y ể n tấ t cả các đ ịa chi tro n g k h ô n g
g ian v à o /ra tớ i th iế t bị tưcm g ứ n g . N h ư ợ c đ iể m c ủ a p h ư ơ n g p h áp n à y là th iế t
bị v à o /ra có th ể k h ô n g x ứ lý k ịp tốc đ ộ c ủ a b ộ n h ớ . G iải p h á p th ứ b a đ ư ợ c
sử d ụ n g trê n P e n tiu m là sừ d ụ n g c h ip c ầ u P C I để lọc đ ịa ch i. C h ip n ày c h ứ a
k h o ả n g các th a n h g h i đ ư ợ c n ạp tại th ờ i đ iể m h ệ th ố n g k h ở i đ ộ n g . V í dụ, đ ịa
ch i từ 6 4 0 K B đ ế n 1M B đ ư ợ c đ á n h d ấ u k h ô n g n ằm tro n g b ộ n h ớ ch ín h . Y êu
cầ u tớ i k h o ả n g đ ịa ch ỉ n ày sẽ đ ư ợ c c h u y ể n tớ i b u s P C I th a y vì tớ i b ộ nhớ.
8 .2 .5 . T r u y c ậ p t r ự c t iế p b ộ n h ớ (D M A )

T ro n g c ơ ch ế v à o /ra trự c tiế p q u a th ă m d ò , trìn h đ iề u k h iể n c h u y ể n d ữ
liệu từ v ù n g n h ớ tiế n trìn h n g ư ờ i d ù n g tới th a n h ghi trên b ộ đ iều k h iể n th iết
bị khi ghi d ữ liệ u v à th ự c h iện đ iề u n g ư ợ c lại kh i đ ọ c d ữ liệu. T ro n g c ơ chế
v à o /ra có sử d ụ n g n g ắt, trin h x ử lý n g ắ t ứ n g v ớ i th iế t bị c h ịu trá c h n h iệ m
sao c h é p d ữ liệu. Đ ể c h u y ể n m ộ t kh ố i d ữ liệu từ b ộ n h ớ c h ín h đ ế n th a n h ghi
c ủ a bộ đ iề u k h iể n , h ệ th ố n g sử d ụ n g đ o ạ n m ã tư ơ n g tự sau:
LOAD

R2, = LENGTH_OF_BLOCK

II R2 là thanh ghi chi số

Loop:

LOAD R1, [data_area, R2]


/ / Tải block[i]

ST0RER1, 0xFFFF0124

II Đặt dữ liệu vào thanh
ghi dữ liệu của Ctrl

INCR R2
BGE ioop
144

II Tăng chỉ số
// Quay lại vòng lặp


T ro n g c ả h ai trư ờ n g h ọ p , C P U đ ều p h ải th a m g ia v ận c h u y ể n d ữ liệu.
T u y n h iê n , với c ơ ch ế tru y cập trự c tiế p bộ n h ớ , b ộ đ iề u k h iể n D M A có k h ả
n ă n g đ ọ c/g h i th ô n g tin trự c tiế p v ào bộ n h ớ m à k h ô n g cần sự ca n th iệ p củ a
C P U . D M A có th ể đ ư ợ c sử d ụ n g tro n g cả c ơ c h ế p h ần m ề m th ă m d ò lẫn cơ
c h ế n g ắt. B ộ đ iề u k h iể n D M A có p h ần lo g ic c h o p h ép c h u y ể n d ữ liệu g iữ a
b ộ n h ớ c h ín h v à b ộ đ iề u k h iể n th iết bị. Đ iều n à y h o àn to à n đ ư ợ c th ự c h iện '
b ằ n g p h ần c ứ n g c ủ a bộ đ iề u k h iể n D M A c h ứ k h ô n g cầ n sự can th iệ p từ
C P U (T u y n h iê n , C P U v à D M A có th ể tra n h c h ấ p q u y ề n sừ d ụ n g b u s d ừ
liộu). D M A làm tă n g đ á n g kể h iệ u su ất v à o /ra . V ớ i D M A , b ộ đ iề u k h iể n
th iế t bị có th ể k h ô n g cần th a n h ghi d ữ liệu , vì b ộ đ iề u k h iể n D M A có thể
c h u y ể n d ừ liệu trự c tiế p g iữ a th iết bị và b ộ n h ớ ch ín h . T u y n h iên , b ộ đ iề u
k h iể n D M A p h ải ch ứ a th a n h ghi đ ịa chỉ đ ể trìn h đ iề u k h iể n th iế t bị có thể
x ác lập đ ịa ch ỉ b ộ n h ớ tro n g nơ i n h ận d ừ liệu.
B ộ đ iề u k h iể n D M A có th ể đ ư ợ c tíc h h ợ p vớ i b ộ đ iề u k h iể n ổ đ ĩa v à các
bộ đ iề u k h iể n k h ác . P h ần lớ n h ệ th ố n g m á y tín h h iệ n đại sử d ụ n g bộ đ iều

k h iể n D M A n ằm trê n b o m ạ c h ch ù đ iề u h ợ p v iệ c trao đ ổ i d ữ liệu ch o n h iề u
th iế t bị (có th ể th ự c h iện đ ồ n g th ờ i). B ộ đ iề u k h iể n D M A có th ể tru y cậ p tới
b u s h ệ th ố n g đ ộ c lập v ớ i C P U n h ư m in h h ọ a trê n H ìn h 8.7c. B ộ đ iề u k h iển
D M A có các th a n h ghi c h o p h é p C P U tru y c ậ p tớ i th a n h ghi đ ịa chỉ b ộ n h ớ ,
th a n h g h i đ ếm v à th a n h ghi đ iề u k h iển . T h a n h g h i đ iề u k h iể n x ác đ ịn h sử
d ụ n g c ổ n g v à o /ra n ào , h ư ớ n g tru y ề n (đ ọ c h a y g h i), đ ơ n vị tru y ề n (b y te h ay
w o rd ) v à k h ố i lư ợ n g tru y ề n tro n g m ộ t lần.
X é t th a o tác đ ọ c ổ đ ĩa k h i k h ô n g sử d ụ n g D M A , đ ầ u tiê n b ộ đ iề u k h iển
đ ọ c m ộ t khối (m ộ t h o ặc n h iề u secto r) từ ổ đ ĩa c ứ n g v ào b ộ n h ớ c ủ a b ộ đ iề u
k h iể n . T iế p th e o , b ộ đ iều k h iển tính c h e c k su m đ ể x ác đ ịn h kh ố i v ừ a đ ọ c cỏ
lồi h a y k h ô n g . S a u đ ó , b ộ đ iề u k h iể n tạo ra m ộ t ngắt. C u ố i c ù n g , H Đ H có
th ể đ ọ c khối d ữ liệ u từ b ộ đ ệm tro n g bộ đ iề u k h iể n b ằ n g cá c h sử d ụ n g m ộ t
v ò n g lặp lần lư ợ t c h u y ể n từ n g b y te tro n g th a n h ghi d ữ liệu c ủ a bộ đ iều
k h iể n v ào bộ n h ớ tro n g .
N ế u sử d ụ n g D M A n h ư m in h h ọ a trên H ìn h 8 .7 c, thì đ ầ u tiê n C P U th iết
lập c á c th a n h ghi đ ể bộ đ iề u k h iể n D M A b iế t c h u y ể n d ữ liệu gi v à đ ế n đ âu
(b ư ớ c 1). Đ ồ n g th ờ i, C P U c ũ n g p h át lệnh ch o b ộ đ iề u ỉd iien đ ĩa đ ọ c d ữ liệu
từ ổ đ ĩa v ào bộ n h ớ n ằm b ên tro n g b ộ đ iề u k h iể n ổ đĩa. K hi d ữ liệu nằm
tro n g b ộ n h ớ củ a b ộ đ iề u k h iển đĩa, D M A có th ể đ ư ợ c k h ở i đ ộ n g . B ư ớ c 2,
lO-GTNLHOH-DN

145


bộ đ iề u k h iể n D M A k h ở i tạo v iệc ch u y ể n d ừ liệu b àn g cá ch p h á t ra y êu cầ u
đ ọ c tớ i bộ đ iề u k h iển ổ đ ĩa. B ộ đ iề u k h iể n ổ đ ĩa k h ô n g xác đ ịn h đ ư ợ c y êu
cầu n ày là từ C P U h ay từ bộ đ iề u k h iể n D M A . D o đ ịa chỉ b ộ n h ớ đ ư ợ c ghi
trên đ ư ờ n g b u s đ ịa ch i, n ên b ộ đ iề u k h iể n ổ đ ĩa lấy b y te k ế tiế p tro n g bộ n h ớ
c ủ a m ìn h ghi vào ô n h ớ th íc h h ợ p . Q u á trìn h ghi bộ n h ớ tro n g d iễ n ra tro n g
c h u kỳ b u s k ế tiếp (b ư ớ c 3). K hi ghi x o n g , bộ đ iề u k h iể n ổ đ ĩa gử i tín h iệu

b iê n n h ận tớ i bộ đ iề u k h iển D M A (b ư ớ c 4). B ộ đ iề u k h iể n D M A tă n g đ ịa
chi bộ n h ớ v à g iảm th a n h ghi đ ếm byte. N e u th a n h ghi đ ếm v ẫ n lớ n h ơ n 0,
D M A th ự c h iệ n b ư ớ c 2 tớ i 4 ch o tới khi th a n h ghi đ ếm b àn g 0. L ú c n ày , bộ
đ iề u k h iể n D M A sẽ tạo ra n g ắt b áo ch o C P U b iế t đ ã h o àn th à n h q u á trìn h
tru y ền d ừ liệu. C ó n h iề u k iể u b ộ đ iề u k h iể n D M A v ớ i độ p h ứ c tạ p k h ác
n h au . Đ ơ n g iả n n h ất là k iể u chi tru y ền m ộ t b y te tại m ộ t th ờ i đ iể m n h ư m ô tả
trên . P h ứ c tạp h ơ n là k iể u ch o p h é p tru y ền n h iề u lu ồ n g d ữ liệ u m ộ t lúc. N h ư
v ậy , bộ đ iề u k h iển có n h iề u n h ó m th a n h g hi, m ỗi n h ó m ứ n g vớ i m ộ t k ên h
tru y ền . C P U sẽ n ạp các th a m sổ th íc h h ợ p v ào m ộ t n h ó m th a n h g h i. M ồi lần
tru y ền th ự c h iệ n trên m ộ t b ộ đ iề u k h iể n th iế t bị riêng.
8 .2 .6 . B ộ đ ệ m ( B u ff e r )

T ro n g k ỹ th u ậ t b ộ đ ệ m d ữ liệu , khi th iế t bị ở trạ n g th ái rồ i, b ộ q u ả n lý
th iế t b ị th ự c h iệ n đ ọ c/g h i d ữ liệ u trư ớ c kh i tiế n trìn h y êu cầu th ự c h iệ n . Đ ệm
v ào là v iệc đ ọ c d ữ liệ u v ào b ộ n h ớ tro n g , đ ệm ra là v iệ c ghi d ữ liệ u ra th iế t
bị, cả h ai th a o tác n à y có th ể th ự c h iệ n so n g so n g v ớ i tiế n trìn h v à trư ớ c khi
tiế n trìn h đ ư a ra y êu c ầ u th ự c sự. B ộ đ ệ m ch o p h é p tiế n trìn h sử d ụ n g x e n kẽ
C P U v à th iế t b ị m ộ t cá c h tư ờ n g m in h (m in h h ọ a trê n H ìn h 8 . 8 a).
C h ú ý đ ến đ ặc đ iể m tiế n trìn h : T iế n trìn h h ư ớ n g v à o /ra có n h iề u th ao
tác vào/ra (ví dụ, tiến trình sao chép dữ liệu giữa hai thiết bị) và tiến trình

h ư ớ n g tín h to á n có n h iề u th a o tác tín h to á n trên C P U (tiế n trìn h tìm số
n g u y ên tố ). T iế n trìn h b ìn h th ư ờ n g có th ể c h ia th à n h n h iề u p h a , các p h a
h ư ớ n g tín h to á n v à h ư ớ n g v à o /ra x e n k ẽ n h au . B ộ p h ậ n q u ản lý b ộ n h ớ sẽ sử
d ụ n g các k ỹ th u ậ t q u ả n lý b ộ n h ớ đ ể làm g iả m th ờ i g ian th ự c h iệ n v à o /ra
tru n g b ìn h . X ét v iệc c h u y ể n d ữ liệu ra m o d e m k h ô n g sử d ụ n g b ộ đ ệ m n h ư
m in h h ọ a trê n H ìn h 8 . 8 b. T iế n trìn h n g ư ờ i d ù n g sử d ụ n g lờ i gọ i h ệ th ố n g
w rite đ ể c h u y ể n đi n k ý tự . H ệ th ố n g có hai lự a ch ọ n : M ộ t là p h o n g tỏ a tiến
trìn h n g ư ờ i d ù n g ch o tớ i khi tấ t c ả k ý tự đ ư ợ c g h i th à n h c ô n g , n h ư n g c á ch


146


này tố n n h iều th ờ i g ian , đ ặc b iệt là trên n h ữ n g đ ư ờ n g tru y ề n có tốc đ ộ th ấ p
(c h ẳ n g h ạn đ ư ờ n g đ iệ n th o ại). C á c h th ứ hai là ch o p h é p tiến trìn h ngư ờ i
d ù n g th ự c th i n g a y lập tứ c. T rin h đ iề u k h iể n th ự c h iệ n v iệc x u ấ t tro n g khi
tiến trin h n g ư ờ i d ù n g tiế p tục th ự c h iệ n c ô n g v iệc tín h to á n củ a m ìn h , v ấ n
đ ề ở đ â y là: L àm th ế n ào đ ể tiế n trìn h n g ư ờ i d ù n g xác đ ịn h đ ư ợ c v iệ c x u ất
d ữ liệ u đ ã h o àn th à n h v à d o v ậy cỏ th ể sử d ụ n g tiế p b ộ đ ệm ? H ệ th ố n g có
th ể tạo ra tín h iệ u h o ặc n g ắt p h ần m ề m , n h ư n g k iể u lập trìn h n ày rất k h ó v à
đ ặc b iệ t dễ g ây x u n g đột. M ộ t giải p h áp tố t h ơ n là k e m e l sao ch é p d ừ liệu
tớ i b ộ đ ệm tro n g k e m e l (H ìn h 8 . 8 d).
Tiến trìn h n g ư ờ i dùng
(ừng dụng)

Không gion
Ngi/Ó< dùng

Bộ
nh ở
trong

o

CD

Khỏng gian
HĐH

CPU


(C)

Modem

Độ điếu khiển

T h ỉit bị

Modem

í
2
c3
1
1

{•)
M odem

Mod«m

Hình 8.8. Bộ đệm dữ liệu

M o d e m là th iế t bị k iể u ký tự đ ọ c/g h i từ n g b y te d ữ liệu. B ộ đ iề u k h iể n
m o d e m có th a n h ghi d ữ liệu v ớ i k íc h th ư ớ c 1 b y te c h ứ a k ý tự cu ố i cù n g
n h ận đ ư ợ c sa u lệ n h read. K hi có lời gọ i read kế tiế p , trìn h đ iề u k h iể n
c h u y ể n lện h tư ơ n g ứ n g ch o b ộ đ iề u k h iể n , v à đ ế n lư ợ t m in h b ộ đ iề u k h iể n ra
lện h th iế t bị đ ặ t b y te k ế tiế p v ào th a n h ghi d ữ liệu c ủ a bộ đ iề u k h iể n
(H ìn h 8 .9 a). B ộ đ ệ m n ằ m b ê n tro n g b ộ đ iề u k h iể n g iú p tiế n trìn h g iả m đ án g

k ể th ờ i g ia n đ ợ i k ý tự , v ì b ộ đ iề u k h iể n đ ã lư u tạ m d ữ liệu trư ớ c. T ro n g
lỉìn h -8 .9 b , k ý tự k ế tiế p đ ư ợ c đ ặt v ào th a n h ghi d ừ liệu B c ủ a b ộ đ iề u k h iể n
trư ớ c k h i tiế n trìn h y ê u c ầ u đ ọ c. K ế tiế p , th iế t bị đ ọ c d ữ liệu v à c h u y ể n b y te
tiế p th e o v ào th a n h ghi A (k ể c ả khi tiế n trìn h ch ư a có y êu cầ u đ ọ c). S au đó,

147


tiế n trìn h y ê u c ầ u k ý tự đ ã đ ư ợ c đ ặ t từ trư ớ c v à o th a n h ghi B. L úc n ày , th iế t
bị sẽ đ ọ c k ý tự k ế tiế p v à o th a n h gh i A . T h iế t bị sẽ đ ọ c k ý tự (i + 1) so n g
so n g v ớ i v iệ c tiế n trìn h sử d ụ n g k ý tự i. S ự p h ố i h ọ p n ày trở n ê n "h o àn h ảo "
n ế u tố c đ ộ đ ọ c c ủ a b ộ đ iề u k h iể n b ằ n g tố c đ ộ tiế n trìn h "tiêu th ụ " k ý tự.
C ó th ể đ ặ t th ê m b ộ đ ệ m g iữ a b ộ đ iề u k h iể n v à trìn h đ iề u k h iể n th iế t bị
(H ìn h 8 .9 b ), k h i đ ó c ó h a i b ộ đ ệ m tro n g h ệ th ố n g . B ộ đ ệm th ứ n h ấ t lư u tạ m
d ữ liệ u c h o tầ n g c a o h ơ n lấ y , tro n g khi b ộ đ ệ m k ia lư u d ữ liệ u lấy từ tầ n g
b ê n d ư ớ i. C h ú ý , k ỹ th u ậ í n à y h o à n to à n á p d ụ n g đ ư ợ c c h o th iế t bị h ư ớ n g
k h ố i, c h ẳ n g h ạ n ổ đ ĩa. K h i đ ó , k íc h th ư ớ c b ộ đ ệ m p h ải đ ủ lớ n đ ể c h ứ a đ ư ợ c
m ộ t k h ố i d ữ liệu .

kuến
Data [1

1

Tkiéiụ

1

KhÔDgcóđôm


CoDtroUer đoc b,

(a)
Hình 8.9. Kỹ thuật bộ đệm dữ liệu

H ệ th ố n g c ó
d ữ liệ u (v ớ i th a o
liệ u v à o b ộ đ ệ m
th a o tá c w rite v à

th ể c ó n h iề u b ộ đ ệ m n h ư tro n g H ìn h 8.1 Oa. B ộ p h ậ n tạ o ra
tá c re a d là b ộ đ iề u k h iể n , v ớ i th a o tác w rite là C P U ) g h i d ữ
i, tro n g k h i b ộ p h ậ n tiê u th ụ d ữ liệ u (b ộ đ iề u k h iể n tro n g
C P U tro n g th a o tá c re a d ) đ ọ c d ữ liệ u từ b ộ đ ệ m j. K h i đ ó ,

c á c b ộ đ ệ m từ j đ ế n (n - 1) v à từ 0 đ é n (i - 1) đ ầy . B ộ p h ậ n tiê u th ụ c ó th ể
đ ọ c d ữ liệ u tro n g b ộ đ ệ m j đ ế n (n - 1) v à từ 0 đ ế n (i - 1). B ộ p h ậ n sả n x u ấ t
có th ể g h i v à o c á c b ộ đ ệ m i đ ế n (j - 1 )> tro n g k h i b ộ p h ậ n tiê u th ụ đ ọ c từ bộ
đ ệ m j. T ro n g k ỹ th u ậ t đ ệ m v ò n g (c irc u la r b u íĩe r ) n h ư v ậy , b ộ p h ậ n sả n x u ấ t
không thể ghi vượt qua bộ phận tiêu thụ, vì nếu không sẽ làm mất dừ liệu

c h ư a tiê u th ụ . B ộ p h ậ n sả n x u ấ t ch ỉ đ ư ợ c g h i tớ i b ộ đ ệm j - 1 n ế u bộ đ ệ m j
đ a n g đ ư ợ c đ ợ i tiê u th ụ .
Ả n h h ư ở n g c ủ a b ộ đ ệ m tớ i h iệ u su ấ t p h ụ th u ộ c n h iề u v à o đ ặ c đ iể m tiế n
trìn h . T iế n trìn h h ư ớ n g v à o /ra th ư ờ n g đ ọ c b ộ đ ệ m n g ay k h i b ộ đ iề u k h iể n

148


c h u y ế n d ừ liệ u v ào , h o ặc g h i n g ay d ữ liệ u k h i b ộ đ iề u k h iể n b ắ t đ ầ u g h i d ữ

liệu ra th iết bị. T iế n Irình h ư ớ n g tín h to á n c ó x u h ư ớ n g n g ư ợ c lại: b ộ đ ệm
v ào th ư ờ n g đ ầ y tro n g k h i b ộ đ ệ m ra th ư ờ n g rồ n g . T iế n trìn h đ ơ n g iả n
th ư ờ n g là h ư ớ n g v ào /ra, cò n tiế n trìn h p h ứ c tạ p th ư ò n g c ó n h iề u p h a , có p h a
h ư ớ n g v à o /ra v à có p h a h ư ớ n g tín h to á n . C á c p h a x e n k ẽ n h a u tậ n d ụ n g tối
d a u n d iổ m c ù a bộ đ ệm , vì tro n g th ờ i g ia n tiế n trìn h th ự c h iệ n tín h to á n , bộ
đ iề u k h iể n n h a n h c h ó n g đ ổ d ữ liệ u v à o (h o ặ c ra) b ộ đ ệ m . K h i b ộ đ ệ m đ ầy
(h o ặc trố n g ), tiế n trin h c h u y ể n sa n g p h a h ư ớ n g tín h to á n . T u y n h iê n , b ộ đ ệm
c ũ n g làm su y g iả m h iệ u su ấ t k h i d ữ liệ u bị tru n g c h u y ể n q u a n h iề u b ộ đ ệm .
X ét ví dụ m ạ n g m áy tín h h o ạ t đ ộ n g trê n H ìn h S .lO b . Đ ầ u tiê n , tiế n trìn h
n g ư ờ i d ù n g th ự c h iện lời g ọ i h ệ th ố n g đ ể g ử i th ô n g đ iệ p q u a m ạ n g . H Đ H
sao c h é p gói d ừ liệu tớ i b ộ đ ệ m tro n g H Đ H đ ể tiế n trìn h n g ư ờ i d ù n g tiế p tụ c
th ự c th i (b ư ớ c 1). K hi th ự c th i, trìn h đ iề u k h iể n c h u y ể n gói d ữ liệ u tở i bộ
đ iề u k h iể n đ ể x u ấ t (b ư ớ c 2). T rìn h đ iề u k h iể n k h ô n g g ừ i trự c tiế p d ữ liệu
trên đ ư ờ n g Iru y ề n , vì p h ải đ ả m b ả o tố c đ ộ g ử i cổ đ ịn h . T rin h đ iề u k h iể n
k h ô n g th ể đ ả m b ả o có th ể lấy d ừ liệ u từ bộ n h ớ tro n g v ớ i tố c đ ộ n h ấ t đ ịn h
d o k ê n h D M A v à các th iế t bị v à o /ra k h á c có th ể tra n h c h ấ p b u s d ù n g c h u n g .
C hi c ầ n gửi lỗi m ộ t b y te , có th ể là m h ỏ n g to à n b ộ g ó i d ữ liệu . Đ ặ t gói d ừ
liệu tro n g bộ đ ệ m c ù a bộ đ iề u k h iể n sẽ trá n h đ ư ợ c v ấ n đ ề n ày . S a u kh i đ ư ợ c
c h u y ể n vào b ộ đ ệ m b ên tro n g b ộ đ iề u k h iể n , gó i d ữ liệ u sẽ đ ư ợ c tru y ề n ra
m ạ n g (b ư ớ c 3). S a u k h i b it cu ố i c ù n g đ ế n đ íc h , to à n b ộ g ó i d ữ liệ u đ ư ợ c đặt
vào b ộ đ ệm c ù a b ộ đ iều k h iể n n ơ i n h ận . T iế p đ ế n , g ó i d ữ liệ u đ ư ợ c c h u y ể n
tiế p v à o bộ đ ệ m tro n g k e m e l (b ư ớ c 4 ). C u ố i c ù n g , g ó i d ữ liệ u đ ư ợ c sa o c h é p
tớ i b ộ đ ệm tiế n trìn h n g ư ờ i d ù n g . T h ô n g th ư ờ n g , tiế n trìn h n h ậ n sẽ g ử i lại
m ộ t b iê n n h ận . C h i khi n h ận đ ư ợ c b iê n n h ậ n , p h ía g ử i m ớ i đ ư ợ c g ử i tiế p gói
d ữ liệ u m ớ i. R õ ràn g , cà n g n h iề u b ộ đ ệ m , tố c đ ộ tru y ề n dữ liệ u c à n g c h ậ m .
Tiển ưỉnh N g iw i dùng

L Ì t dử Uệu từB ộđệa

_________ Ì ------------------


d H :



Ũ B B n ũ ũ D
r ------------------- ^

CliKvển dử

H1ìe Bỹ

(a)

Không gian
Ngiròidùng

(5'p
5

Không gian
HĐÌH

c 3

Bộ điểu
khíẻn Mọng

4


n

Mọng mày tinh

(b )

Hình 8.10. Bộ đệm xoay vòng và ảnh hường tới hiệu suất

149


8 .3 . T R ÌN H Đ IÈ U K H IẾ N T H IÉ T BỊ

T iến trin h ứ n g d ụ n g gọi trìn h đ iều k h iể n th iế t bị khi m u ố n th ự c hiện
v ào /ra. T rìn h đ iề u k h iể n "d ịch " y êu cầu n ày th à n h lệnh m à bộ điều k h iể n có
th ể "h iểu " đ ư ợ c. S au d ó , h o ặc trìn h đ iề u k h iể n sẽ th ă m d ò xem bộ đ iều
k h iể n đ ã h o àn th à n h cô n g v iệc h ay ch ư a, h o ặc sẽ ghi lại các th ô n g tin v ào
b ản g th iế t bị tro n g trư ờ n g h ọ p sứ d ụ n g n g ắt. N g o à i v iệc p h ải đ ư a ra các lệnh
đ ặc th ù ch o từ n g bộ đ iề u k h iể n th iế t bị, trìn h đ iề u k h iể n th iế t bị còn phải:
1. C u n g cấp A P I đ ể ứ n g d ụ n g th ự c h iệ n v à o /ra trên th iế t bị. G iao d iện
A P l g iữ a các trìn h đ iề u k h iể n n ên g iố n g n h au .
2. Đ ảm b ảo p h ố i h ợ p h o ạt đ ộ n g cù a tiế n trìn h ứ n g d ụ n g và b ộ đ iề u
k h iể n th iế t bị.
3. T ố i ư u h iệ u su ất tổ n g th ể củ a hệ th ố n g vớ i p h ư ơ n g p h áp đ iều k h iể n
th íc h hợp.
8 .3 .1 . G ia o d iệ n c ủ a t r ì n h đ iề u k h iể n

M ỗi H Đ H x ây d ự n g riê n g ch o m ìn h m ộ t k iế n trú c h ệ th ố n g v à o /ra với
h ai g iao d iệ n c ơ bản là A P I (g iao d iện ch o n g ư ờ i lập trin h ) và giao d iệ n với
n h ân H Đ H .

API - Giao diện lập trình ứng dụng
A P l là g iao d iệ n n g ư ờ i lập trìn h sử d ụ n g để th ự c h iệ n v ào /ra trê n th iế t
bị. N h iệ m v ụ c h ín h củ a th iế t bị là tru y ền th ô n g h o ặc lư u trữ . C ác th iế t bị
"v ào " thưòrng "tạo " ra th ô n g tin đ ư a v ào hệ th ố n g . T h ô n g tin có th ể k h ô n g có
k h u ô n d ạn g (đ ến từ m ạ n g m áy tín h ), h o ặc có k h u ô n d ạ n g x ác đ ịn h (đ ến từ ổ
đ ĩa). T iế n trìn h sẽ "ghi" th ô n g tin lên th iế t bị "ra", có th ể là th iế t bị tru y ề n
th ô n g , h o ặc th iế t bị lư u trữ để sa u n ày sử d ụ n g lại. T rìn h đ iề u k h iể n ch ịu
trá c h n h iệ m k iể m so á t trạ n g th ái th iế t bị (b ậ n h ay rồ i) h a y tiế n trìn h n ào
đ a n g sử d ụ n g th iế t bị. B ên c ạ n h th ô n g tin lư u tro n g b ản g trạ n g thái th iế t bị,
p h ải lư u trữ các th ô n g tin v ề đặc tín h củ a từ n g lo ại th iế t bị. P hần lớ n giao
d iệ n c ủ a trìn h đ iề u k h iể n có lời gọ i open v à close vớ i m ụ c đ íc h để k h ở i tạo
(x in cấ p p h át th iế t b ị, tạo các b ản g tư ơ n g ứ n g ) v à k ế t th ú c q u á trìn h sử d ụ n g
th iế t bị (đ án h d ấ u th iế t bị ở trạ n g th ái rỗi).
T rìn h đ iề u k h iể n c u n g cấ p các h àm đ ể ứ n g d ụ n g sử d ụ n g khi m u ố n trao
đ ổ i d ữ liệu v ớ i th iế t bị. M ặc d ù cố g ắn g đ ể tạ o ra m ộ t g ia o d iệ n (là h ệ th ố n g
150


c á c h àm ) th ố n g n h ấ t (về cá ch g ọi, tru y ề n th a m sổ) ch o tấ t cả các loại th iết
b ị, n h ư n g m ụ c tiê u n ày k h ó đ ạl đ ư ợ c vì các k iể u th iế t bị có b ản c h ấ t khác
n h a u , nên cá ch sử d ụ n g cũ n g k hác nhau.
^

Giao diện với nhân HĐH

rrin li đ iều k h iể n th ự c thi các chỉ thị đ ặc q u y ề n khi ra lệnh c h o b ộ đ iều
k h iể n th iế t bị, n g h ĩa là trìn h đ iều k h iể n đ ư ợ c th ự c thi n h ư m ộ t bộ p h ận c ù a
H D H , c h ứ k h ô n g p h ải bộ p h ận c ủ a c h ư ơ n g trìn h ứ n g d ụ n g . T rìn h đ iề u k h iển
c ò n có k h ả n ăn g đ ọ c/g h i th ô n g tin trên k h ô n g g ia n đ ịa chỉ củ a n h iề u tiến
trìn h , vì th iế t bị có th ể đ ư ợ c d ù n g ch u n g . T ro n g các H Đ H cũ , trìn h đ iề u

k h iể n th ư ờ n g đ ư ợ c tích h ợ p v ào H Đ H b ằ n g c á c h th a y đổi m ã n g u ồ n H Đ H
v à sa u dó b iên d ịc h lại.
Tiên ưinh

G ia o d i^ n v ó i HĐH

IRT

Trinh điểu khiển

r «4 d ( , . . ){

Hànoưno với Thỉốtblỉ

re«d_requast<)
w a it ỉ o r d o n e () ;

............. ♦ Các Dịch

Gỉao d iệ n g ịũ «
Trỉnhđi6u khièn/ Kernel

re tu rn ;

_______ vvkhàt

cũ« K e im l

w h ile (D {
* ask_foi-_*#ork() ;

do t he work () :
Bộ đ ù u khiin (P h in cứng)

a)

b)

Hình 8.11. Giao diện giữa HĐH và trình điều khiẻn thiết bị

C ác H Đ H h iệ n đại đ ơ n g iả n h ó a v iệc cài đ ặ t th iế t bị b àn g cá ch ch o p h ép
cài đ ặ t trìn h đ iề u k h iể n m à k h ô n g cần b iê n d ịc h lại H Đ H (h ệ th ố n g sẽ đ ư ợ c
c ấ u h ìn h lại th ô n g q u a n h ữ n g ch i thị đặc b iệt). K hi th iế t kế, m ã H Đ H
k ế t b u ộ c đ ộ n g v ớ i các ch ứ c n ăn g c ủ a trìn h đ iề u k h iển . V í d ụ tro n g h H ìn h
8.1 la , b ản g g iá n tiế p (IT R ) củ a th iế t bị j "trỏ" tớ i các m o d u le cài đ ặ t các
h à m open, read... c ù a trìn h đ iề u k h iển . T rìn h đ iề u k h iể n đ ư ợ c c h u ẩ n h ó a để
c ó g ia o d iệ n A P I g iố n g n h au . V ì trìn h đ iề u k h iể n th iế t bị đ ư ợ c tíc h h ọ p vào
n h â n sa u khi n h â n đ ã đ ư ợ c b iê n d ịc h , d o đ ó n h â n p h ải c u n g cấ p g ia o d iệ n
c h o trìn h đ iề u k h iể n th iế t bị đ ể x in cấ p p h á t v ù n g n h ớ làm b ộ đ ệm để cập
n h ậ t cá c b ản g tro n g n h ân . H Đ H sử d ụ n g b ả n g th a m c h iế u g iá n tiế p (In d e ric t
R c fe re n c e T a b le - IR T ) đ ể tru y c ậ p tớ i các p h ần k h ác n h au tro n g trìn h đ iề u
k h iể n d ự a trên đ ịn h d an h th iế t bị v à tên h à m cầ n sử d ụ n g . N h â n c u n g cấp
151


g ia o d iệ n A P I - là m ộ t p h ầ n g iao d iệ n cù a H Đ H . K hi tiế n trìn h gọ i lời gọi
hệ thống, nhân sẽ chuyển lời gọi này tới trình điều khiển nhờ bảng gián tiếp.

K hi cài đ ặ t trìn h đ iề u k h iể n , th ô n g tin về IR T đ ư ợ c đ ư a ch o H Đ H sử d ụ n g
tro n g q u á trìn h th ự c th i.
8 .3 .2 . T ư ơ n g tá c g iữ a C P U v à t h iế t b ị


C P U v à th iế t b ị là các th ự c th ể tá c h rờ i, có k h ả n ă n g h o ạ t đ ộ n g đ ộ c lập
v ớ i n h au . B ộ p h ậ n q u ả n lý th iế t bị p h ải c u n g cấ p c á c h th ứ c đ ể tiế n trìn h th ự c
th i trên C P U có th ể đ ồ n g b ộ h o ạ t đ ộ n g v ớ i th iế t bị m à tiến trìn h sử dụng.
H ìn h 8.1 I b m in h h ọ a b a b ộ p h ận có liên q u a n tro n g th a o tác v à o /ra v à cá ch
th ứ c p h ố i h ợ p h o ạ t đ ộ n g g iữ a ch ú n g . T ro n g h ìn h v ẽ, th a o tác c ủ a p h ầ n cứ n g
b ộ đ iề u k h iể n , trìn h đ iề u k h iể n th iế t bị v à p h ầ n m ề m ứ n g d ụ n g đ ư ợ c m in h
h ọ a b ằ n g n g ô n n g ữ c . V ì bộ đ iề u k h iể n là p h ầ n c ứ n g lu ô n h o ạ t đ ộ n g n ên
đ ư ợ c đ ặt tro n g v ò n g lặp v ô h ạn for. Đ ầ u tiê n , th iế t bị "đợi v iệc" - tứ c là đợ i
lệ n h đ ư ợ c đ ặ t v ào th a n h ghi lệnh củ a b ộ đ iề u k h iể n (đ ợ i bộ đ iề u k h iể n th iết
lập c ờ busy). S au khi n h ậ n lện h, bộ đ iề u k h iể n th ự c h iệ n lện h v à sẽ b á o h iệ u
kh i th ự c h iệ n x o n g lện h (b à n g cá c h th iế t lập c ờ done tro n g th a n h ghi trạn g
th á i). T rìn h đ iề u k h iể n th iế t bị (m ộ t p h ầ n c ủ a H Đ H ) đ ư ợ c n g ư ờ i d ù n g gọi
kh i cần th iết, v ề m ặ t k h ái n iệ m , có th ể x e m m ỗ i ch ứ c n ăn g c ù a trìn h đ iề u
k h iể n n h u m ộ t th ủ tụ c, th ủ tụ c n ày đ ư ợ c tiế n trìn h ứ n g d ụ n g g ọ i. K hi ch ứ c
n ă n g n ào đ ó đ ư ợ c g ọ i, trìn h đ iề u k h iể n th ự c h iệ n m ộ t "lời g ọ i p h ầ n cứ n g "
tớ i b ộ đ iề u k h iể n b à n g cá c h th iế t lập g iá trị cá c th a n h ghi tro n g b ộ đ iề u
k h iể n . T ro n g h ệ th ố n g th ă m d ò , trìn h đ iề u k h iể n sẽ th ă m d ò x e m th iế t bị đã
th ự c h iệ n x o n g c ô n g v iệ c h a y ch ư a. T ro n g trư ờ n g h ợ p sử d ụ n g n g ắ t, trìn h x ử
lý n g ắt ch o th iế t bị đ ư ợ c gọi. T ro n g c ả hai trư ờ n g h ợ p , tiế n trìn h ứ n g d ụ n g
y ê u c ầ u v à o /ra sẽ đ ư ợ c trả lại q u y ề n sử d ụ n g C P U g iố n g n h ư trả v ề sa u khi
g ọ i th ủ tụ c tro n g m ô i trư ờ n g lập trìn h tru y ề n th ố n g .
CÂU HỎI ÔN TẬ P

1. Trình bày các phương

pháp quản lý thiết bj.

2. Trình bày ưu điểm của vào/ra qua ánh xạ bộ nhớ.
3. Trình bày ưu điểm của DMA.


152


ChiHơng 9
QUÀN LÝ B ộ NHỚ
Để nàng cao hiệu suất bằng cách chia sẻ CPU giữa nhiều tiến trình, hệ
thống phải tải nhiều tiến trinh vào trong bộ nhớ, nghĩa là bộ nhớ được sử
dụng trong chế độ chia sẻ. Chương này trinh bày, so sánh các phương
phàp quản lỷ bộ nhớ khác nhau, từ những thuật toàn quản lý bộ nhớ cực
kỳ đơn giản trong những thế hệ máy tính đầu tiên đến các thuật toàn
phân trang kết hợp phàn đoạn phức tạp.

9 .1 . C Á C L O Ạ I Đ ỊA C H Ỉ
9 .1 .1 . K ế t b u ộ c đ ịa c h ỉ

Đ ối với n g ư ờ i lập trìn h , c h ư ơ n g trìn h v iế t ra có k h u ô n d ạ n g tư ơ n g tự
lỉìn h 9 . la . T rìn h b iên d ịc h cấ p p h á t k h ô n g g ia n ch o b iế n gVar tro n g m o d u le
đ ố i tirợ n g - là m o d u le có k h ả n ă n g tái đ ịn h vị. T u y n h iê n , rất có th ể h àm
put_record lại n ằm tro n g m o d u le đố i tư ợ n g k h ác , d o đ ó trin h b iê n d ịc h c h ư a
k ết b u ộ c h àm n à y vớ i đ ịa ch ỉ c ụ th ể n ào cà. T rìn h b iê n d ịc h tạ o ra đ o ạn m ã
tư ơ n g tự n h ư H ìn h 9 .1 b . gVal n ằ m ở ô 0 0 3 6 v à trin h b iê n d ịc h sẽ ghi lại án h
x ạ n ày v ào b ả n g B iểu tư ợ n g (b ả n g n ày n ả m ở vị trí 0 6 0 0 tro n g m o d u le ). C hi
thị ờ đ ịa chi 0 2 2 0 c h u y ể n g iá trị 7 v ào th a n h ghi R l , chi th ị kế tiế p ở đ ịa chi
0 2 2 4 c h u y ể n g iá trị R I v ào ô 0 0 3 6 , k ết h ợ p lại là lệ n h g á n gV ar = 7. T rìn h
biên dịch thực hiện lời gọi bàng cách đặt giá trị gVar vào ngăn xếp (chi thị

có đ ịa ch i 0 2 2 8 ), sa u đ ó gọi put_record (chi th ị ở đ ịa chỉ 0 2 3 2 ). C h ú ý,
put_record n ằm ở m o d u le đ ố i tư ợ n g k hác. V ì c h ư a có đ ủ th ô n g tin n ên trin h
b iên d ịc h k h ô n g th ể x á c đ ịn h đ ư ợ c vị trí put_record (cô n g v iệ c n à y sẽ đ ể lại

ch o trìn h liên k ết). T rìn h b iê n d ịc h ghi th ô n g tin về th a m c h iế u n ày tại b ản g
th a m c h iế u n g o à i (b ả n g n ằm ở đ ịa chỉ 0 4 0 0 ). T rìn h liê n k ết k ết h ợ p các
m o d u le tái đ ịn h vị đ ể sin h m ã tu y ệt đối n h ư m in h h ọ a tro n g H ìn h 9.1c.
153


T rìn h liên k ết c h ỉn h lại các đ ịa chi. Đ o ạn m ã tro n g H ình 9 ,l b d ư ợ c c h u y ể n
sa n g H ìn h 9 .1 c ở vị trí 1008. N h ư v ậy , đ ịa chi tư ơ n g đối 0 Iro n g H ìn h 9 .1 b
c h u y ể n th à n h đ ịa ch ỉ 1008 tro n g H in h 9 .1 c. C h ú ý, đ ịa chi tro n g m o d u le
tu y ệ t đổi v ẫn b ắt đ ầ u từ 0. T ại th ờ i d iể m tả i, m o d u le tu y ệ t đ ố i đ ư ợ c tải v à o
b ộ n h ớ đ ể tạo n ên h ìn h ản h tiế n trìn h tro n g b ộ n h ớ (H ìn h 9 .1 d ).
Ita tic int g V a r

Code Segment
Relattve Generated
A d đ re s i Code
0000
(ữ ther m o d u le t)

(a)

int proc_a(ínt srọH
gV«r - 7;
put recorđ(gVsr);

Relative
A d d re ts
0000
4000


Generateti
Code
(Olher p fo c e * i‘i p rog ra m *)
(O th e rm o d u le i)

5008

e ntry

D atj Segment
Rei«tỉve Generated
A d đ re s * varl8b
01Ỉ6

[Space fo r gVar vsHAble]

1000

( la tl k>cation in the data segm ent)

100«

entry

p ro c _ i

1220
1224
1Z28

1232

load
store
pu«h
M li

RI
R1.0136
10M

1399
2JJ4

(E n d o tp ro c flỉ
(O ffw r m odũies}
errtry
put_record

K 70

(o p tio n tl ty m tx tl taWe)

?999

(Isst locstion in th e coớe le g m e n l)

(d )

(c)


...

proc •

[S p « :e to rg V tr v íri» b le l
Code Segment
Nei«tive Generated
A đ d re t* Code

5220
S224
5728
&232

lo»d
Slare
pu9h
CMÌ

-7. RI
R1.7136
&0Ỉ6
63M

b ĩ99

(Ẽnd of proc_i)

63i4


(Other m o d ũ ie t)
entry
put_record

6670

(optiooal ty m b o l table}

6999
7000

( Ic it lo c itio n In the cođe segm enlỊ
(flrs t location in th« úaXB aegm ent)

7136

ISpace fo r gVar vanstXe]

MK>0

(Oth«r p ro c e a i‘t p ro g rs m t)

Oeta Segment
Rel«tive Generated
A d d re ts v«risb
(b )

0000


e niry
0220
0224
0228
0232

l09d
•to re
pu«h
call

proc_a
-7, RI
RI, 0036
0036
•p u t.re c o rđ ’

0036

[Space fo r gVsr van«ble|

0Ỏ49

(l««t lo c itio n in the data segm ent)

LxtemAl reference Ubte
0404

t>ol_fecord'


0600

External òetin itio n tab<«

oUỉ

1>roc,«'

0600

(ty m b o i tab<«)

0799

{la tt location »n ttte code •e g m e n l}

0232

0008

Hinh 9.1. Quá trinh biên dịch

T h ư ờ n g c h ư ơ n g trìn h k h ả th i (k ết q u ả c ủ a trìn h liên k ết) đ ư ợ c lư u trữ
d ư ớ i d ạ n g fíle nhị p h ân , ch ẳ n g h ạn cá c file .C O M h ay .E X E tro n g H Đ H
M S -D O S . C h ư ơ n g trìn h sẽ đ ư ợ c tải v ào b ộ n h ớ v à h ệ th ố n g tạ o lập tiế n
trìn h tư ơ n g ứ n g đ ể th ự c th i. P h ụ th u ộ c v à o p h ư ơ n g p h á p q u ả n lý b ộ n h ớ ,
tiế n trìn h có th ể h o án c h u y ể n g iữ a ổ đ ĩa v à b ộ n h ớ tro n g su ố t q u á trìn h th ự c
th i. T iế n trìn h ngưòri d ù n g có th ể đ ư ợ c tải v à o vị trí b ất k ỳ tro n g b ộ nhớ. V ì
th ế , m ặc d ù k h ô n g g ia n đ ịa chi b ắ t đ ầu từ 0 , n h ư n g đ ịa chi c ủ a c h ỉ thị đ ầ u

tiê n tro n g tiế n trìn h k h ô n g n h ất th iế t phải là 0. T h ư ờ n g c h ư ơ n g trìn h n g u ồ n
p h ải q u a n h iề u b ư ớ c trư ớ c k h i th ự c thi (H ìn h 9 .2 a). Đ ịa chi tại m ồ i b ư ớ c
đ ư ợ c b iể u d iễ n th e o n h iề u cá c h k h ác n h au . Đ ịa chi tro n g c h ư ơ n g trìn h
n g u ồ n m a n g tín h b iể u tư ợ n g (gVar). C hưom g trìn h d ịc h sẽ "kết b u ộ c " đ ịa chỉ
154


b iếu tưcm g n ày vớ i đ ịa chi k h ả đ ịn h vị (c h ẳ n g h ạn , cá ch vị trí bắt đ ầ u củ a
m o d u le 0 0 3 6 b y le). Đ ến lư ợ t trìn h liên kết h ay bộ tải sẽ kết b u ộ c đ ịa chỉ k hả
d ịn h vị với đ ịa ch ỉ tu y ệ t đối (ch ẳn g h ạn 5 0 3 6 ). M ỗi q u á trìn h kết b u ộ c là
ih ự c h iện án h x ạ từ k h ô n g g ian đ ịa chi n ày sa n g k h ô n g g ian đ ịa chi khác.
(b)

(a)
ĨOÍ

mútm

( rU
c . renrii.

Tấi 4 iih n

8CK

A di.c> r..
T n tk L iê i kM

Kíihcrp v*ic«c
nén bii la


rtư

Mà toỵệl
đối

Bộ obớtroBg

Ckimsinolt
--- *

K h á ih i

Hình 9.2. Kết buộc địa chĩ trong quả trình ánh xạ bộ nhớ

Q u á trìn h k ết b u ộ c ch ỉ th ị v à d ừ liệu v ớ i đ ịa chi cụ th ể tro n g bộ n h ớ có
th ế th ự c h iện tại b ấ t k ỳ th ờ i đ iểm nào sau đây:
• T h ờ i điểm b iê n d ịc h : N ếu tại th ờ i đ iể m b iê n d ịc h b iết đ ư ợ c tiến
trìn h sẽ n ằm ở đ âu tro n g bộ n h ớ , trìn h b iên d ịc h có th ể sin h m ã với
d ịa ch i tu y ệ t đ ố i. V í dụ, n ếu b iết trư ớ c vị trí b ấ t đ ầ u củ a tiế n trìn h
n g ư ờ i d ù n g là R, thi m ã d o trìn h b iê n d ịc h sin h ra bất đ ầ u từ vị trí R.
N ếu sau đ ó , vị trí k h ở i đ ầ u th a y đ ổ i thì p h ải b iê n d ịc h lại c h ư ơ n g
trin h . C h ư ơ n g trìn h d ạn g .C O M cù a M S -D O S có m ã là đ ịa chi tu y ệ t
đ ố i d ư ợ c sin h tại thờ i đ iểm b iên d ịch .
• T h ò i đ iể m tả i: N ếu lại th ờ i đ iể m b iê n d ịc h k h ô n g b iế t trư ớ c vị trí
tro n g bộ n h ớ củ a tiế n trìn h , thì trìn h b iê n d ịc h sin h m ă k h ả đ ịn h vị.
Trong trường hợp này, sự kết buộc địa chi bị trì hoãn đến thời điểm

lải. N ế u đ ịa ch i kh ở i đ ầ u th a y đ ổ i, th ì chỉ cầ n n ạp lại m ã k h ả đ ịn h vị
đ ể sin h ra đ ịa ch ỉ tu y ệ t đ ố i m à k h ô n g cầ n b iê n d ịc h lại chuoTig trìn h .

• T h ò i đ iể m th ự c th i: N ế u tro n g q u á trìn h th ự c th i, tiế n trìn h có th ể di
ch u y ể n từ v ù n g n h ớ n ày san g v ù n g n h ớ k h ác , thì sự kết b u ộ c đ ịa chi
p h ải trì h o ã n đ ến th ờ i đ iểm th ự c th i. Đ ể th ự c h iệ n đ iề u n ày , cầ n có
n h ữ n g p h ầ n c ứ n g đ ặ c b iệ t đ ư ợ c trìn h b ày tro n g m ụ c 9.2.
155


9 .1 .2 . T ả i đ ộ n g ( D y n a m ic lo a d ỉn g )

T h ủ tụ c (lư u trên ổ đ ĩa d ư ớ i đ ịn h d ạn g có th ể liên k ế t v à tả i) chỉ đ ư ợ c
tải v ào b ộ n h ớ k h i c ầ n th iết. K hi đ ư ợ c g ọ i, hệ th ố n g k iể m tra x e m th ủ tục đ ã
n ằm tro n g b ộ n h ớ h a y ch ư a. N ế u ch ư a, b ộ tải đ ư a th ủ tục v ào b ộ n h ớ v à c ậ p
n h ậ t lại b ả n g đ ịa chỉ c ủ a c h ư ơ n g trình. S au đ ó , H Đ H th ự c thi th ù tụ c v ừ a tải
v ào . T ro n g c h ư ơ n g trìn h có n h iề u đ o ạn m ã x ử lý b iệ t lệ (v í d ụ th ủ tụ c x ử lý
lỗ i) v ớ i đ ặc đ iể m ít đ ư ợ c sử d ụ n g , do đó b ộ n h ớ đ ư ợ c tiế t k iệ m d o k h ô n g
p h ải tải to à n bộ c h ư ơ n g trìn h vào. T ải đ ộ n g k h ô n g đ ò i h ỏ i H Đ H hỗ trợ .
N g ư ờ i lập trìn h th iế t k ế c h ư ơ n g trìn h đ ể tậ n d ụ n g ư ii đ iể m c ủ a ch iế n
lư ợ c này.
9 .1 .3 . L iê n k ế t đ ộ n g

P h ầ n lớ n H Đ H h ỗ trợ liên k ế t tĩn h (th u v iệ n n g ô n n g ữ lậ p trìn h g iố n g
m o d u le đ ổ i tư ợ n g v à đ ư ợ c b ộ tải kết h ợ p th à n h h ìn h ả n h n h ị p h â n c ủ a
c h ư ơ n g trìn h ). K h ái n iệ m liê n k ế t đ ộ n g tư ơ n g tự k h ái n iệ m tải đ ộ n g , tro n g
đó q u á trìn h liên k ế t bị trì h o ã n lại. Đ ặc tín h n ày đ ư ợ c s ử d ụ n g v ớ i th ư v iện
h ệ th ố n g , c h ẳ n g h ạ n th ư v iệ n cá c th ủ tụ c c o n c ủ a n g ô n n g ữ lậ p trìn h . N ế u
k h ô n g có đ ặc tín h n ày , h ìn h ả n h nhị p h â n c ủ a tấ t c ả các c h ư ơ n g trìn h tro n g
h ệ th ố n g p h ả i c h ứ a b ả n sao th ư v iện n g ô n n g ữ . Đ iề u n à y lã n g p h í k h ô n g
g ia n ổ đ ĩa v à b ộ n h ớ c h ín h . V ớ i liên k ết đ ộ n g , h ìn h ả n h n h ị p h â n củ a
c h ư ơ n g trìn h k h ô n g c h ứ a th ủ tụ c c ủ a th ư v iệ n h ệ th ố n g m à c h ứ a "đ ại diện"
c ủ a nó . "Đ ại d iện " là đ o ạ n m ã n h ỏ d ù n g đ ể x ác đ ịn h vị trí c ủ a th ủ tụ c tư ơ n g

ứ n g tro n g b ộ n h ớ , h o ặc là m th ế n ào đ ể tải v ào b ộ n h ớ n ế u th ủ tụ c c h ư a n ằm
tro n g b ộ n h ớ . K h i th ự c th i, "đại diện" sẽ k iể m tra liệu th ủ tụ c m à m ìn h đại
diện đã nằm trong bộ nhớ chưa, nếu chưa thì tải thủ tục vào. Sau đó, thủ tục

th ậ t sẽ th a y th ế "đại d iệ n ". T ro n g n h ữ n g lầ n th ự c th i k ế đ ó , th ủ tụ c đ ư ợ c
th ự c th i n g ay . N g o à i ra, ch ỉ cần m ộ t b ả n sao c ủ a th ủ tụ c c h o tấ t c ả cá c tiến
trìn h d ù n g ch u n g .
K h i có n h iề u p h iê n b ả n , chưom g trin h lự a c h ọ n sử d ụ n g p h iê n b ả n th ư
v iệ n m ớ i n h ất. N ế u k h ô n g c ó c ơ ch ế liê n k ế t đ ộ n g , th ì p h ả i liê n k ế t lại
c h ư ơ n g trìn h k h i c ó th ê m th ư v iệ n m ớ i. Đ ể trá n h trư ờ n g h ợ p c h ư ơ n g iTình
n g ẫu n h iê n s ừ d ụ n g p h iê n b ả n th ư v iệ n m ớ i k h ô n g tư ơ n g th íc h v ớ i p h iê n b ản
cũ , h ệ th ố n g sẽ tíc h h ợ p th ô n g tin v ề p h iê n b ả n tro n g cả c h ư ơ n g tr ia h lẫn th ư
v iện . C ó th ể có n h iề u p h iê n b ả n c ủ a c ù n g m ộ t th ư v iệ n đ ư ợ c tả i v à o b ộ n h ớ
156


×