CHƯƠNG 9: HỆ THỐNG NHẬP/ XUẤT (I/O SYSTEMS)
GIỚI THIỆU HỆ THỐNG NHẬP GIỚI THIỆU HỆ THỐNG NHẬP XUẤTXUẤT HỗHỗ trợtrợ giaogiao tiếptiếp giữagiữa ngngưườiời dùngdùng ––hệhệ thống
thống vàvà giữagiữa cáccác hệhệ
cứng phục
phục vụvụ I/OI/O ((I/OI/O Hardware Hardware))
thống vớivới nhaunhau thống Thiết bịbị phầnphần cứng Thiết Device Device BusBus Controller Controller PortPort:: status,
status, control,
control, datadata in,in, datadata outout phục vụvụ I/OI/O ((I/OI/O Software Software))
CácCác phầnphần mềmmềm phục
2
KẾT NỐI CÁC THIẾT BỊ I/O TRÊN KẾT NỐI CÁC THIẾT BỊ I/O TRÊN PCPC
3
TIÊU CHUẨN PHÂN LOẠI TIÊU CHUẨN PHÂN LOẠI CÁC THIẾT BỊ I/O CÁC THIẾT BỊ I/O
ThiếtThiết bịbị khối
CóCó khảkhả nnăăngng đđịnhịnh đđịaịa chỉchỉ trựctrực tiếptiếp Không
khối (block device) (block device)
Không đđịnhịnh đđịaịa chỉchỉ trựctrực tiếptiếp
device) (character--streamstream device)
riêng thiết bịbị dànhdành riêng
ThiếtThiết bịbị theotheo kýký tựtự (character ThiếtThiết bịbị truytruy xuấtxuất tuầntuần tựtự // ngẫungẫu nhiên nhiên ThiếtThiết bịbị truytruy xuấtxuất đđồngồng bộ/bộ/ bấtbất đđồngồng bộbộ ThiếtThiết bịbị chiachia xẻxẻ đưđượcợc hayhay thiết TốcTốc đđộộ củacủa thiết ChếChế đđộộ truytruy cậpcập thiét
nhanh, chậmchậm
ThiếtThiết bịbị chỉchỉ đđọc,ọc, chỉchỉ ghi,ghi, đđọcọc // ghighi
thiết bịbị :: nhanh, thiét bịbị::
4
thiết bịbị:: busy,
busy, error
error hayhay command
ready command--ready
thái thiết thiết bịbị rảnh,
rảnh, CPUCPU rara lệnhlệnh truytruy cậpcập I/OI/O
Controller đđọcọc lệnhlệnh vàvà thực
thực thithi táctác vụvụ..
TRUY CẬP I/O BẰÈNG TRUY CẬP I/O BẰÈNG NG PHÁP POLLING PHPHƯƠƯƠNG PHÁP POLLING thực:: HiệnHiện thực Trạng Trạng thái KhiKhi thiết Controller KhiKhi thực
xong, controller
controller đđặtặt lạilại trạng
trạng thái
thái củacủa
thực thithi xong, error.. thiết bịbị:: idleidle hoặchoặc error thiết
CPUCPU liênliên tụctục kiểmkiểm tratra trạng
trạng thái
thái thiết
thiết bịbị đđểể đđọc,ọc, ghighi dữdữ
thiết liệuliệu nếunếu cầncần thiết
NhậnNhận xétxét
5
quãng khikhi hoànhoàn tấttất táctác vụvụ
TRUY CẬP I/O BẰÈNG TRUY CẬP I/O BẰÈNG CÁCH SỬ DỤNG NGẮT CÁCH SỬ DỤNG NGẮT QUÃNG QUÃNG ThiếtThiết bịbị I/OI/O tạotạo ngắtngắt quãng quãng KhiKhi cócó ngắtngắt quãng
TrìnhTrình xửxử lýlý ngắtngắt quãng quãng thiết bịbị gâygây ngắtngắt quãng XácXác đđịnhịnh thiết LấyLấy dữdữ liệuliệu từtừ device register (lệnh device register KhởiKhởi đđộngộng lệnhlệnh tiếptiếp theotheo chocho thiết
interrupt quãng nhậnnhận interrupt
(lệnh trtrưướcớc làlà lệnhlệnh đđọc)ọc) thiết bịbị đđóó
quãng theotheo đđộộ ưưuu tiên, tiên, cócó thểthể hoãnhoãn hoặchoặc hủyhủy mộtmột sốsố
XửXử lýlý ngắtngắt quãng quãng ngắtngắt quãng quãng cũngcũng đưđượcợc dùng NgắtNgắt quãng NhậnNhận xét?xét?
dùng khikhi xảyxảy rara biếnbiến cốcố
6
CHU KỲ NGẮT QUÃNG CỦA CHU KỲ NGẮT QUÃNG CỦA I/OI/O
7
DIRECT MEMORY ACCESS -- DMADMA DIRECT MEMORY ACCESS
thiết bịbị I/OI/O traotrao đđổiổi dữdữ liệuliệu trựctrực tiếptiếp vớivới bộbộ nhớnhớ không
không cầncần
ChoCho phépphép thiết thông quaqua CPUCPU thông
Hình vẽ: Các bước truy xuất đĩa cứng dùng DMA
8
CácCác trình
thiết bịbị
CÁC PHẦN MỀM PHỤC VỤ CÁC PHẦN MỀM PHỤC VỤ I/O SOFTWARE)) I/O (I/O SOFTWARE I/O ( quãng trình xửxử lýlý ngắtngắt quãng CácCác trình Routines)) Service Routines Interrupt Service ((Interrupt trình đđiềuiều khiển khiển thiết Drivers)) Device Drivers ((Device CácCác dịchdịch vụvụ củacủa hệhệ đđiềuiều hànhhành ThThưư việnviện lậplập trình
trình vàvà cáccác chchươươngng trình
trình kháckhác
9
CÁC DỊCH VỤ I/O CÁC DỊCH VỤ I/O DO HỆ ĐIỀU HÀNH CUNG CẤP DO HỆ ĐIỀU HÀNH CUNG CẤP
thiết bịbị
thiết bịbị I/OI/O
ĐặtĐặt têntên thiết CácCác táctác vụvụ xửxử lýlý ĐiềuĐiều khiển CấpCấp phátphát thiết ĐịnhĐịnh thời CácCác kỹkỹ thuạt XửXử lýlý vàvà phục
bufffer, cache, spool cache, spool
khiển truytruy cậpcập thiết bịbị thời chocho cáccác thiết thuạt bufffer, phục hồihồi lỗilỗi
10
Blocking
xong trình gọigọi sẽsẽ treotreo đđếnến khikhi giaogiao tiếptiếp I/OI/O xong
dụng hiểu, dễdễ sửsử dụng Không hiệuhiệu quảquả trong trong mộtmột sốsố trtrưườngờng hợphợp
return ngayngay khikhi cócó thểthể
threading thuật multimulti--threading thực bằngbằng kỹkỹ thuật
trình tiếptiếp tụctục chạychạy khikhi đđangang giaogiao tiếptiếp vớivới I/OI/O
GIAO TIẾP I/O BLOCKING & GIAO TIẾP I/O BLOCKING & NONBLOCKING NONBLOCKING Blocking –– QuáQuá trình DễDễ hiểu, Không Nonblocking Nonblocking –– HàmHàm I/OI/O return HiệnHiện thực TrảTrả vềvề ngayngay sốsố bytebyte đưđượcợc đđọcọc hoặchoặc ghighi Asynchronous –– QuáQuá trình Asynchronous dùng KhóKhó dùng subsystem báobáo hiệuhiệu chocho quáquá trình I/OI/O subsystem
trình khikhi hoànhoàn thành thành táctác vụvụ
I/OI/O..
11
(Kernel I/OI/O
CÁC CHỨC NĂNG QUẢN LÝ CÁC CHỨC NĂNG QUẢN LÝ module quảnquản lýlý I/OI/O củacủa hệhệ đđiềuiều hànhhành (Kernel DoDo module I/O I/O Subsystem) đđảmảm nhậnnhận Subsystem) chính chức nnăăngng chính
CácCác chức
scheduling) thời I/OI/O (( I/OI/O scheduling) ĐịnhĐịnh thời reservation) (device reservation) thiết bịbị (device riêng thiết DànhDành riêng handling) (error handling) XửXử lýlý lỗilỗi (error Buffering Buffering Caching Caching Spooling Spooling
12
BUFFERING BUFFERING
LLưưuu dữdữ liệuliệu trong
trong bộbộ nhớnhớ thaythay vìvì chuyển chuyển trựctrực tiếptiếp dữdữ liệuliệu giữagiữa cáccác
thiết bịbị thiết
CóCó thểthể đưđượcợc hiệnhiện thực cứng CấpCấp phầnphần cứng CấpCấp hệhệ đđiềuiều hànhhành
MụcMục đđíchích
thực ởở
XửXử lýlý vấnvấn đđềề tốctốc đđộộ cáccác thiết XửXử lýlý vấnvấn đđềề kíchkích ththưướcớc khối
thiết bịbị kháckhác nhaunhau
khối dữdữ liệuliệu traotrao đđổiổi giữagiữa cáccác thiết thiết bịbị
kháckhác nhaunhau GiảmGiảm thiểu thiểu thời thời giangian quáquá trình trình bịbị chặnchặn khikhi ghighi dữdữ liệuliệu
13
CACHING & SPOOLING CACHING & SPOOLING
Caching Caching DùngDùng vùng vùng nhớnhớ tốctốc đđộộ caocao đđểể llưưuu bảnbản saosao củacủa dữdữ liệuliệu ththưườngờng
xuyên truytruy xuấtxuất xuyên
Peripheral Operation
Spooling
Operation OnOn--lineline)) trung bìnhbình làmlàm trung
cache:: ĐảmĐảm bảobảo tínhtính nhấtnhất quánquán củacủa cache through thuật writewrite through thuật writewrite backback
trung giangian giaogiao tiếptiếp
KỹKỹ thuật KỹKỹ thuật Spooling ((Simultaneous DùngDùng thiết giữagiữa 22 thiết
Simultaneous Peripheral thiết bịbị llưưuu trữtrữ tốctốc đđộộ trung thiết bịbị cócó tốctốc đđộộ chênh
VíVí dụdụ :: dịchdịch vụvụ inin ấnấn
chênh lệchlệch nhaunhau
14
CHU KỲ I/O CHU KỲ I/O
15
thiểu copy
(caching) copy dữdữ liệuliệu (caching) interrupt (dùng
truyền (dùng kíchkích ththưướcớc khốikhối dữdữ liệuliệu truyền
TĂNG HIỆU SUẤT HỆ THỐNG TĂNG HIỆU SUẤT HỆ THỐNG I/OI/O GiảmGiảm thiểu GiảmGiảm tầntần sốsố interrupt lớn, smart
smart controller
nhậnnhận lớn,
tranh chấpchấp
nhớ, busbus vàvà thiết
thiết bịbị I/OI/O đđểể
controller……)) GiảmGiảm tảitải chocho CPUCPU bằngbằng DMADMA tránh tranh thiết bịbị đđểể tránh TTăăngng sốsố llưượngợng thiết thực dung llưượngợng bộbộ nhớnhớ thực TTăăngng dung suất CPU,CPU, bộbộ nhớ, bằêng hiệuhiệu suất CânCân bằêng throughput caocao nhấtnhất
đđạtạt throughput
……
16
MụcMục tiêutiêu
GiớiGiới thiệu
thiệu vaivai tròtrò củacủa việcviệc tổtổ chức chức dữdữ liệuliệu trong trong mộtmột
đềđề ánán tintin họchọc..
thuật vàvà cấucấu trúctrúc dữdữ liệuliệu..
MốiMối quanquan hệhệ giữagiữa giảigiải thuật CácCác yêuyêu cầucầu tổtổ chức KháiKhái niệmniệm kiểukiểu dữdữ liệuliệu__cấucấu trúctrúc dữdữ liệuliệu TổngTổng quanquan vềvề đánhđánh giágiá độđộ phức
chức cấucấu trúctrúc dữdữ liệuliệu
thuật phức tạptạp giảigiải thuật