11.chap11 io system

16
-1- Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM CHÖÔNG 11: HEÄ THOÁNG NHAÄP/ XUAÁT (I/O SYSTEMS) Giôùi thieäu heä thoáng nhaäp/xuaát Phaân loaïi thieát bò I/O Caùc phöông phaùp truy caäp I/O Polling Duøng interrupt Duøng DMA Caùc dòch vuï I/O cuûa heä ñieàu haønh Caùc chöùc naêng quaûn lyù I/O Naâng cao hieäu suaát cuûa heä thoáng I/O

Transcript of 11.chap11 io system

-1-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

CHÖÔNG 11: HEÄ THOÁNG NHAÄP/ XUAÁT

(I/O SYSTEMS)

Giôùi thieäu heä thoáng nhaäp/xuaát Phaân loaïi thieát bò I/O Caùc phöông phaùp truy caäp I/O

PollingDuøng interruptDuøng DMA

Caùc dòch vuï I/O cuûa heä ñieàu haønh Caùc chöùc naêng quaûn lyù I/O Naâng cao hieäu suaát cuûa heä thoáng

I/O

-2-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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)

-3-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

KEÁT NOÁI CAÙC THIEÁT BÒ I/O TREÂN PC

-4-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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

-5-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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átNhaän xeùt

-6-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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?

-7-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

CHU KYØ NGAÉT QUAÕNG CUÛA I/O

-8-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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

-9-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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ønhThö vieän laäp trình vaø caùc

chöông trình khaùc

-10-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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

-11-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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.

-12-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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

-13-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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

-14-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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

-15-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

CHU KYØ I/O

-16-Baøi giaûng moân heä ñieàu haønh Vuõ Leâ Huøng Khoa CNTT – ÑHBK TP. HCM

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 DMATaêng soá löôïng thieát bò ñeå traùnh tranh

chaápTaêng dung löôïng boä nhôù thöïcCaân baèêng hieäu suaát CPU, boä nhôù, bus

vaø thieát bò I/O ñeå ñaït throughput cao nhaát