Bài giảng Hệ điều hành Máy tính: Lecture 12 do Nguyễn Thanh Sơn biên soạn nội dung cụ thể của chương này gồm có: Thiết bị phần cứng I/O, giao diện I/O cho ứng dụng, các dịch vụ của I/O subsystem, hiệu suất I/O,...
Hệ thống Xuất/Nhập (i/o) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Nội dung Thiết bị phần cứng I/O Giao diện I/O cho ứng dụng Các dịch vụ I/O subsystem Hiệu suất I/O BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Tổng quan Các thiết bị I/O khác biệt chức năng, tốc độ,… nên cần có phương thức quản lý, điều khiển tương ứng khác Chức I/O subsystem kernel Các trình điều khiển thiết bị (device driver) cung cấp cho I/O subsystem giao diện để truy cập thiết bị BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Thiết bị phần cứng I/O Kết nối hệ thống máy tính thiết bị I/O Điều khiển Port (connection point) Bus (daisy chain, shared direct access) Controller (device controller, SCSI host adapter) Giao tiếp CPU thiết bị I/O I/O port: dùng lệnh I/O để tác động lên ghi liệu / trạng thái / lệnh controller Memory-mapped I/O BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Cấu trúc bus PC BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Một số I/O port PC controller controller controller BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Các kỹ thuật thực I/O Kỹ thuật polling (busy waiting) hay programmed I/O Kiểm tra trạng thái thiết bị muốn thực I/O ready busy error Tiêu tốn thời gian vòng lặp để kiểm tra trạng thái (busy-wait) thực I/O BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Các kỹ thuật thực I/O (tt.) Kỹ thuật I/O dùng ngắt quãng (interrupt-driven I/O) CPU có ngõ Interrupt Request (IR), kích hoạt thiết bị I/O BK TP.HCM Nếu ngắt xảy (IR = active), CPU chuyển quyền điều khiển cho trình phục vụ ngắt (interrupt handler) Các ngắt che (maskable) khơng che (non-maskable) Hệ thống có bảng vector ngắt chứa địa trình phục vụ ngắt Ngắt dùng xử lý kiện khác hệ thống (lỗi chia cho 0, lỗi vi phạm vùng nhớ,…) Khoa Khoa học & Kỹ thuật Máy tính Chu trình I/O với ngắt qng BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính PC interrupt (1) INTR processor INTA (2) IRQ Programmable Interrupt Controllers IRQ IRQ 15 local bus byte interrupt number (k) (3) (4) Take exception to address k*4 BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 10 Bảng vector Pentium processor BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 11 Các kỹ thuật thực I/O (tt.) Kỹ thuật I/O dùng direct memory access (DMA) Các kỹ thuật polling interrupt-driven I/O khơng thích hợp thực di chuyển khối lượng lớn liệu Kỹ thuật DMA cần có phần cứng hỗ trợ đặc biệt, DMA controller Kỹ thuật DMA thực truyền liệu trực tiếp thiết bị I/O nhớ mà không cần can thiệp CPU BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 12 bước thực DMA BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 13 Giao diện I/O cho ứng dụng OS cung cấp giao diện I/O chuẩn hóa, cho ứng dụng Ví dụ: ứng dụng in tài liệu 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 I/O system call OS Trình điều khiển thiết bị “cầu nối” kernel điều khiển thiết bị (device controller) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 14 Cấu trúc I/O cấp kernel BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 15 Đặc tính thiết bị I/O BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 16 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) Thiết bị kí tự (character device) BK Block character Socket interface Unix, Windows/NT,… Clock timer TP.HCM Keyboard, mouse, serial port, line printer,… Tác vụ: get, put Thiết bị mạng (network device) Disk Các tác vụ: read, write, seek Cung cấp thời gian tại, timer Có thể lập trình Khoa Khoa học & Kỹ thuật Máy tính 17 System call yêu cầu I/O Blocking: process bị suspended I/O hoàn tất Nonblocking: process tiếp tục thực thi sau lệnh gọi I/O Dễ dàng sử dụng Không hiệu số trường hợp Ví dụ: data copy (buffered I/O) Thường thực với multithreading Khó kiểm sốt kết thực I/O Asynchronous: process thực thi lúc hệ thống thực I/O BK TP.HCM Khó sử dụng I/O subsystem báo hiệu cho process I/O hồn tất Khoa Khoa học & Kỹ thuật Máy tính 18 I/O subsystem kernel I/O subsystem cung cấp chức Định thời yêu cầu I/O Đệm liệu (buffering): lưu liệu tạm thời nhớ thực I/O BK Giải trường hợp chênh lệch tốc độ, kích thước liệu thực I/O Caching Spooling Xử lý lỗi (error handling) TP.HCM Các yêu cầu I/O xếp hàng hàng đợi thiết bị Bảo đảm công bằng, hiệu suất cao OS phục hồi lại sau lỗi đọc đĩa, thiết bị không tồn tại, lỗi đọc/ghi hay vận chuyển liệu Trả mã lỗi yêu cầu truy cập I/O không thành công Lỗi hệ thống lưu lại dạng báo cáo ghi nhớ lỗi Khoa Khoa học & Kỹ thuật Máy tính 19 Chu trình yêu cầu I/O User Kernel Hardware BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 20 Hiệu suất I/O Hiệu suất I/O ảnh hưởng lớn đến hiệu suất toàn hệ thống I/O gây tải cao CPU thực lệnh điều khiển device driver, kernel I/O code Chuyển ngữ cảnh I/O interrupt, chi phí copy 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 trình copy liệu (bằng caching,…) Giảm số lần ngắt quãng (truyền khối liệu lớn, dùng controller thông minh, dùng kỹ thuật polling,…) Sử dụng DMA BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 21 Ví dụ: remote login I/O system call to send the character to the remote machine subdaemon for the remote login session BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 22 ... lặp để kiểm tra trạng thái (busy-wait) thực I/O BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Các kỹ thuật thực I/O (tt.) Kỹ thuật I/O dùng ngắt quãng (interrupt-driven I/O) CPU có ngõ Interrupt... bị I/O I/O port: dùng lệnh I/O để tác động lên ghi liệu / trạng thái / lệnh controller Memory-mapped I/O BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Cấu trúc bus PC BK TP.HCM Khoa Khoa học... quyền điều khiển cho trình phục vụ ngắt (interrupt handler) Các ngắt che (maskable) khơng che (non-maskable) Hệ thống có bảng vector ngắt chứa địa trình phục vụ ngắt Ngắt dùng xử lý kiện khác hệ