Giáo trình Hệ điều hành - Chương 11: Quản lý hệ thống nhập/xuất - Nguyễn Phú Trường

Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
QUN LÝ HTHNG NHP/XUT  
I Mc đích  
Sau khi hc xong chương này, người hc nm được nhng kiến thc sau:  
Hiu các cơ sca phn cng nhp/xut  
Hiu các dch vnhp/xut được cung cp bi hệ điu hành  
Hiu cách hệ điu hành làm cu ni gia giao din phn cng và giao din ng  
dng  
Biết các khía cnh năng lc ca nhp/xut và các nguyên lý thiết kế hệ điu  
hành để ci tiến năng lc nhp/xut  
II Gii thiu  
Vai trò ca hệ điu hành trong nhp/xut máy tính là qun lý và điu khin các  
thao tác nhp/xut và các thiết bnhp/xut. Trong chương này chúng ta smô tcác  
khái nim cơ bn ca phn cng nhp/xut. Kế đến chúng ta stho lun các dch vụ  
nhp/xut được cung cp bi hệ điu hành và hin thân ca các dch vnày trong giao  
din ng dng nhp/xut. Sau đó, chúng ta gii thích hệ điu hành làm cu ni gia  
giao din phn cng và giao din ng dng như thế nào. Cui cùng, chúng ta tho  
lun các khía cnh năng lc ca nhp/xut và các nguyên lý thiết kế hệ điu hành để  
ci tiến năng lc nhp/xut.  
III Các khái nim cơ bn  
Điu khin các thiết bị được ni kết ti máy tính là mi quan tâm chyếu ca  
người thiết kế hệ điu hành. Vì các thiết bnhp/xut rt khác nhau vchc năng và  
tc độ (xem xét chut, đĩa cng, và CD-ROM) nên sự đa dng vphương pháp là cn  
thiết để điu khin chúng. Các phương pháp này hình thành mt hthng nhp/xut  
con (I/O subsystem) ca nhân, tách ri phn còn li ca nhân tsphc tp ca vic  
qun lý các thiết bnhp/xut.  
Công nghthiết bnhp/xut thhin hai xu hướng trái ngược nhau. Xu hướng  
thnht, chúng ta tăng schun hoá phn mm và giao din phn cng. Xu hướng  
này giúp chúng ta hp tác nhng thế hthiết bị được ci tiến vào các máy tính và hệ  
điu hành đã có. Xu hướng thhai, chúng ta tăng sự đa dng ca các thiết bị  
nhp/xut. Thiết bmi là rt khác vi các thiết btrước đó đã to ra mt trngi để  
hp nht chúng vào máy tính và hệ điu hành ca chúng ta. Trngi này được gii  
quyết bi skết hp kthut phn cng và phn mm. Các thành phn phn cng  
nhp/xut cơ bn như cng, bus và bộ điu khin thiết bcha trong mt dãy rng các  
thiết bnhp/xut. Để đóng gói các chi tiết và skhác bit ca các thiết bkhác nhau,  
nhân ca hệ điu hành được chdn để dùng các modules trình điu khin thiết b.  
Các trình điu khin thiết b(device driver) hin din mt giao din truy xut thiết bị  
đng nht ti hthng con nhp/xut, như các li gi hthng cung cp mt giao  
din chun gia ng dng và hệ điu hành.  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 242  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
IV Phn cng nhp/xut  
Các máy tính điu hành nhiu loi thiết b. Hu hết chúng thuc các chng loi  
phbiến như thiết blưu tr(đĩa, băng t), thiết btruyn (card mng, modem) và  
thiết bgiao din người dùng (màn hình, bàn phím, chut),.... Mc dù có sự đa dng  
vcác thiết bnhp/xut, nhưng chúng ta chcn hiu mt vài khái nim như các thiết  
bị được gán như thế nào và phn mm có thể điu khin phn cng như thế nào.  
Mt thiết bgiao tiếp vi mt hthng máy tính bng cách gi các tín hiu qua  
dây cáp hay thm chí qua không khí. Các thiết bgiao tiếp vi máy bng mt đim ni  
kết (cng-port) như cng tun t. Nếu mt hay nhiu thiết bdùng mt tp hp dây  
dn, ni kết được gi là bus. Mt bus là mt tp hp dây dn và giao thc được định  
nghĩa cht chẽ để xác định tp hp thông đip có thể được gi qua dây. Trong thut  
ngữ đin t, các thông đip được truyn bi các mu đin thế đin tử được áp dng  
ti các dây dn vi thi gian được xác định. Khi thiết bA có mt cáp gán vào thiết bị  
B, thiết bB có mt cáp gán vào thiết bC và thiết bC gán vào mt cng máy tính,  
ssp xếp này được gi là chui ni tiếp. Mt chui ni tiếp thường điu hành như  
mt bus.  
IV.1 Thăm dò  
Giao thc hoàn chnh cho vic giao tiếp gia máy tính và bộ điu khin rt phc  
tp nhưng ký hiu bt tay (handshaking) là đơn gin. Chúng ta gii thích bt tay bng  
thí dsau. Chúng ta gisrng 2 bits được dùng để hp tác trong mi quan hngười  
sn xut-người tiêu thgia bộ điu khin và máy ch. Bộ điu khin hin thtrng  
thái ca nó thông qua bit bn (busy bit) trong thanh ghi trng thái. Bộ điu khin đặt  
bit bn khi nó đang làm vic và xoá bit bn khi nó sn sàng nhn lnh tiếp theo. Máy  
tính ra tín hiu mong mun bng bit sn sàng nhn lnh (command-ready bit) trong  
thanh ghi lnh. Máy tính thiết lp bit sn sàng nhn lnh khi mt lnh sn dùng cho bộ  
điu khin thc thi. Thí d, máy tính viết dliu xut thông qua mt cng, hp tác  
vi bộ điu khin bng cách bt tay như sau:  
1. Máy tính lp li vic đc bit bn cho ti khi bit này bxoá  
2. Máy tính thiết lp bit viết trong thanh ghi lnh và viết mt byte vào thanh ghi  
dliu xut  
3. Máy tính đặt bit sn sàng nhn lnh  
4. Khi bộ điu khin nhn thy rng bit sn sàng nhn lnh được đặt, nó đặt bit  
bn  
5. Bộ điu khin đc thanh ghi lnh và thy lnh viết. Nó đc thanh ghi xut dữ  
liu để ly mt byte và thc hin nhp/xut ti thiết b.  
6. Bộ điu khin xoá bit sn sàng nhn lnh, xoá bit li trong thanh ghi trng thái  
để hin thrng thiết bnhp/xut thành công, và xoá bit bn để hin thrng  
được kết thúc.  
Vòng lp này được lp cho mi byte.  
Trong bước 1, máy tính là chờ đợi bn hay thăm dò. Nó trong mt vòng lp, đc  
thanh ghi trng thái cho đến khi bit bn được xoá. Nếu bộ điu khin và thiết bnhanh  
thì phương pháp này là mt phương pháp phù hp. Nhưng nếu chlâu máy chủ  
chuyn sang mt tác vkhác. Sau đó, máy tính làm thế nào để biết khi nào bộ điu  
khin rnh? Đối vi mt sthiết b, máy tính phi phc vthiết bnhanh chóng hoc  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 243  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
dliu sbmt. Thí d, khi dliu đang truyn vào cng tun ttbàn phím, mt  
vùng đệm nhtrên bộ điu khin stràn và dliu sbmt nếu máy tính chquá lâu  
trước khi trvcác bytes được đc.  
Trong nhiu kiến trúc máy tính, 3 chu klnh CPU đủ để thăm dò mt thiết b:  
read mt thanh ghi thiết b, thc hin phép tính lun lý and để ly bit trng thái và  
tách ra (branch) nếu khác 0. Rõ ràng, thao tác thăm dò cơ bn là đ. Nhưng thăm dò  
trnên không đủ khi được lp li nhiu ln, hiếm khi tìm mt thiết bsn sàng phc  
vtrong ln thăm dò đầu tiên, trong khi cn dùng CPU để xlý cho các công vic  
khác. Trong trường hp như thế, shiu quhơn để sp xếp bộ điu khin phn cng  
thông báo cho CPU khi nào thiết bsn sàng phc vhơn là yêu cu CPU lp li vic  
thăm dò cho vic hoàn thành nhp/xut. Cơ chế phn cng cho phép mt thiết bị  
thông báo ti CPU được gi là ngt (interrupt).  
IV.2 Ngt  
Hình 0-1 Chu knhp/xut hướng ngt  
Cơ chế ngt cơ bn làm vic như sau: phn cng CPU có mt dây dn được  
gi là dòng yêu cu ngt (interrup-request line) mà CPU cm ng sau khi thc thi  
mi chth. Khi mt CPU phát hin mt bộ điu khin xác nhn mt tín hiu trên  
dòng yêu cu ngt thì CPU lưu mt lượng nhtrng thái như giá trhin hành ca con  
trlnh, và nhy ti thtc ca bqun lý ngt (interrupt-handler) ti địa chcố  
định trong bnh. Bqun lý ngt xác định nguyên nhân gây ra ngt, thc hin xlý  
cn thiết, thc thi chthreturn from interrupt để trvCPU trng thái thc thi trước  
khi ngt. Chúng ta nói rng bộ điu khin thiết bsinh ra mt ngt bng cách xác định  
tín hiu trên dòng yêu cu ngt và bqun lý xoá ngt bng cách phc vthiết b.  
Hình XI-1 tóm tt chu knhp/xut hướng ngt (interrupt-driven I/O cycle)  
IV.3 Truy xut bnhtrc tiếp  
Đối vi mt thiết bthc hin vic truyn ln như ổ đĩa, nó slãng phí khi dùng  
bvi xđể theo dõi các bit trng thái và đẩy dliu vào thanh ghi điu khin tng  
byte mt. Nhiu máy tính mun gim đi gánh nng cho CPU bng cách chuyn mt  
scông vic này ti mt bộ điu khin có mc đích đặc bit được gi là bộ điu  
khin truy xut bnhtrc tiếp (direct memory-access-DMA).  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 244  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
Hình 0-2 Các bước trong vic truyn dliu ca DMA  
Để khi to mt thao tác chuyn DMA, máy tính viết mt khi lnh DMA vào  
bnh. Khi này cha mt con trchti ngun chuyn, mt con trchti đích  
chuyn và đếm slượng byte được chuyn. CPU viết địa chca khi lnh này ti bộ  
điu khin DMA, sau đó CPU tiếp tc làm công vic khác. Bộ điu khin DMA xlý  
để điu hành bus bnhtrc tiếp, đặt các địa chtrên bus để thc hin vic chuyn  
mà không có strgiúp ca CPU. Mt bộ điu khin DMA đơn gin là mt thành  
phn chun trong PCs, và bng nhp/xut bus chính (bus-mastering I/O boards) để  
PC thường cha phn cng DMA tc độ cao. Quá trình này được mô ttrong hình  
XI-2.  
V Giao din nhp/xut ng dng  
Trong phn này, chúng ta tho lun các kthut cu trúc và các giao din cho  
hệ điu hành cho phép các thiết bnhp/xut được đi xtrong cách chun, không  
đi. Thí d, chúng ta gii thích mt ng dng có thmmt tp tin trên đĩa mà không  
biết loi đĩa đó là gì và các đĩa mi và các thiết bkhác có thể được thêm ti máy tính  
như thế nào mà không làm hệ điu hành bgián đon.  
Như nhng vn đề công nghphn mm phc tp khác, tiếp cn ở đây liên quan  
đến tính tru tượng, bao gói và phân tng phn mm. Đặc bit, chúng ta có thtru  
tượng skhác nhau chi tiết trong các thiết bnhp/xut bng cách xác định mt vài  
loi thông dng. Mi loi thông dng được truy xut thông qua mt tp hp hàm  
chun-mt giao din. Skhác bit này được bao gói trong module nhân được gi là  
trình điu khin thiết b(device driver) mà qui định bên trong được áp đặt cho mi  
thiết b, nhưng được nhp vào mt trong nhng giao din chun. Hình XI-3 hin thị  
cách các thành phn liên quan nhp/xut ca nhân được cu trúc trong các tng phn  
mm.  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 245  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
Hình 0-3 Cu trúc ca nhân nhp/xut  
Mc đích ca tng cha trình điu khin thiết blà che đậy skhác bit gia  
các bộ điu khin thiết bthcon nhp/xut ca nhân, nhiu li gi hthng  
nhp/xut đóng gói các hành vi ca thiết btrong mt vài lp phát sinh để che đậy sự  
khác bit tcác ng dng. Thc hin hthng con nhp/xut đc lp vi phn cng  
đơn gin hóa công vic ca người phát trin hệ điu hành. Nó cũng đem li sthun  
li cho các nhà sn xut phn cng. Hthiết kế các thiết bmi tương thích vi giao  
din bộ điu khin chủ đã có (như SCSI-2) hay hviết các trình điu khin thiết bị để  
giao tiếp phn cng mi đi vi các hệ điu hành phbiến. Do đó, các thiết bngoi  
vi mi có thể được gán ti mt máy tính mà không phi chnhà cung cp hệ điu  
hành phát trin thêm mã.  
Tuy nhiên, đối vi mt snhà sn xut thiết bphn cng, mi loi hệ điu  
hành có chun riêng ca nó cho giao din trình điu khin thiết b. Mt thiết bị được  
cho có thmang nhiu trình điu khin-thí d, trình điu khin cho MS-DOS,  
Windows 95/98, Windows NT/2000 và Solaris. Các thiết bkhác nhau trong nhiu  
hướng như được hin thtrong hình XI-4.  
Hình 0-4 Các đặc đim ca các thiết bnhp/xut  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 246  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
Dòng ký thay khi: các thiết bdòng ký tchuyn tng byte mt,  
ngược li mt thiết bkhi chuyn đơn vlà khi byte.  
Truy xut tun tvà ngu nhiên: thiết btun tchuyn dliu theo  
mt thtcố định được định nghĩa bi thiết b, ngược li người dùng  
ca mt thiết btruy xut ngu nhiên có thchdn thiết bị để tìm bt  
cvtrí lưu trdliu sn có.  
Đồng bvà bt đng b: mt thiết bị đồng blà mt thiết bthc hin  
vic chuyn dliu vi sln đáp ng có thể đoán trước. Mt thiết bị  
bt đng bhin thsln đáp ng không đều đặn hay không thể đoán  
trước.  
Có thchia shay tn hiến: mt thiết bcó thchia sẻ được dùng đng  
hành bi nhiu quá trình hay lung; mt thiết btn hiến thì không th.  
Tc độ thao tác: tc độ thiết btri dài tmt vài byte trên giây ti mt  
vài gigabyte trên giây.  
Đọc-viết, chỉ đọc, hay chviết: mt sthiết bthc hin chai nhp,  
xut, nhưng mt sthiết bkhác htrchmt hướng dliu  
VI Hthng con nhp/xut ca nhân (kernel I/O  
subsytem)  
Nhân cung cp nhiu dch vliên quan đến nhp/xut. Mt vài dch v-định  
thi biu, vùng đệm (buffering), vùng lưu tr(cache), đặt trước thiết b, qun lý li-  
được cung cp bi hthng con nhp/xut ca nhân và xây dng trên phn cng và  
cơ shtng trình điu khin thiết b.  
VI.1 Định thi biu nhp/xut  
Đnh thi biu cho tp hp các yêu cu nhp xut có nghĩa là xác định mt thứ  
ttt để thc thi chúng. Thtcác ng dng phát ra li gi hthng rt hiếm khi là  
mt chn la tt nht. Đnh thi biu có thci tiến năng toàn blc hthng, có thể  
chia struy xut thiết bị đồng đều gia các quá trình và có thgim thi gian chờ đợi  
trung bình cho nhp/xut hoàn thành. .  
Người phát trin hệ điu hành cài đặt bộ định thi biu bng cách duy trì mt  
hàng đợi cho mi thiết b. Khi mt ng dng phát ra mt li gi hthng nhp/xut  
nghn, yêu cu được đặt vào hàng đợi cho thiết bị đó. Bộ định thi biu nhp/xut sp  
xếp li thtca hàng đợi để ci tiến toàn btính hiu quhthng và thi gian đáp  
ng trung bình da theo kinh nghim bi ng dng. Hệ điu hành cũng cgng giữ  
bình đẳng để mà không ng dng nào nhn được dch vnghèo nàn hay nó cho dch  
vụ ưu tiên đối vi các yêu cu trì hoãn nhy cm. Thí d, các yêu cu ththng con  
bnhớ ảo có thly độ ưu tiên qua các yêu cu ca ng dng.  
Mt cách mà hthng con nhp/xut ci tiến tính hiu quca máy tính là bng  
cách định thi biu các hot đng nhp/xut. Mt cách khác là dùng không gian lưu  
trtrong bnhchính hay trên đĩa, vi các kthut được gi là vùng đệm, vùng lưu  
trvà vùng cha.  
VI.2 Vùng đệm  
Vùng đệm là mt vùng bnhlưu trdliu trong khi chúng được chuyn gia  
hai thiết bhay gia thiết bng dng. Vùng đệm được thc hin vi 3 lý do.  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 247  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
Lý do thnht là đối phó vi vic không tương thích vtc độ gia người sn  
xut và người tiêu dùng ca dòng dliu.  
Lý do thhai cho vic sdng vùng là làm thích ng gia các thiết bcó kích  
thước truyn dliu khác nhau.  
Lý do thba cho vic dùng vùng đệm là htrngnghĩa sao chép cho  
nhp/xut ng dng.  
VI.3 Vùng lưu trữ  
Vùng lưu tr(cache) là mt vùng bnhnhanh qun lý các bn sao dliu.  
Truy xut ti mt bn sao được lưu trhiu quhơn truy xut ti bn gc. Thí d, các  
chthca quá trình hin đang chy được lưu trên đĩa, được lưu trtrong bnhvt  
lý và được sao chép mt ln na trong vùng lưu trphvà chính. Skhác nhau gia  
vùng đệm là vùng lưu trlà vùng đệm có thgichbn sao ca thành phn dliu  
đã có, ngược li mt vùng lưu trgiva đủ mt bn sao trên thiết blưu trnhanh  
hơn ca mt thành phn nm mt nơi nào khác.Vùng lưu trvà vùng đệm có chc  
năng khác nhau nhưng đôi khi mt vùng bnhcó thể được dùng cho chai mc  
đích.  
VI.4 Vùng cha và đặt trước thiết bị  
Mt vùng cha (spool) là mt vùng đệm gidliu xut cho mt thiết bnhư  
máy in mà không thchp nhn các dòng dliu đan xen nhau. Mc dù mt máy in  
có thphc vchmt công vic ti mt thi đim, nhưng nhiu ng dng mun in  
đng thi mà không có dliu xut ca chúng đan xen vi nhau. Hệ điu hành gii  
quyết vn đề này bng cách ngăn chn tt cdliu xut ti máy in. Dliu xut ca  
mi ng dng được cha trong mt tp tin riêng. Khi mt ng dng kết thúc vic in,  
hthng vùng cha xếp tp tin cha tương ng cho dliu xut ti máy in. Hthng  
vùng cha chép các tp tin được xếp hàng ti máy in mt tp tin ti mt thi đim.  
Trong mt hệ điu hành, vùng cha được qun lý bi mt quá trình hthng chy ở  
chế độ nn. Trong mt shệ điu hành khác, nó được qun lý bi lung nhân. Trong  
mi trường hp, hệ điu hành cung cp mt giao din điu khin cho phép người  
dùng và người qun trhthng hin thhàng đợi để xóa các công vic không mong  
mun trước khi các công vic đó in, để tm dng vic in trong khi máy in được phc  
v,..  
VI.5 Qun lý li  
Mt hệ điu hành sdng bnhbo vcó thchng li nhiu li phn cng  
ng dng vì thế mt li toàn hthng không là kết quca mi strc trc cơ hc  
thyếu. Các thiết bvà truyn nhp/xut có thbli trong nhiu cách, có thlà các  
lý do tm thi như mng trnên quá ti, hay các lý do thường xuyên như trình điu  
khin đĩa bli. Các hệ điu hành thường trgiá cho tính hiu quvì các li tm thi.  
Thí d, li đọc đĩa read() dn đến cgng làm li read() li gi dliu trên  
mng send() dn ti vic gi li resend() nếu giao thc được xác định rõ. Tuy nhiên,  
nếu mt thành phn quan trng bli thường xuyên thì hệ điu hành không nghĩ đến  
vic phc hi.  
Như mt qui tc thông thường, mt li gi hthng nhp/xut trv1 bit ca  
thông tin vtrng thái ca li gi, biu ththành công hay tht bi. Trong hệ điu  
hành UNIX, mt biến nguyên có tên errno được dùng để trvmt mã li- mt trong  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 248  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
100 giá tr-hin thtính tnhiên ca li (thí d: đối svượt quá gii hn, li con tr,  
tp tin không thm,..). Ngược li, mt sphn cng cung cp thông tin li được mô  
tchi tiết mc dù nhiu hệ điu hành hin ti không được thiết kế để truyn đạt thông  
tin này ti ng dng.  
VI.6 Cu trúc dliu nhân  
Nhân cn githông tin trng thái vvic dùng các thành phn nhp/xut. Nó thc  
hin như thế thông qua mt dãy các cu trúc dliu trong nhân như bng tp tin đang  
m. Nhân dùng nhiu cu trúc tương tự để ghi vết các ni kết mng, giao tiếp thiết bị  
dng ký tvà các hot động nhp/xut khác.  
Tóm li, hthng con nhp/xut điu phi tp hp dch vmrng sn có đi vi  
ng dng và nhng phn khác ca nhân. Hthng con nhp/xut điu khin  
Qun lý không gian tên cho các tp tin và các thiết bị  
Điu khin truy xut ti các tp tin và các thiết bị  
Điu khin hot đng (thí d, mt modem không thtìm seek())  
Cp phát không gian hthng tp tin  
Cp phát thiết bị  
Vùng đệm, vùng lưu trvà vùng cha  
Đnh thi biu nhp/xut  
Điu khin trng thái thiết b, qun lý li, và phc hi li  
Cu hình và khi to trình điu khin thiết bị  
Cp cao hơn ca hthng con nhp/xut truy xut thiết bqua giao din đng nht  
được cung cp bi các trình điu khin thiết bị  
VIIChuyn nhp/xut ti hot động phn cng  
Phn trước chúng ta mô tvic bt tay gia mt trình điu khin thiết bvà bộ  
điu khin thiết b, nhưng chúng ta không gii thích cách hệ điu hành ni kết yêu cu  
ng dng ti tp hp dây mng hay mt sector đĩa xác định như thế nào. Chúng ta hãy  
xem xét mt thí dụ đọc mt tp tin từ đĩa. ng dng tham chiếu ti dliu bng tên  
tp tin. Trong mt đĩa, hthng tp tin ánh xttên tp tin thông qua các thư mc hệ  
thng tp tin để ly không gian cp phát ca tp tin.  
Các hệ điu hành hin đại đạt được khnăng linh hot cao tnhiu giai đon  
ca bng tra cu trong đường dn gia yêu cu và bộ điu khin thiết bvt lý. Các cơ  
chế truyn yêu cu gia ng dng và trình điu khin là phbiến. Do đó, chúng ta có  
thgii thiu các thiết bmi và trình điu khin vào máy tính mà không biên dch li  
nhân. Tht vy, mt shệ điu hành có khnăng np trình điu khin thiết btheo yêu  
cu. Ti thi đim khi đng, hthng đầu tiên thăm dò các bus phn cng để xác  
định thiết bnào hin din và sau đó hthng np các trình điu khin cn thiết ngay  
lp tc hay khi được yêu cu bi mt yêu cu nhp/xut đầu tiên.  
Bây gichúng ta mô tchu trình sng đin hình ca mt yêu cu đc bnghn,  
như trong hình XI-5. Hình này đề nghrng mt thao tác nhp/xut yêu cu nhiu  
bước và tiêu tn slượng ln chu kCPU.  
1) Mt quá trình phát ra mt li gi hthng read() ti bmô ttp tin đã được  
mtrước đó.  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 249  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
2) Mã li gi hthng trong nhân kim tra tính đúng đắn ca các tham s. Trong  
trường hp nhp, nếu dliu đã có sn trong vùng đệm thì dliu được trvề  
ti quá trình và yêu cu nhp/xut được hoàn thành.  
3) Ngược li, nhp/xut vt lý cn được thc hin để mà quá trình được xóa từ  
hàng đợi thc thi và được đặt vào hàng đợi chcho thiết b, và yêu cu  
nhp/xut được lp thi biu. Cui cùng, hcon nhp/xut gi yêu cu ti  
trình điu khin thiết b. Phthuc vào hệ điu hành, yêu cu được gi bng  
li gi thtc con hay bng thông đip trong nhân.  
4) Trình điu khin thiết bcp phát vùng đệm nhân để nhn dliu và lp thi  
biu nhp/xut. Cui cùng, trình điu khin gi lnh ti bộ điu khin thiết bị  
bng cách viết vào thanh ghi điu khin ca thiết b.  
5) Trình điu khin thiết bthao tác trên phn cng thiết bị để thc hin truyn  
dliu.  
6) Trình điu khin có ththăm dò trng thái và dliu hay thiết lp truyn  
DMA vào bnhnhân. Chúng ta tha nhn rng truyn được qun lý bi bộ  
điu khin DMA sinh ra mt ngt khi vic truyn hoàn thành.  
7) Bqun lý ngt tương ng nhn ngt bng bng vector ngt, lưu bt cdliu  
cn thiết, báo hiu trình điu khin thiết bvà trvtngt.  
8) Trình điu khin thiết bnhn tín hiu, xác định yêu cu nhp/xut hoàn thành,  
xác định trng thái yêu cu và báo hiu cho hcon nhp/xut nhân rng yêu  
cu đã hoàn thành.  
9) Nhân truyn dliu hay trvmã ti không gian địa chca quá trình được  
yêu cu và di chuyn quá trình thàng đợi chti hàng đợi sn sàng.  
10) Di chuyn quá trình ti hàng đợi sn sàng không làm nghn quá trình. Khi bộ  
định thi biu gán quá trình ti CPU, quá trình tiếp tc thc thi ti thi đim  
hoàn thành ca li gi hthng.  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 250  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
Hình 0-5 Chu trình sng ca yêu cu nhp/xut  
VIIINăng lc  
Nhp/xut là mt yếu tquan trng trong năng lc hthng. Nó đặt nhiu yêu  
cu trên CPU để thc thi mã trình điu khin thiết bđịnh thi biu quá trình công  
bng và hiu qukhi các quá trình này nghn và không nghn. Chuyn đi ngcnh  
chú trng đến CPU và vùng lưu trphn cng. Nhp/xut cũng hin thtính không  
hiu qutrong các cơ chế qun lý ngt trong nhân, và nhp/xut ti xung bus bnhớ  
trong sut thi gian chép gia vùng đệm nhân và không gian dliu ng dng. Chép  
mt cách hp lý tt cyêu cu này là mt trong nhng quan tâm chính ca kiến trúc  
máy tính.  
Mc dù các máy tính hin đại có thqun lý hàng ngàn ngt trên giây, qun lý  
ngt là mt tác vtương đi đắt: mi ngt gây cho hthng thc hin mt thay đi  
trng thái, để thc thi bqun lý ngt và sau đó phc hi trng thái. Nhp/xut được  
lp trình có thhiu quhơn nhp/xut hướng ngt (interrupt-driven I/O) nếu schu  
ktiêu tn cho vic chờ đợi bn là không quá mc. Hoàn thành mt thao tác  
nhp/xut không nghn mt quá trình dn đến toàn bchi phí ca vic chuyn đi  
ngcnh.  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 251  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
Chúng ta có thtn dng nhiu nguyên tc để ci tiến tính hiu quca  
nhp/xut:  
Ct gim slượng chuyn ngcnh  
Ct gim sln dliu phi được chép vào bnhtrong khi truyn gia thiết  
bng dng.  
Ct gim tn sxut hin ngt bng cách dùng struyn ln, bộ điu khin  
thông tin và vùng cha (nếu chờ đợi bn có thlà nhnht).  
Gia tăng tính đng hành dùng các bộ điu khin tri thc DMA (DMA-  
knowledgeable controllers) hay các kênh để gim gánh nng chép dliu đơn  
gin tCPU.  
Di chuyn các hàm xcơ bn vào phn cng, để cho phép hat đng ca  
chúng trong các bộ điu khin thiết bị đồng hành vi các thao tác CPU và bus.  
Cân bng CPU, hcon bnh, bus và năng lc nhp/xut vì quá ti trong mt  
vùng bt ksgây rnh ri trong vùng khác.  
Ở đây các chc năng nhp/xut nên được cài đặt-trong phn cng thiết b, trong  
trình điu khin thiết bhay trong phn mm ng dng? Chúng ta quan sát tiến trình  
được mô ttrong hình XI-6.  
Hình 0-6 Tiến trình mô tchc năng thiết bị  
Khi đầu, chúng ta cài đặt gii thut nhp/xut thnghim ti cp ng dng vì  
ng dng là linh hat và nhng li ng dng là không chc gây ra ssp  
đổ hthng. Ngoài ra, bng phát trin mã ti cp ng dng, chúng ta tránh yêu  
cu khi động hay np li trình điu khin thiết bsau mi thay đi ti mã.  
Tuy nhiên, cài đặt cp ng dng có thkhông đủ vì chi phí chuyn ngcnh  
và vì ng dng không thly li đim ca nhng cu trúc dliu nhân bên  
trong và chc năng nhân (như truyn thông đip hu hiu trong nhân, lung và  
khóa).  
Khi mt gii thut cp ng dng chng minh tính giá trca nó, chúng ta có  
thcài đặt li nó trong nhân. Điu này có thci tiến năng lc nhưng nlc  
phát trin có ththách nhiu hơn vì nhân hệ điu hành ln, phn mm hệ  
thng phc tp. Ngoài ra, vic cài đặt trong nhân phi được gri toàn bộ để  
tránh hư hng dliu và sp đổ hthng.  
Năng lc cao nht có thể đạt được bi cài đặt chuyên dng trong phn cng,  
trong thiết bhay trong bộ điu khin. Sbt li ca vic cài đặt phn cng  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 252  
Đại Hc Cn Thơ - Khoa Công NghThông Tin - Giáo Trình Hệ Điu Hành – V1.0  
gm khó khăn và chi phí ca vic to nhng ci tiến xa hơn hay sa li, thi  
gian phát trin tăng (tháng hơn là ngày) và khnăng linh hot gim.  
IX Tóm tt  
Các thành phn phn cng cơ bn được np vào nhp/xut là các bus, các bộ  
điu khin thiết b, và chính các thiết b. Công vic chuyn dliu gia thiết bvà bộ  
nhchính được thc hin bi CPU khi nhp/xut được lp trình, hay được chuyn ti  
ti bộ điu khin DMA. Module nhân điu khin mt thiết blà mt trình điu khin  
thiết b. Giao din li gi hthng cung cp ti ng dng được thiết kế để qun lý  
nhiu chng loi cơ bn ca phn cng, sockets mng và bộ đếm thi gian đến được  
lp trình.  
Hcon nhp/xut ca nhân cung cp nhiu dch v. Các dch vnày là định  
thi biu nhp/xut, vùng đệm, vùng cha, qun lý li và đặt trước thiết b. Mt dch  
vkhác là dch tên, để to ni kết gia các thiết bphn cng và tên tp tin tượng  
trưng được dùng bi ng dng. Nó liên quan nhiu cp ánh xmà dch ttên chui  
ký tti mt trình điu khin thiết bxác định và địa chthiết bvà sau đó ti địa chỉ  
vt lý ca cng nhp/xut hay bộ điu khin bus  
Các li gi hthng nhp/xut tính chi phí theo thut ngtiêu tn CPU vì  
nhiu lp phn mm gia thiết bvt lý và ng dng. Các lp này ngý chi phí  
chuyn ngcnh để đi qua phm vi bo vca nhân, ca tín hiu và bqun lý ngt  
để phc vcác thiết bnhp/xut, và ca ti trên CPU và hthng bnhớ để chép dữ  
liu gia vùng đệm nhân và không gian ng dng.  
Biên son: Th.s Nguyn Phú Trường - 09/2005  
Trang 253  
pdf 12 trang Thùy Anh 27/04/2022 5760
Bạn đang xem tài liệu "Giáo trình Hệ điều hành - Chương 11: Quản lý hệ thống nhập/xuất - Nguyễn Phú Trường", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_he_dieu_hanh_chuong_11_quan_ly_he_thong_nhapxuat.pdf
  • htmBai11.htm
  • rarBai11.rar