CHƯƠNG 2 : ĐIỀU KHIỂN DỮ LIỆU
4. Quy trình điều khiển chung vào ra
Mục tiêu: Nắm được quy trình điều khiển vào ra.
4.1 Các khối điều khiển dữ liệu
Các chương trình hệ thống phải quản lý được các thông tin về các File đang làm việc trong hệ thống, cách thức truy nhập chúng, thơng tin về vật dẫn ngồi chứa nội dung các File đó. Để có thể thực hiện được các chức năng của
Buffer ra Vùng làm việc PUT GE T
mình, hệ thống xây dựng (hoặc địi hỏi) một số khối điều khiển dữ liệu. Các khối điều khiển dữ liệu điển hình được giới thiệu ở dưới đây.
Khối FCB (File Control Block): chứa thông tin quản lý làm việc đối với File. Trong một số hệ điều hành thuật ngữ “thẻ File” có ý nghĩa thay thế tương đương. Trong khối này có những thơng tin cụ thể về File tương ứng: số lượng bản ghi, bản ghi hiện thời, địa chỉ các khối liên kết v.v…
Khối DCB (Data Control Block): chương trình người dùng được viết theo ngôn ngữ bậc cao thì chương tình dịch tạo DCB, cịn nếu được viết theo hợp ngữ thì chương trình người dùng tạo DCB. Khối DCB chứa mọi thơng tin liên quan đến điều khiển vào ra: tổ chức File, phương pháp truy nhập, địa chỉ các khối điều khiển liên quan v.v…
Khối UCB (Unit Control Block): chứa thông tin về thiết bị vào ra, vật dẫn ngoài tương ứng, giúp cho quá trình điều khiển thiết bị.
Ngồi ra cịn có một số khối mở rộng khác cho điều khiển dữ liệu.
4.2 Ví dụ về sơ đồ chung điều khiển vào ra trong hệ điều hành
Qua xem xét sơ đồ ở hình 2.3 chúng ta thấy:
Chương trình người dùng và chương trình của phương pháp truy nhập ở vùng bộ nhở RAM (địa chỉ của chúng tùy theo trạng thái máy trước khi chúng được nạp vào).
Các chương trình gọi ngắt vào ra, thân ngắt và kết thúc ngắt được đặt trên những địa chỉ xác định. Trong thân ngắt có chứa lệnh bắt đầu vào/ra(SIO: start Input/Output). Như đã biết điều khiển vào ra do kênh đảm nhận và kênh hoạt động theo hệ thống lệnh riêng (lệnh kênh).
(Trong sơ đồ trên, vùng nằm trong đường rời nét là thuộc các vùng nhớ
cố định của bộ nhớ trong)
Hình 2.3. Một ví dụ về điều khiển vào – ra trong hệ điều hành OS Chi tiết q trình được tóm tắt như sau (xét các máy theo hệ OS): -chuẩn bị một chương trình kênh (dãy các lệnh kênh)
-xây dựng từ địa chỉ kênh (CAW: channel address Word) -gửi từ địa chỉ kênh nói trên vào một địa chỉ quy định sẵn
….. ….. READ ….. ….. ….. ….. EXCP ….. ….. Chương trình người dùng Chương trình của hệ điều hành Gọi ngắt hướng supervisor Hoàn thiện hướng tới supervisor ….. ….. SIO ….. …..
-đưa ra lệnh SIO và tải chương trình kênh (theo kênh và thiết bị tương ứng)
-phân tích kết quả việc tải chương trình kênh
-sau khi tải thành cơng chương trình kênh, CPU và kênh làm việc song song
-sau khi kết thúc (tốt hay không tốt) công việc vào ra, kênh đưa ra tín hiệu cho ngắt vào/ra. Chương trình xử lý ngắt sẽ phân tích tín hiệu trên để biết thành công hay không và dấu hiệu sai sót.
Chương trình người dùng, dựa vào kiểm tra kết quả vào/ra để xử lý: nếu hồn thiện thì cơng việc tiếp tục; nếu có sai sót sẽ tùy từng ngữ cảnh để xử lý.
Nếu chỉ ra rằng, thao tác vào ra không thể kết thúc ngay được thì chương trình sẽ chuyển sang trạng thái chờ đợi.