Tổ chức phân hệ quản lý vào/ra

Một phần của tài liệu Giáo trình môn Hệ Điều Hành PTIT (Trang 177)

Nguyên tắc chung

Như đã nói ở trên, yêu cầu đặt ra với quản lý vào/ra là cho phép các ứng dụng và tiến trình giao tiếp với thiết bị theo một chuẩn chung, tổng quát, không cần quan tâm tới đặc điểm cụ thể của thiết bị. Ví dụ, ứng dụng cần có khả năng đọc file mà không cần quan tâm tới đặc điểm cụ thể của đĩa hay thẻ nhớ nơi lưu file đó. Để thỏa mãn yêu cầu này, phân hệ vào/ra được thiết kế dựa trên hai kỹ thuật chính:

- Thứ nhất, phần quản lý vào/ra được phân lớp, các lớp ở mức trên có mức độ trừu tượng hóa cao hơn lớp mức dưới. Nói cách khác, càng lên mức cao hơn mức độ chuẩn hóa càng cao, càng ít liên quan tới chi tiết cụ thể của thiết bị.

- Thứ hai, mỗi thiết bị cụ thể được quản lý bởi một chương trình quản lý thiết bị riêng, được gọi là driver. Driver được lập trình theo các chi tiết kỹ thuật của thiết bị nhưng có giao

diện giống nhau dưới dạng các hàm mà mô đun mức trên có thể gọi để giao tiếp với thiết bị. Như vậy, khi thiết bị thay đổi, ta chỉ cần thay đổi driver trong khi vẫn giữ nguyên các lớp trên. Sau khi được cài đặt, driver trở thành một thành phần của nhân và là lớp dưới cùng của phân hệ quản lý vào/ra.

Trên hình 4.25 thể hiện cấu trúc phân lớp của phân hệ vào/ra với các driver cho thiết bị.

Phân loại driver

Do chủng loại và tính chất thiết bị rất khác nhau, không thể có giao diện chung cho tất cả các driver. Ví dụ, driver cho thiết bị vào/ra dạng khối như đĩa, sẽ cung cấp các hàm như read() hay write() cho phép đọc ghi từng khối dữ liệu. Trong khi đó, driver cho thiết bị vào ra dạng ký tự, điển hình là bàn phím, sẽ cung cấp hàm get() hay put() cho phép gửi và nhận từng byte. Để đảm bảo mức độ trừu tượng cao hơn, thuận lợi hơn cho các ứng dụng, các driver được nhóm lại thành những nhóm tương tự nhau, mỗi nhóm như vậy được chuẩn hóa để có cùng giao diện. Các nhóm driver thường gặp bao gồm:

- Nhóm vào/ra theo khối, cho các driver thiết bị như đĩa, thẻ USB. Giao diện cho driver thuộc nhóm này gồm các lệnh read(), write(), seek(), trong đó seek() chỉ dùng với thiết bị cho phép truy cập trực tiếp.

- Nhóm vào/ra theo chuỗi ký tự, bao gồm driver chuột, bàn phím hoặc thiết bị tương tự. - Nhóm driver mạng. Ví dụ điển hình của giao diện với driver cho thiết bị mạng là giao diện

dưới dạng socket. Giao diện dạng này gồm các hàm cho phép một ứng dụng tạo ra socket – có thể hiểu là điểm kết nối với ứng dụng ở xa – tới một địa chỉ nào đó. Sau đó socket sẽ lắng nghe cho tới khi ứng dụng ở xa kết nối vào socket. Tiếp theo, giao diện cung cấp các hàm cho phép gửi và nhận dữ liệu với ứng dụng ở xa thông quan socket được tạo.

P

hầ

n

mềm

Phần còn lại của hệ điều hành

Phân hệ quản lý vào/ra Driver thiết bị Driver thiết bị Driver thiết bị Driver thiết bị P hầ n cứng Bộ điều khiển thiết bị Bộ điều khiển thiết bị

khiển thiết Bộ điều

bị

Bộ điều khiển thiết

bị

Thiết bị Thiết bị Thiết bị Thiết bị

Hình 4.25: Cấu trúc phân hệ vào/ra PTIT

Các thao tác do driver thiết bị thực hiện

Driver thiết bị chịu trách nhiệm thực hiện các công việc sau: - Khởi tạo thiết bị.

- Giải mã các lệnh (lời gọi hệ thống) từ hệ điều hành. - Quản lý việc truyền dữ liệu vào/ra thiết bị.

- Nhận và xử lý ngắt liên quan tới thiết bị.

- Đảm bảo tính nhất quán giữa các cấu trúc dữ liệu do driver và các mô đun khác của hệ điều hành sử dụng.

Các bước xử lý yêu cầu vào/ra do driver thực hiện.

Quy trình xử lý yêu cầu vào/ra của driver có thể tóm tắt một cách đơn giản với các thao tác sau:

- Kiểm tra tính hợp lệ của tham số trong yêu cầu vào/ra và dịch yêu cầu vào ra sang ngôn ngữ phù hợp với thiết bị.

- Kiểm tra xem thiết bị có rỗi không. Nếu thiết bị bận, tiến trình đưa yêu cầu xử lý có thể bị phong tỏa để chờ cho tới khi thiết bị hết bận.

- Sinh các lệnh điều khiển thiết bị: ghi vào thanh ghi tương ứng của bộ điều khiển thiết bị, kiểm tra độ sẵn sàng của thiết bị sau mỗi lệnh.

- Phong tỏa và chờ đến khi bộ điều khiển thiết bị thực hiện xong lệnh. - Kiểm tra lỗi.

- Trả về thông tin trạng thái và kết thúc việc xử lý.

Một phần của tài liệu Giáo trình môn Hệ Điều Hành PTIT (Trang 177)