Tải bản đầy đủ (.pdf) (36 trang)

Chương 2: Quản lý xuất nhập pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (454.08 KB, 36 trang )

1
Chương 2: Quảnlýxuấtnhập
 Nhiệmvụ củabộ phậnquảnlýxuấtnhập
 Các thiếtbị xuấtnhập
 Mô hình phân lớp trong quảnlýxuấtnhập
 Bộđiều khiểnthiếtbị (device controller)
 Trình điềukhiểnthiếtbị (device driver)
 Cơ chế DMA
 Quảnlýlỗivàbảovệ quá trình xuấtnhập
2
Nhiệmvụ
 Mụctiêucủabộ phậnquảnlýxuấtnhập
 Giớithiệulớptrừutượng và độclậpthiếtbị
 Che giấu các chi tiếtkỹ thuậtcủa các thiếtbị phầncứng.
 Quảnlývàsửalỗi.
 Làm cho các thiếtbị phầncứng đơngiảnvàdễ dùng.
 Cho phép chia sẻ các thiếtbị phầncứng
 Xây dựng các cơ chế bảovệ các thiếtbịđượcchiasẻ.
 Điềuphốithiếtbịđểphụcvụ cho cùng lúc nhiều nhu cầusử
dụng.
3
Ví dụ về các thiếtbị xuấtnhập
 Các thiếtbị giao tiếp:
 Các thiếtbị chỉ nhập: bànphím, chuột, joystick…
 Các thiếtbị chỉ xuất : màn hình, máy in
 Các thiếtbị vừanhậpvừaxuất: card mạng.
 Các thiếtbị lưutrữ
 Thiếtbị vừaxuất, vừanhập: đĩa(cứng/mềm), băng từ
 Thiếtbị chỉ xuất: CD-ROM.
4
Phân loạicácthiếtbị nhậpxuất


 Phân loạitheomục đích sử dụng:
 Các thiếtbị giao tiếp:
 Các thiếtbị chỉ nhập: bànphím, chuột, joystick…
 Các thiếtbị chỉ xuất : màn hình, máy in
 Các thiếtbị vừanhậpvừaxuất: card mạng.
 Các thiếtbị lưutrữ
 Thiếtbị vừaxuất, vừanhập: đĩa(cứng/mềm), băng từ
 Thiếtbị chỉ xuất: CD-ROM
 Phân loạitheophương pháp truy xuất:
 Thiếtbị khối:
 Tổ chứctheotừng khối riêng biệtvàtruyxuấtngẫunhiên.
 Thiếtbị tuầntự
 Gởinhận theo chuỗibítvàphảitruyxuấttuầntự.
5
Phân loại các thiếtbị nhậpxuất (tt)
 HĐH phải gom nhóm các thiếtbị khác nhau thành những
nhóm cơ bản để dễ dàng quảnlý:
 Storage
 Hard drives, Tapes, CDROM
 Networking
 Ethernet, radio, serial line
 Multimedia
 DVD, Camera, microphones
 HĐH phảicungcấpcácphương thứcnhấtquánđể truy
cập các nhóm đốitượng trên. Nếu không, lậptrìnhsẽ rất
khó khăn
6
Các phương thứctruycậpIO
 Sử dụng chung thư việngiaotiếpchonhiềuthiếtbị khác
nhau

 Ví dụ , với HĐH Unix, sử dụng 4 phương thức chính:
 open()
 close()
 read()
 write()
 Các phương thức này là các system calls đượccungcấp
bởi HĐH để chophépcácứng dụng chúng tương tác với
các thiếtbị xuấtnhập.
7
Các phương thứcIO củaUnix
 fileHandle = open(pathName, flags, mode)
 filehandle: là mộtsố nguyên, dùng để thao tác vớitập tin hay
thiếtbị
 pathname: tên trong hệ thống file. Trong Unix, các thiếtbịđặt
dướithư mục/dev.
 E.g. /dev/ttya là serial port đầu tiên, /dev/sda: là SCSI drive
đầu tiên
 flags: blocking hoặc là non-blocking …
 mode: read only, read/write, append …
 errorCode = close(fileHandle)
 Kernel sẽ giải phóng các biếnlưutrữ cho thiếtbị
8
Các phương thứcIO của Unix (tt)
 byteCount = read(fileHandle, byte [] buf, count)
 Đọc count bytes từ thiếtbị và lưu trong buffer buf.
 Chương trình người dùng phảikiểm tra byteCount để biếtsố
byte thậtsựđọc được.
 byteCount < 0 thì là báo lỗi(xemmãlỗi)
 byteCount = write(fileHandle, byte [] buf, count)
 Ghi count byte từ buf vào thiếtbị

 Số byte thậtsự ghi đượclưu trong byteCount
 byteCount âm là bị lỗi
9
Các đặc tính xuấtnhập
 Ba đặc tính khác nhau cần xem xét khi xử lý 1 thao tác
nhậpxuất:
 blocking vs. non-blocking
 buffered vs. unbuffered
 synchronous vs. asynchronous
10
Blocking vs. Non-Blocking I/O
 Blocking – ứng dụng dừng lạichođếnkhisố count bytes
được đọchoặcghi
 Ví dụ: Trong thiếtbị mạng, nếumuốn ghi 1000 bytes, thì HĐH
ghi tấtcả các byte cho đến khi ghi hoàn tất.
 Nếuthiếtbị không thể thựchiệnlệnh ghi được (ví dụ hỏng dây
nối), làmsao? Thìsẽ kết thúc và trả về số bytes đã ghi được.
 Nonblocking – HĐH đọcvàghicácbytes khicóthể,
không cần ứng dụng phảidừng lại.
11
Buffered vs. Unbuffered I/O
 Trong trường hợp buffer dữ liệucủathiếtbị quá nhỏ, để
không phảichờ quá lâu khi thựchiệnIO
 buffered I/O cho phép kernel copy lạidữ liệu
 Bên write(): cho phép ứng dụng tiếptục ghi dữ liệu
 Bên read(): khi thiếtbị báo có dự liệu đến, kernel chép dữ liệu
vào buffer. Khi tiến trình gọi read(), kernel chỉ việc copy từ
buffer.
 Khuyết điểm buffered I/O?
 Thêm chi phí để thựchiệncopy

 Chậmtrễ việcgửidữ liệu
12
Synchronous vs. Asynchronous I/O
 Synchronous I/O: các xử lý khác của ứng dụng củangười
dùng cuốisẽ dừng lại để chờ các thao tác xuấtnhậpcủa
nó hoàn tất.
 Asynchronous I/O: các xử lý khác của ứng dụng có thể
thực thi song song với các thao tác xuấtnhập
13
Các loạithiếtbị xuấtnhập
Hầuhết HĐH chia thành 3 nhóm thiếtbị:
 Thiếtbịđọctheokítự (character device)
 Dùng cho các thiếtbị tuầntự (v.d. USB port, bàn phím,
modem)
 Thiếtbị mạng
 Dùng cho các card mạng (v.d. Ethernet card)
 Thiếtbị theo block:
 Dùng cho các bộ lưutrữ lớn (v.d.ổđĩavàCDROM)
 Phương thức read/write sẽ khác nhau vớitừng loại
14
Thiếtbị xuấtnhậptheokítự
 HĐH đọc và ghi theo chuỗicácbyte
 System call write() sẽ ghi từng byte ra thiếtbị
 System call read() sẽđọctừng byte ra thiếtbị
 Không có điềukhiểntỉ lệ read/write, bên gửicóthể gọi
system
 call write() 1 lần 1000 bytes, bên nhậncóthể gọi read 1000 lần,
 mỗilần đọc 1 byte.
15
Thiếtbị mạng

 Unix và Windows đều dùng khái niệm socket để cho việc
truyền, nhậndữ liệutrênmạng
 Mỗi write() hoặclàgửicả block, kích thướccủa block có giới
hạntùyhệ thống.
 Bên nhận, read() trả về tấtcả các byte trong block.
16
Thiếtbịđọctheoblock
 HĐH đọc và ghi thiếtbị theo các block
 Mỗi block kích thướcxácđịnh (thông thường 1KB - 8KB)
 Người dùng chỉ có thể read/write các block cùng kích thước
 Không giống thiếtbị khác, thiếtbịđọc ghi theo block hỗ trợ
random access
 Chúng ta có thểđọc/ghi bấtcứ block nào trên thiếtbị, không cần
phải‘đọctấtcả các bytes’ trước
 Làm sao xác định vị trí củablock thứ n?
17
Con trỏ file
 Một con trỏ file đượcgánvàomộtfile đang mở, nếunhư thiếtbị
đang mở thuộcloại đọctheoblock
 Con trỏ file sẽ trỏ tớivị trí hiện hành trên file cho lệnh đọc/ghi kế
tiếp
 Đơnvị của con trỏ file là byte, chứ không phảiblock
 Di chuyển con trỏ file:
 absoluteOffset = lseek(fileHandle, offset, whence);
 whence xác định vị trí cộtmốc, đầu file, cuốifile…
 Vị trí hiệnhànhđượctrả về, <0 là lỗi
 Vị trí hiệnhànhlà1 số nguyên tính theo byte, có thể là bộisố
củablock.
18
Thiếtbị xuấtnhập

 Màn hình: Thiếtbị xuất
chuẩn:
 Ký tự hay đồ hoạ
 Khả năng hiểnthị:
 Độ phân giải:
 Vídụ : 25 x 80 ký tự
hay 800 x 600 x 256
màu.
 Độ làm tươi:
 30-60 lần/giây.
19
Thiếtbị xuấtnhập
 Bàn phím: Thiếtbị nhậpchuẩn
 Bố trí theo cấutrúc“QWERTY”
 Tốc độ nhậpdữ liệuchậm (<10 kýtự/giây)
 Thiếtbị trỏ/định vị: Thiếtbị nhậpchuẩn
 Chuột (quang, cơ)
 Trackball
 Joystick
 Tốc độ nhậpdữ liệuchậm (vài trăm bytes/giây)
20
Thiếtbị xuấtnhập
 Máy in
 Máy in dòng, máy in điểm, máy in phun, in laser.
 Tốc độ đẩydữ liệuchậm
 Hướng ký tự
 Máy quét
 Số hoá các tài liệu in thành các dữ liệusố dưới
dạng ảnh bitmap.
 Tốc độ quét chậm

21
Thiếtbị xuấtnhập
 Đĩatừ : Đĩamềm (floppy disk), đĩacứng (hard disk):
 Thiếtbị xuấtnhậptheokhối(sector).
 Dung lượng tuỳ thuộcvàosố head,track,sector.
 Tốc độ truy cậpphụ thuộcvàotốc độ quay và mật độ dữ liệu
trên đĩa.
 Băng từ:
 Thiếtbị truy cậptuầntự dung lượng lớn.
 Tốc độ truy cập ~2Mb/s
 CDROM/DVD:
 Tốc độ truy cập nhanh.
 Dung lượng ngày càng lớnvàgiáthànhngàycàngrẻ.
22
Thiếtbị xuấtnhập
 Thiếtbị giao tiếpmạng
 Card mạng
 Cài đặt các giao thứcmạng khác nhau để hỗ trợ cho quá
trình truyềnnhận các luồng/gói dữ liệu.
 Modem
 Chuyển đổigiữatínhiệutuầntự và tín hiệusố trên đường
truyềnthoại.
 Luồng dữ liệutruyềnlàcácdãybítđược gom nhóm thành
các ký tự.
 Đồng hồ hệ thống (clock) và bộđịnh giờ (timer)
 Cung cấpthờigianhệ thống để giúp đồng bộ hoá các
hoạt động trên máy tính.
23
Bộđiều khiểnthiếtbị
 Mỗi đơnvị nhậpxuấtthường gồm 2 thành phần:

 Thành phầncơ: Bảnthânthiếtbị
 Thành phần điện: bộđiều khiển (controller)
 Bộđiều khiển:
 Chứcnăng: Trung gian giao tiếpgiữathiếtbị và HĐH.
 Phương tiệngiaotiếp: Thông qua bus - hệ thống mạch truyền
dẫn.
 Công việc:
 Nhậnlệnh từ HĐH để thựchiệnvàbáohiệucho HĐH khi tác
vụ hoàn tất.
 Chuyển đổi dãy bit thành các byte và đặt chúng vào trong bộ
đệm (buffer) củabộđiều khiển.
24
Các thiếtbị xuấtnhập và bus hệ thống
25
Địachỉ giao tiếpthiếtbị
 HĐH giao tiếpvớithiếtbị thông qua địachỉ xuấtnhập
củabộđiềukhiển:

×