11.chap11 io system

375 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
375
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

11.chap11 io system

  1. 1. CHÖÔNG 11: HEÄ THOÁNG NHAÄP/ XUAÁT (I/O SYSTEMS) <ul><li>Giôùi thieäu heä thoáng nhaäp/xuaát </li></ul><ul><li>Phaân loaïi thieát bò I/O </li></ul><ul><li>Caùc phöông phaùp truy caäp I/O </li></ul><ul><ul><li>Polling </li></ul></ul><ul><ul><li>Duøng interrupt </li></ul></ul><ul><ul><li>Duøng DMA </li></ul></ul><ul><li>Caùc dòch vuï I/O cuûa heä ñieàu haønh </li></ul><ul><li>Caùc chöùc naêng quaûn lyù I/O </li></ul><ul><li>Naâng cao hieäu suaát cuûa heä thoáng I/O </li></ul>
  2. 2. GIÔÙI THIEÄU HEÄ THOÁNG NHAÄP XUAÁT <ul><li>Hoã trôï giao tieáp giöõa ngöôøi duøng –heä thoáng vaø giöõa caùc heä thoáng vôùi nhau </li></ul><ul><li>Thieát bò phaàn cöùng phuïc vuï I/O ( I/O Hardware ) </li></ul><ul><ul><li>Device </li></ul></ul><ul><ul><li>Bus </li></ul></ul><ul><ul><li>Controller </li></ul></ul><ul><ul><li>Port: status, control, data in, data out </li></ul></ul><ul><li>Caùc phaàn meàm phuïc vuï I/O ( I/O Software ) </li></ul>
  3. 3. KEÁT NOÁI CAÙC THIEÁT BÒ I/O TREÂN PC
  4. 4. TIEÂU CHUAÅN PHAÂN LOAÏI CAÙC THIEÁT BÒ I/O <ul><li>Thieát bò khoái (block device) </li></ul><ul><ul><li>Coù khaû naêng ñònh ñòa chæ tröïc tieáp </li></ul></ul><ul><ul><li>Khoâng ñònh ñòa chæ tröïc tieáp </li></ul></ul><ul><li>Thieát bò theo kyù töï (character-stream device) </li></ul><ul><li>Thieát bò truy xuaát tuaàn töï / ngaãu nhieân </li></ul><ul><li>Thieát bò truy xuaát ñoàng boä/ baát ñoàng boä </li></ul><ul><li>Thieát bò chia xeû ñöôïc hay thieát bò daønh rieâng </li></ul><ul><li>Toác ñoä cuûa thieát bò : nhanh, chaäm </li></ul><ul><li>Cheá ñoä truy caäp thieùt bò: </li></ul><ul><ul><li>Thieát bò chæ ñoïc, chæ ghi, ñoïc / ghi </li></ul></ul>
  5. 5. TRUY CAÄP I/O BAÈÈNG PHÖÔNG PHAÙP POLLING <ul><li>Hieän thöïc: </li></ul><ul><ul><li>Traïng thaùi thieát bò: busy, error hay command-ready </li></ul></ul><ul><ul><li>Khi thieát bò raûnh, CPU ra leänh truy caäp I/O </li></ul></ul><ul><ul><li>Controller ñoïc leänh vaø thöïc thi taùc vuï. </li></ul></ul><ul><ul><li>Khi thöïc thi xong, controller ñaët laïi traïng thaùi cuûa thieát bò: idle hoaëc error. </li></ul></ul><ul><ul><li>CPU lieân tuïc kieåm tra traïng thaùi thieát bò ñeå ñoïc, ghi döõ lieäu neáu caàn thieát </li></ul></ul><ul><li>Nhaän xeùt </li></ul>
  6. 6. TRUY CAÄP I/O BAÈÈNG CAÙCH SÖÛ DUÏNG NGAÉT QUAÕNG <ul><li>Thieát bò I/O taïo ngaét quaõng khi hoaøn taát taùc vuï </li></ul><ul><li>Khi coù ngaét quaõng </li></ul><ul><ul><li>Trình xöû lyù ngaét quaõng nhaän interrupt </li></ul></ul><ul><ul><li>Xaùc ñònh thieát bò gaây ngaét quaõng </li></ul></ul><ul><ul><li>Laáy döõ lieäu töø device register (leänh tröôùc laø leänh ñoïc) </li></ul></ul><ul><ul><li>Khôûi ñoäng leänh tieáp theo cho thieát bò ñoù </li></ul></ul><ul><li>Xöû lyù ngaét quaõng theo ñoä öu tieân, coù theå hoaõn hoaëc huûy moät soá ngaét quaõng </li></ul><ul><li>Ngaét quaõng cuõng ñöôïc duøng khi xaûy ra bieán coá </li></ul><ul><li>Nhaän xeùt? </li></ul>
  7. 7. CHU KYØ NGAÉT QUAÕNG CUÛA I/O
  8. 8. DIRECT MEMORY ACCESS - DMA <ul><li>Cho pheùp thieát bò I/O trao ñoåi döõ lieäu tröïc tieáp vôùi boä nhôù khoâng caàn thoâng qua CPU </li></ul>Hình veõ: Caùc böôùc truy xuaát ñóa cöùng duøng DMA
  9. 9. CAÙC PHAÀN MEÀM PHUÏC VUÏ I/O ( I/O SOFTWARE ) <ul><li>Caùc trình xöû lyù ngaét quaõng </li></ul><ul><li>( Interrupt Service Routines ) </li></ul><ul><li>Caùc trình ñieàu khieån thieát bò </li></ul><ul><li>( Device Drivers ) </li></ul><ul><li>Caùc dòch vuï cuûa heä ñieàu haønh </li></ul><ul><li>Thö vieän laäp trình vaø caùc chöông trình khaùc </li></ul>
  10. 10. CAÙC DÒCH VUÏ I/O DO HEÄ ÑIEÀU HAØNH CUNG CAÁP <ul><li>Ñaët teân thieát bò </li></ul><ul><li>Caùc taùc vuï xöû lyù </li></ul><ul><li>Ñieàu khieån truy caäp </li></ul><ul><li>Caáp phaùt thieát bò </li></ul><ul><li>Ñònh thôøi cho caùc thieát bò I/O </li></ul><ul><li>Caùc kyõ thuaït bufffer, cache, spool </li></ul><ul><li>Xöû lyù vaø phuïc hoài loãi </li></ul>
  11. 11. GIAO TIEÁP I/O BLOCKING & NONBLOCKING <ul><li>Blocking – Quaù trình goïi seõ treo ñeán khi giao tieáp I/O xong </li></ul><ul><ul><li>Deã hieåu, deã söû duïng </li></ul></ul><ul><ul><li>Khoâng hieäu quaû trong moät soá tröôøng hôïp </li></ul></ul><ul><li>Nonblocking – Haøm I/O return ngay khi coù theå </li></ul><ul><ul><li>Hieän thöïc baèng kyõ thuaät multi-threading </li></ul></ul><ul><ul><li>Traû veà ngay soá byte ñöôïc ñoïc hoaëc ghi </li></ul></ul><ul><li>Asynchronous – Quaù trình tieáp tuïc chaïy khi ñang giao tieáp vôùi I/O </li></ul><ul><ul><li>Khoù duøng </li></ul></ul><ul><ul><li>I/O subsystem baùo hieäu cho quaù trình khi hoaøn thaønh taùc vuï I/O. </li></ul></ul>
  12. 12. CAÙC CHÖÙC NAÊNG QUAÛN LYÙ I/O <ul><li>Do module quaûn lyù I/O cuûa heä ñieàu haønh (Kernel I/O Subsystem) ñaûm nhaän </li></ul><ul><li>Caùc chöùc naêng chính </li></ul><ul><ul><li>Ñònh thôøi I/O ( I/O scheduling) </li></ul></ul><ul><ul><li>Daønh rieâng thieát bò (device reservation) </li></ul></ul><ul><ul><li>Xöû lyù loãi (error handling) </li></ul></ul><ul><ul><li>Buffering </li></ul></ul><ul><ul><li>Caching </li></ul></ul><ul><ul><li>Spooling </li></ul></ul>
  13. 13. BUFFERING <ul><li>Löu döõ lieäu trong boä nhôù thay vì chuyeån tröïc tieáp döõ lieäu giöõa caùc thieát bò </li></ul><ul><li>Coù theå ñöôïc hieän thöïc ôû </li></ul><ul><ul><li>Caáp phaàn cöùng </li></ul></ul><ul><ul><li>Caáp heä ñieàu haønh </li></ul></ul><ul><li>Muïc ñích </li></ul><ul><ul><li>Xöû lyù vaán ñeà toác ñoä caùc thieát bò khaùc nhau </li></ul></ul><ul><ul><li>Xöû lyù vaán ñeà kích thöôùc khoái döõ lieäu trao ñoåi giöõa caùc thieát bò khaùc nhau </li></ul></ul><ul><ul><li>Giaûm thieåu thôøi gian quaù trình bò chaën khi ghi döõ lieäu </li></ul></ul>
  14. 14. CACHING & SPOOLING <ul><li>Caching </li></ul><ul><ul><li>Duøng vuøng nhôù toác ñoä cao ñeå löu baûn sao cuûa döõ lieäu thöôøng xuyeân truy xuaát </li></ul></ul><ul><ul><li>Ñaûm baûo tính nhaát quaùn cuûa cache: </li></ul></ul><ul><ul><ul><li>Kyõ thuaät write through </li></ul></ul></ul><ul><ul><ul><li>Kyõ thuaät write back </li></ul></ul></ul><ul><li>Spooling ( Simultaneous Peripheral Operation On-line ) </li></ul><ul><ul><li>Duøng thieát bò löu tröõ toác ñoä trung bình laøm trung gian giao tieáp giöõa 2 thieát bò coù toác ñoä cheânh leäch nhau </li></ul></ul><ul><ul><li>Ví duï : dòch vuï in aán </li></ul></ul>
  15. 15. CHU KYØ I/O
  16. 16. TAÊNG HIEÄU SUAÁT HEÄ THOÁNG I/O <ul><li>Giaûm thieåu copy döõ lieäu (caching) </li></ul><ul><li>Giaûm taàn soá interrupt (duøng kích thöôùc khoái döõ lieäu truyeàn nhaän lôùn, smart controller…) </li></ul><ul><li>Giaûm taûi cho CPU baèng DMA </li></ul><ul><li>Taêng soá löôïng thieát bò ñeå traùnh tranh chaáp </li></ul><ul><li>Taêng dung löôïng boä nhôù thöïc </li></ul><ul><li>Caân baèêng hieäu suaát CPU, boä nhôù, bus vaø thieát bò I/O ñeå ñaït throughput cao nhaát </li></ul><ul><li>… </li></ul>

×