Bài giảng Hệ điều hành - Chương 9: I/O System
qThiết bị phần cứng I/O
qCác thiết bị I/O khác biệt về nhiều mặt (hình dáng, kích thước, chức năng, tốc độ,…) Þ cần có các phương thức quản lý, điều khiển tương ứng khác nhau. Các phương thức này tạo nên lớp I/O subsystem của kernel.
qKết nối giữa hệ thống máy tính và các thiết bị I/O
–Port (connection point)
–Bus (daisy chain, shared direct access)
qĐiều khiển
–Controller (device controller, SCSI host adapter)
qGiao tiếp giữa CPU và thiết bị I/O
–I/O port: dùng lệnh I/O để tác động trực tiếp lên các thanh ghi (dữ liệu, trạng thái, lệnh) của controller.
–Memory-mapped I/O
Bạn đang xem tài liệu "Bài giảng Hệ điều hành - Chương 9: I/O System", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_he_dieu_hanh_chuong_9_io_system.ppt
Nội dung text: Bài giảng Hệ điều hành - Chương 9: I/O System
- Giao diện I/O cấp ứng dụng ❑ Mục tiêu: OS cung cấp một giao diện I/O chuẩn hóa, thuần nhất cho các ứng dụng. – Ví dụ: một ứng dụng in tài liệu ra máy in mà không cần biết hiệu máy in, đặc tính máy in, ❑ Giao diện làm việc đó là các I/O system call của OS. ❑ Trình điều khiển thiết bị (device driver) sẽ là cầu nối giữa kernel và các bộ điều khiển thiết bị (device controller). ❑ Đặc tính của thiết bị rất đa dạng – Character-stream vs. block – Sequential vs. random access – Sharable vs. dedicated – Tốc độ truy xuất – Read-write, read-only, write-only (graphics controller). Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.11
- Cấu trúc I/O cấp kernel Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.12
- Đặc tính của các thiết bị I/O Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.13
- Các dịch vụ I/O ❑ Giao diện chuẩn cho nhóm thiết bị có liên quan – Thiết bị khối (block device) ▪ Disk ▪ Các tác vụ: read, write, seek – Thiết bị kí tự (character device) ▪ Keyboard, mouse, serial port, line printer, ▪ Tác vụ: get, put – Thiết bị mạng (network device) ▪ Block hoặc character. ▪ Socket interface trên Unix, Windows/NT, – Clock và timer ▪ Cung cấp thời gian hiện tại, timer ▪ Có thể lập trình được. Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.14
- System calls ❑ Blocking: process bị suspended cho đến khi I/O hoàn tất. – Dễ dàng sử dụng – Không hiệu quả trong một số trường hợp ❑ Nonblocking: process sẽ tiếp tục thực thi ngay sau lệnh gọi I/O. – Ví dụ: data copy (buffered I/O) – Thường hiện thực với multithreading – Khó kiểm soát kết quả thực hiện I/O ❑ Asynchronous: process vẫn thực thi trong lúc hệ thống đang thực hiện I/O. – Khó sử dụng – I/O subsystem báo hiệu cho process khi I/O hoàn tất Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.15
- I/O subsystem ở kernel ❑ Định thời các yêu cầu I/O – Các yêu cầu I/O xếp hàng tại các hàng đợi của mỗi thiết bị – Bảo đảm công bằng, hiệu suất cao. ❑ Đệm dữ liệu (buffering): lưu dữ liệu tạm thời trong bộ nhớ khi thực hiện I/O – Giải quyết trường hợp chênh lệch tốc độ, kích thước dữ liệu khi thực hiện I/O ❑ Caching ❑ Spooling ❑ Xử lý lỗi (error handling) – OS can recover from disk read, device unavailable, transient write failures – Most return an error number or code when I/O request fails – System error logs hold problem reports Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.16
- Chu kỳ của một yêu cầu I/O User Kernel Hardware Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.17
- Hiệu suất I/O ❑ Hiệu suất I/O ảnh hưởng rất lớn đến hiệu suất toàn hệ thống. I/O gây tải cao do – CPU thực hiện các lệnh điều khiển của device driver, của kernel I/O code. – Chuyển ngữ cảnh vì các I/O interrupt, chi phí copy dữ liệu gửi nhận. – Network traffic gây tốc độ context-switch cao. ❑ Tăng hiệu suất I/O – Giảm số lần chuyển ngữ cảnh, giảm thiểu quá trình copy dữ liệu (bằng caching, ) – Giảm số lần ngắt quãng (truyền khối dữ liệu lớn, dùng các bộ controller thông minh, dùng cơ chế polling, ) – Sử dụng DMA nếu có thể. Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.18
- Ví dụ: remote login subdaemon for the remote login session I/O system call to send the character to the remote machine Khoa Khoa Học & Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP HCM 9.19