170 likes | 323 Views
CHÖÔNG 9: HEÄ THOÁNG NHAÄP/ XUAÁT (I/O SYSTEMS). GIÔÙI THIEÄU HEÄ THOÁNG NHAÄP XUAÁT. 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 Thieát bò phaàn cöùng phuïc vuï I/O ( I/O Hardware ) Device Bus Controller
E N D
CHÖÔNG 9: HEÄ THOÁNG NHAÄP/ XUAÁT (I/O SYSTEMS)
GIÔÙI THIEÄU HEÄ THOÁNG NHAÄP XUAÁT • 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 • Thieát bò phaàn cöùng phuïc vuï I/O (I/O Hardware) • Device • Bus • Controller • Port: status, control, data in, data out • Caùc phaàn meàm phuïc vuï I/O (I/O Software)
TIEÂU CHUAÅN PHAÂN LOAÏI CAÙC THIEÁT BÒ I/O • Thieát bò khoái (block device) • Coù khaû naêng ñònh ñòa chæ tröïc tieáp • Khoâng ñònh ñòa chæ tröïc tieáp • Thieát bò theo kyù töï (character-stream device) • Thieát bò truy xuaát tuaàn töï / ngaãu nhieân • Thieát bò truy xuaát ñoàng boä/ baát ñoàng boä • Thieát bò chia xeû ñöôïc hay thieát bò daønh rieâng • Toác ñoä cuûa thieát bò : nhanh, chaäm • Cheá ñoä truy caäp thieùt bò: • Thieát bò chæ ñoïc, chæ ghi, ñoïc / ghi
TRUY CAÄP I/O BAÈÈNG PHÖÔNG PHAÙP POLLING • Hieän thöïc: • Traïng thaùi thieát bò: busy, error hay command-ready • Khi thieát bò raûnh, CPU ra leänh truy caäp I/O • Controller ñoïc leänh vaø thöïc thi taùc vuï. • Khi thöïc thi xong, controller ñaët laïi traïng thaùi cuûa thieát bò: idle hoaëc error. • 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 • Nhaän xeùt
TRUY CAÄP I/O BAÈÈNG CAÙCH SÖÛ DUÏNG NGAÉT QUAÕNG • Thieát bò I/O taïo ngaét quaõng khi hoaøn taát taùc vuï • Khi coù ngaét quaõng • Trình xöû lyù ngaét quaõng nhaän interrupt • Xaùc ñònh thieát bò gaây ngaét quaõng • Laáy döõ lieäu töø device register (leänh tröôùc laø leänh ñoïc) • Khôûi ñoäng leänh tieáp theo cho thieát bò ñoù • 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 • Ngaét quaõng cuõng ñöôïc duøng khi xaûy ra bieán coá • Nhaän xeùt?
DIRECT MEMORY ACCESS - DMA • 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 Hình veõ: Caùc böôùc truy xuaát ñóa cöùng duøng DMA
CAÙC PHAÀN MEÀM PHUÏC VUÏ I/O (I/O SOFTWARE) • Caùc trình xöû lyù ngaét quaõng (Interrupt Service Routines) • Caùc trình ñieàu khieån thieát bò (Device Drivers) • Caùc dòch vuï cuûa heä ñieàu haønh • Thö vieän laäp trình vaø caùc chöông trình khaùc
CAÙC DÒCH VUÏ I/O DO HEÄ ÑIEÀU HAØNH CUNG CAÁP • Ñaët teân thieát bò • Caùc taùc vuï xöû lyù • Ñieàu khieån truy caäp • Caáp phaùt thieát bò • Ñònh thôøi cho caùc thieát bò I/O • Caùc kyõ thuaït bufffer, cache, spool • Xöû lyù vaø phuïc hoài loãi
GIAO TIEÁP I/O BLOCKING & NONBLOCKING • Blocking – Quaù trình goïi seõ treo ñeán khi giao tieáp I/O xong • Deã hieåu, deã söû duïng • Khoâng hieäu quaû trong moät soá tröôøng hôïp • Nonblocking – Haøm I/O return ngay khi coù theå • Hieän thöïc baèng kyõ thuaät multi-threading • Traû veà ngay soá byte ñöôïc ñoïc hoaëc ghi • Asynchronous – Quaù trình tieáp tuïc chaïy khi ñang giao tieáp vôùi I/O • Khoù duøng • I/O subsystem baùo hieäu cho quaù trình khi hoaøn thaønh taùc vuï I/O.
CAÙC CHÖÙC NAÊNG QUAÛN LYÙ I/O • Do module quaûn lyù I/O cuûa heä ñieàu haønh (Kernel I/O Subsystem) ñaûm nhaän • Caùc chöùc naêng chính • Ñònh thôøi I/O ( I/O scheduling) • Daønh rieâng thieát bò (device reservation) • Xöû lyù loãi (error handling) • Buffering • Caching • Spooling
BUFFERING • 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ò • Coù theå ñöôïc hieän thöïc ôû • Caáp phaàn cöùng • Caáp heä ñieàu haønh • Muïc ñích • Xöû lyù vaán ñeà toác ñoä caùc thieát bò khaùc nhau • 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 • Giaûm thieåu thôøi gian quaù trình bò chaën khi ghi döõ lieäu
CACHING & SPOOLING • Caching • 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 • Ñaûm baûo tính nhaát quaùn cuûa cache: • Kyõ thuaät write through • Kyõ thuaät write back • Spooling (Simultaneous Peripheral Operation On-line) • 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 • Ví duï : dòch vuï in aán
TAÊNG HIEÄU SUAÁT HEÄ THOÁNG I/O • Giaûm thieåu copy döõ lieäu (caching) • 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…) • Giaûm taûi cho CPU baèng DMA • Taêng soá löôïng thieát bò ñeå traùnh tranh chaáp • Taêng dung löôïng boä nhôù thöïc • 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 • …
Mụctiêu • Giớithiệuvaitròcủaviệctổchứcdữliệutrongmộtđềántinhọc. • Mốiquanhệgiữagiảithuậtvàcấutrúcdữliệu. • Cácyêucầutổchứccấutrúcdữliệu • Kháiniệmkiểudữliệu_cấutrúcdữliệu • Tổngquanvềđánhgiáđộphứctạpgiảithuật