Phần mềm nhập xuất Phần mềm nhập xuất Bởi: Giảng viên Trần Hạnh Nhi Mục tiêu chung thiết bị logic dể biểu diễn Thiết bị logic tổ chức thành nhiều lớp Lớp giao tiếp với phần cứng, lớp giao tiếp tốt, thân thiện với người sử dụng Khái niệm then chốt thiết bị logic độc lập thiết bị, ví dụ : viết chương trình truy xuất file đĩa mềm hay đĩa cứng mà không cần phải mô tả lại chương trình cho loại thiết bị Ngoài ra, thiết bị logic phải có khả kiểm soát lỗi Thiết bị logic tổ chức thành bốn lớp : Kiểm soát lỗi, điều khiển thiết bị, phần mềm hệ điều hành độc lập thiết bị, phần mềm mức người sử dụng Kiểm soát ngắt Ngắt tượng phức tạp Nó phải cần che dấu sâu hệ điều hành, phần hệ thống biết chúng Cách tốt để che dấu chúng hệ điều hành có tiến trình thực thao tác nhập xuất hoàn tất tạo ngắt Tiến trình tự khóa lại cách thực lệnh WAIT theo biến điều kiện RECEIVE theo thông điệp Khi ngắt xảy ra, hàm xử lý ngắt khởi tạo tiến trình để xử lý ngắt Nó thực tín hiệu biến điều kiện gửi thông điệp đến cho tiến trình bị khóa Tổng quát, chức ngắt làm cho tiến trình bị khóa thi hành trở lại Điều khiển thiết bị (device drivers) Tất đoạn mã độc lập thiết bị chuyển đến device drivers Mỗi device drivers kiểm soát loại thiết bị, có tập hợp thiết bị liên quan mật thiết với Device drivers phát thị kiểm tra xem thị có thực xác không Ví dụ, driver đĩa phần hệ điều hành kiểm soát điều khiển đĩa Nó quản lý sectors, tracks, cylinders, head, chuyển động, interleave, thành phần khác giúp cho thao tác đĩa thực tốt 1/4 Phần mềm nhập xuất Chức device drivers nhận yêu cầu trừu tượng từ phần mềm nhập/xuất độc lập thiết bị lớp trên, giám sát yêu cầu thực Nếu driver rảnh, thực yêu cầu, ngược lại, yêu cầu đưa vào hàng đợi Ví dụ, bước yêu cầu nhập/xuất đĩa chuyển từ trừu tượng thành cụ thể Driver đĩa phải biết khối cần đọc, kiểm tra hoạt động motor đĩa, xác định vị trí đầu đọc chưa v.v… Nghĩa device drivers phải xác định thao tác điều khiển phải thi hành theo trình tự Một xác định thị cho điều khiển, bắt đầu thực cách chuyển lệnh vào ghi điều khiển thiết bị Bộ điều khiển nhận hay nhiều thị liên tiếp sau tự thực không cần trợ giúp hệ điều hành Trong lệnh thực Có hai trường hợp xảy : Một device drivers phải chờ điều khiển thực xong cách tự khóa lại ngắt phát sinh mở khóa cho Hai là, hệ điều hành chấm dứt mà không chờ, driver không cần thiết phải khóa Sau hệ điều hành hoàn tất việc kiểm tra lỗi thứ ổn driver chuyển liệu cho phần mềm độc lập thiết bị Cuối trả thông tin trạng thái hay lỗi cho nơi gọi có yêu cầu khác hàng đợi, thực tiếp, không khóa lại chờ đến yêu cầu Phần mềm nhập/xuất độc lập thiết bị Mặc dù số phần mềm nhập/xuất mô tả thiết bị phần lớn chúng độc lập với thiết bị Ranh giới xác drivers phần mềm độc lập thiết bị độc lập mặt hệ thống, số hàm mà thi hành theo kiểu độc lập thiết bị thi hành drivers lý hiệu hay lý dó khác Giao tiếp đồng cho device drivers Đặt tên thiết bị Bảo vệ thiết bị Cung cấp khối độc lập thiết bị Tổ chức buffer Định vị lưu trữ thiết bị khối Cấp phát giải phóng thiết bị tận hiến Báo lỗi 2/4 Phần mềm nhập xuất Chức phần mềm nhập/xuất độc lập thiết bị chức chung cho tất thiết bị cung cấp giao tiếp đồng cho phần mềm phạm vi người sử dụng Trước tiên phải có chức tạo ánh xạ thiết bị tên hình thức Ví dụ UNIX, tên /dev/tty0 dành riêng để mô tả I-node cho file đặc biệt, I-node chứa chứa số thiết bị chính, dùng để xác định driver thích hợp số thiết bị phụ, dùng để xác định tham số cho driver biết đọc hay ghi Thứ hai bảo vệ thiết bị, cho phép hay không cho phép người sử dụng truy xuất thiết bị Các hệ điều hành có hay chức Thứ ba cung cấp khối liệu độc lập thiết bị ví dụ đĩa khác có kích thước sector khác điều gây khó khăn cho phần mềm người sử dụng lớp Chức cung cấp khối liệu logic độc lập với kích thước sector vật lý Thứ tư cung cấp buffer để hỗ trợ cho đồng hóa trình hoạt động hệ thống Ví dụ buffer cho bàn phím Thứ năm định vị lưu trữ thiết bị khối Thứ sáu cấp phát giải phóng thiết bị tận hiến Cuối thông báo lỗi cho lớp bên từ lỗi device driver báo Phần mềm nhập/xuất phạm vi người sử dụng Hầu hết phần mềm nhập/xuất bên hệ điều hành phần nhỏ chúng chứa thư viện liên kết với chương trình người sử dụng chương trình thi hành bên hạt nhân Lời gọi hệ thống, bao gồm lời gọi hệ thống nhập/xuất thường thực hàm thư viện Ví dụ chương trình C có lệnh count = write(fd, buffer, nbytes) ; Hàm thư viện write địch liên kết dạng nhị phân nằm nhớ thi hành Tập hợp tất hàm thư viện rõ ràng phần hệ thống nhập/ xuất Không phải tất phần mềm nhập/xuất chứa hàm thư viện, có loại quan trọng khác gọi hệ thống spooling dùng để khai thác tối đa thiết bị nhập/xuất hệ thống đa chương 3/4 Phần mềm nhập xuất Các hàm thư viện chuyển tham số thích hợp cho lời gọi hệ thống hàm thư viện thực việc định dạng cho nhập xuất lệnh printf C Thư viện nhập/xuất chuẩn chứa số hàm có chức nhập/xuất tất chạy chương trình người dùng Chức spooling tránh trường hợp tiến trình truy xuất thiết bị, chiếm giữ thiết bị sau không làm khoảng thời gian tiến trình khác bị ảnh hưởng truy xuất thiết bị Một ví dụ spooling device line printer Spooling sử dụng hệ thống mạng hệ thống e-mail chẳng hạn 4/4 ... phóng thiết bị tận hiến Báo lỗi 2/4 Phần mềm nhập xuất Chức phần mềm nhập/ xuất độc lập thiết bị chức chung cho tất thiết bị cung cấp giao tiếp đồng cho phần mềm phạm vi người sử dụng Trước tiên... Cuối thông báo lỗi cho lớp bên từ lỗi device driver báo Phần mềm nhập/ xuất phạm vi người sử dụng Hầu hết phần mềm nhập/ xuất bên hệ điều hành phần nhỏ chúng chứa thư viện liên kết với chương trình... thư viện rõ ràng phần hệ thống nhập/ xuất Không phải tất phần mềm nhập/ xuất chứa hàm thư viện, có loại quan trọng khác gọi hệ thống spooling dùng để khai thác tối đa thiết bị nhập/ xuất hệ thống