Bài giảng Hệ điều hành - Chương 9: I/O System - Thoại Nam

09. I/O System  
‰ Thieát bò phaàn cöùng I/O  
‰ Giao dieän I/O caáp öùng duïng  
‰ Caùc dòch vuï cuûa OS  
‰ Hieäu suaát I/O  
-XIII.1-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Thieát bò phaàn cöùng I/O  
‰ Caùc thieát bò I/O raát nhieàu, ña chuûng loaïi, khaùc bieät veà  
nhieàu maët (hình daùng, kích thöôùc, chöùc naêng, toác ñoä,…)  
⇒ caàn coù caùc phöông thöùc quaûn lyù, ñieàu khieån töông  
öùng khaùc nhau. Caùc phöông thöùc naøy taïo neân lôùp I/O  
subsystem cuûa kernel.  
‰ Ñieåm “hoäi tuï” chung cho caùc thieát bò I/O  
– Port  
– Controller (device controller, SCSI host adapter)  
‰ Cô cheá giao tieáp giöõa CPU vaø thieát bò I/O  
– Duøng leänh I/O ñeå taùc ñoäng tröïc tieáp leân caùc thanh ghi (döõ  
lieäu, traïng thaùi, leänh) cuûa controller.  
– Memory-mapped I/O  
-XIII.2-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
1
Caáu truùc Bus trong PC  
-XIII.3-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Moät soá “port” trong PC  
-XIII.4-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
2
Caùc cô cheá thöïc hieän I/O  
‰ Cô cheá polling (busy-waiting)  
– Kieåm tra traïng thaùi cuûa thieát bò khi muoán thöïc hieän I/O  
ƒ Ready hoaëc Busy hoaëc Error  
– Tieâu toán thôøi gian laëp quay voøng ñeå kieåm tra traïng thaùi  
(busy-wait) vaø thöïc hieän I/O.  
‰ Cô cheá ngaét quaõng (interrupt)  
– CPU coù moät ngoõ Interrupt Request (IR), ñöôïc kích hoaït bôûi  
thieát bò I/O.  
– Neáu coù ngaét xaûy ra (IR = active) ⇒ chuyeån quyeàn ñieàu  
khieån cho trình ñieàu khieån ngaét (interrupt handler)  
– Caùc ngaét coù theå bò che (maskable) hoaëc khoâng bò che  
(non-maskable)  
– Heä thoáng coù moät baûng vector ngaét chöùa ñòa chæ caùc trình  
phuïc vuï ngaét (interrupt routine).  
– Cô cheá ngaét cuõng coù theå duøng xöû lyù caùc söï kieän khaùc  
trong heä thoáng (loãi chia cho 0, loãi vi phaïm vuøng nhôù,...)  
-XIII.5-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Chu kyø I/O vôùi ngaét quaõng  
-XIII.6-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
3
Baûng vector ngaét treân Pentium  
-XIII.7-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Caùc cô cheá I/O (t.t)  
‰ Cô cheá DMA (Direct Memory Access)  
– Caùc cô cheá polling vaø interrupt, goïi chung laø  
programmed I/O, khoâng thích hôïp khi thöïc hieän di  
chuyeån khoái löôïng lôùn döõ lieäu.  
– Cô cheá DMA caàn coù phaàn cöùng hoã trôï ñaëc bieät, ñoù laø  
– Cô cheá DMA thöïc hieän truyeàn döõ lieäu tröïc tieáp giöõa  
thieát bò I/O vaø boä nhôù maø khoâng caàn söï can thieäp cuûa  
CPU.  
-XIII.8-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
4
6 böôùc thöïc hieän DMA  
-XIII.9-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Giao dieän I/O caáp öùng duïng  
‰ Muïc tieâu: OS cung caáp moät giao dieän I/O chuaån hoùa,  
thuaàn nhaát cho caùc öùng duïng.  
– Ví duï: moät öùng duïng in taøi lieäu ra maùy in maø khoâng caàn  
bieát hieäu maùy in, ñaëc tính maùy in,...  
‰ Giao dieän laøm vieäc ñoù laø caùc I/O system call cuûa OS.  
‰ Trình ñieàu khieån thieát bò (device driver) seõ laø caàu noái  
giöõa kernel vaø caùc boä ñieàu khieån thieát bò (device  
ctll
‰ Ñaëc tính cuûa thieát bò raát ña daïng  
– Character-stream vs. Block  
– Sequential vs.Random-Access  
– Sharable vs. Dedicated  
– Toác ñoä truy xuaát  
– Read-write, Read Only, Write-Only.  
-XIII.10-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
5
Caáu truùc I/O caáp kernel  
-XIII.11-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Ñaëc tính cuûa caùc thieát bò I/O  
-XIII.12-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
6
Caùc dòch vuï I/O  
‰ Giao dieän chuaån cho nhoùm thieát bò coù lieân quan  
– Thieát bò khoái (block device)  
ƒ Disk  
ƒ Caùc taùc vuï: read, write, seek  
– Thieát bò kí töï (character device)  
ƒ Keyboard, mouse, serial port, line printer,...  
ƒ Taùc vuï: get, put  
– Thieát bò maïng (network device)  
ƒ Block hoaëc character.  
ƒ Socket Interface treân Unix, Windows/NT,...  
– Clock vaø Timer  
ƒ Cung caáp thôøi gian hieän taïi, timer  
ƒ Coù theå laäp trình ñöôïc.  
-XIII.13-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Caùc kieåu truy xuaát I/O  
‰ Blocking - process bò suspended cho ñeán khi  
I/O hoaøn taát.  
– Deã daøng söû duïng.  
– Khoâng hieäu quaû trong moät soá tröôøng hôïp.  
‰ Non-blocking – process seõ tieáp tuïc thöïc thi  
ngay sau leänh goïi I/O.  
– Thöôøng hieän thöïc vôùi multi-threading.  
– Khoù kieåm soaùt keát quaû thöïc hieän I/O.  
‰ Asynchronous – process vaãn thöïc thi trong luùc  
heä thoáng ñang thöïc hieän I/O.  
– Khoù söû duïng.  
– I/O subsystem baùo hieäu cho process khi I/O hoaøn taát.  
-XIII.14-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
7
Boä phaän I/O subsystem ôû kernel  
‰ Ñònh thôøi caùc yeâu caàu I/O  
– Caùc yeâu caàu I/O xeáp haøng taïi caùc haønh ñôïi cuûa moãi thieát bò  
– Baûo ñaûm coâng baèng, hieäu suaát cao.  
‰ Ñeäm döõ lieäu (buffering) – löu döõ lieäu taïm thôøi trong boä  
nhôù khi thöïc hieän I/O  
– Giaûi quyeát tröôøng hôïp cheânh leäch toác ñoä, kích thöôùc döõ  
lieäu khi thöïc hieän I/O  
‰ Caching  
‰ Spooling  
‰ Xöû lyù loãi (error handling)  
– OS can recover from disk read, device unavailable,  
transient write failures  
– Most return an error number or code when I/O request fails  
– System error logs hold problem reports  
-XIII.15-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Chu kyø cuûa moät yeâu caàu I/O  
-XIII.16-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
8
Hieäu suaát thöïc hieän I/O  
‰ Hieäu suaát I/O aûnh höôûng raát lôùn ñeán hieäu suaát  
toaøn heä thoáng. Toác ñoä I/O thöôøng raát chaäm.  
– Yeâu caàu CPU thöïc hieän caùc leänh ñieàu khieån cuûa device  
driver, cuûa kernel I/O code.  
– Chuyeån ngöõ caûnh vì caùc I/O interrupt, chi phí copy döõ lieäu  
göûi nhaän. Rieâng caùc thieát bò maïng thì phuï thuoäc vaøo baêng  
thoâng cuûa maïng maùy tính.  
‰ Taêng hieäu suaát thöïc hieän I/O  
– Giaûm soá laàn chuyeån ngöõ caûnh, giaûm thieåu quaù trình copy  
döõ lieäu (baèng caching,...)  
– Giaûm soá laàn ngaét quaõng (truyeàn khoái döõ lieäu lôùn, duøng caùc  
boä controller thoâng minh, duøng cô cheá polling,...)  
– Söû duïng DMA neáu coù theå.  
-XIII.17-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
Ví duï giao tieáp qua maïng  
-XIII.18-  
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM  
9
pdf 9 trang yennguyen 14480 Free
Bạn đang xem tài liệu "Bài giảng Hệ điều hành - Chương 9: I/O System - Thoại Nam", để 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:

  • pdfbai_giang_he_dieu_hanh_chuong_9_io_system_thoai_nam.pdf