Bài giảng Hệ điều hành - Chương 2: Quản lý xuất nhập trình các nội dung chính sau: Nhiệm vụ của bộ phận quản lý xuất nhập, các thiết bị xuất nhập, mô hình phân lớp trong quản lý xuất nhập, bộ điều khiển thiết bị(device controller), trình điều khiển thiết bị(device driver), cơ chế DMA, quản lý lỗi và bảo vệ quá trình xuất nhập. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương 2: Quản lý xuất nhập Nhiệm vụ phận quản lý xuất nhập Các thiết bị xuất nhập Mơ hình phân lớp quản lý xuất nhập Bộ điều khiển thiết bị (device controller) Trình điều khiển thiết bị (device driver) Cơ chế DMA Quản lý lỗi bảo vệ trình xuất nhập Nhiệm vụ Mục tiêu phận quản lý xuất nhập Giới thiệu lớp trừu tượng độc lập thiết bị Che giấu chi tiết kỹ thuật thiết bị phần cứng Quản lý sửa lỗi Làm cho thiết bị phần cứng đơn giản dễ dùng Cho phép chia sẻ thiết bị phần cứng Xây dựng chế bảo vệ thiết bị chia sẻ Điều phối thiết bị để phục vụ cho lúc nhiều nhu cầu sử dụng Ví dụ thiết bị xuất nhập Các thiết bị giao tiếp: Các thiết bị nhập : bàn phím, chuột, joystick… Các thiết bị xuất : hình, máy in Các thiết bị vừa nhập vừa xuất: card mạng Các thiết bị lưu trữ Thiết bị vừa xuất, vừa nhập: đĩa (cứng/mềm), băng từ Thiết bị xuất: CD-ROM Phân loại thiết bị nhập xuất Phân loại theo mục đích sử dụng: Các thiết bị giao tiếp: Các thiết bị nhập : bàn phím, chuột, joystick… Các thiết bị xuất : hình, máy in Các thiết bị vừa nhập vừa xuất: card mạng Các thiết bị lưu trữ Thiết bị vừa xuất, vừa nhập: đĩa (cứng/mềm), băng từ Thiết bị xuất: CD-ROM Phân loại theo phương pháp truy xuất: Thiết bị khối: Tổ chức theo khối riêng biệt truy xuất ngẫu nhiên Thiết bị Gởi nhận theo chuỗi bít phải truy xuất Phân loại thiết bị nhập xuất (tt) HĐH phải gom nhóm thiết bị khác thành nhóm để dễ dàng quản lý: Storage Hard drives, Tapes, CDROM Networking Ethernet, radio, serial line Multimedia DVD, Camera, microphones HĐH phải cung cấp phương thức quán để truy cập nhóm đối tượng Nếu khơng, lập trình khó khăn Các phương thức truy cập IO Sử dụng chung thư viện giao tiếp cho nhiều thiết bị khác Ví dụ , với HĐH Unix, sử dụng phương thức chính: open() close() read() write() Các phương thức system calls cung cấp HĐH phép ứng dụng chúng tương tác với thiết bị xuất nhập Các phương thức IO Unix fileHandle = open(pathName, flags, mode) filehandle: số nguyên, dùng để thao tác với tập tin hay thiết bị pathname: tên hệ thống file Trong Unix, thiết bị đặt thư mục /dev E.g /dev/ttya serial port đầu tiên, /dev/sda: SCSI drive flags: blocking non-blocking … mode: read only, read/write, append … errorCode = close(fileHandle) Kernel giải phóng biến lưu trữ cho thiết bị Các phương thức IO Unix (tt) byteCount = read(fileHandle, byte [] buf, count) Đọc count bytes từ thiết bị lưu buffer buf Chương trình người dùng phải kiểm tra byteCount để biết số byte thật đọc byteCount < báo lỗi (xem mã lỗi) byteCount = write(fileHandle, byte [] buf, count) Ghi count byte từ buf vào thiết bị Số byte thật ghi lưu byteCount byteCount âm bị lỗi Các đặc tính xuất nhập Ba đặc tính khác cần xem xét xử lý thao tác nhập xuất: blocking vs non-blocking buffered vs unbuffered synchronous vs asynchronous Blocking vs Non-Blocking I/O Blocking – ứng dụng dừng lại số count bytes đọc ghi Ví dụ: Trong thiết bị mạng, muốn ghi 1000 bytes, HĐH ghi tất byte ghi hoàn tất Nếu thiết bị khơng thể thực lệnh ghi (ví dụ hỏng dây nối), làm sao? Thì kết thúc trả số bytes ghi Nonblocking – HĐH đọc ghi bytes có thể, khơng cần ứng dụng phải dừng lại 10 Thiết bị xuất nhập Thiết bị giao tiếp mạng Card mạng Cài đặt giao thức mạng khác để hỗ trợ cho q trình truyền nhận luồng/gói liệu Modem Chuyển đổi tín hiệu tín hiệu số đường truyền thoại Luồng liệu truyền dãy bít gom nhóm thành ký tự Đồng hồ hệ thống (clock) định (timer) Cung cấp thời gian hệ thống để giúp đồng hoá hoạt động máy tính 22 Bộ điều khiển thiết bị Mỗi đơn vị nhập xuất thường gồm thành phần: Thành phần cơ: Bản thân thiết bị Thành phần điện: điều khiển (controller) Bộ điều khiển: Chức năng: Trung gian giao tiếp thiết bị HĐH Phương tiện giao tiếp: Thông qua bus - hệ thống mạch truyền dẫn Công việc: Nhận lệnh từ HĐH để thực báo hiệu cho HĐH tác vụ hoàn tất Chuyển đổi dãy bit thành byte đặt chúng vào đệm (buffer) điều khiển 23 Các thiết bị xuất nhập bus hệ thống 24 Địa giao tiếp thiết bị HĐH giao tiếp với thiết bị thông qua địa xuất nhập điều khiển: 25 Mơ hình phân lớp quản lý xuất nhập Hệ thống xuất nhập tổ chức theo lớp, lớp có chức định có hỗ trợ liên hồn lẫn nhau: 26 Phần mềm độc lập thiết bị Chức năng: Tạo giao tiếp chung cho tất thiết bị Bảo vệ thiết bị Cung cấp khối liệu độc lập thiết bị Cung cấp đệm (buffer) để hỗ trợ cho trình đồng hố hoạt động hệ thống Định vị trí lưu trữ khối thiết bị Cấp phát giải phóng thiết bị Thơng báo lỗi cho người dùng (nếu có) 27 Trình điều khiển thiết bị Chức năng: Nhận yêu cầu từ phía lớp phần mềm độc lập thiết bị Chuyển đổi yêu cầu trừu tượng thành cụ thể Điều phối yêu cầu cho điều khiển thiết bị (device controller) Giám sát thực yêu cầu Ví dụ: HĐH muốn đọc tập tin io.sys đĩa thư mục C:\ Trình điều khiển đĩa phải hiểu cần đọc khối Trình điều khiển đĩa chuyển yêu cầu cho điều khiển đĩa Bộ điều khiển đĩa phải kiểm tra hoạt động motor đĩa, xác định đầu đọc vị trí chưa 28 Trình điều khiển thiết bị 29 Bộ kiểm soát ngắt (interrupt handler) Tương tác HĐH thiết bị phần cứng thực thông qua chế ngắt (interrupt) Bộ kiểm soát ngắt tiếp nhận ngắt từ HĐH ứng dụng người dùng cuối Dựa bảng “Interrupt vector” để phân phối ngắt đến điều khiển thiết bị tương ứng Quản lý giám sát q trình thực ngắt Nhận ngắt thơng báo q trình xuất nhập hồn tất có lỗi xảy trình xuất nhập từ điều khiển thiết bị để chuyển lên cho HĐH 30 Bộ kiểm soát ngắt (interrupt handler) 31 Cơ chế truy cập nhớ trực tiếp DMA (Direct Memory Access) Xét q trình đọc đĩa khơng có DMA: HĐH chuyển yêu cầu đọc đĩa cho điều khiển đĩa Bộ điều khiển đọc khối đĩa Đọc bit khối đưa vào đệm điều khiển đĩa Bộ điều khiển đĩa tạo ngắt để báo qua CPU biết q trình đọc đĩa hồn tất CPU lấy byte liệu từ đệm điều khiển đĩa để chuyển nhớ để thao tác Nhận xét: Lãng phí thời gian xử lý CPU để chuyển liệu từ đệm điều khiển đĩa nhớ 32 Cơ chế DMA Cơ chế DMA giúp CPU khơng bị lãng phí cách: HĐH gởi cho điều khiển đĩa thông số gồm: khối cần đọc + vị trí lưu trữ khối bên nhớ (địa DMA) + số byte cần đọc Bộ điều khiển đĩa đọc khối cần thiết lưu vào đệm Sau đọc xong, điều khiển chuyển byte từ đệm địa DMA – nơi cần lưu trữ liệu cần thiết bên nhớ Bộ điều khiển đĩa tạo ngắt để thông báo cho CPU biết q trình chuyển liệu hồn tất 33 Cơ chế DMA 34 Quản lý lỗi & bảo vệ xuất nhập thiết bị Quá trình xử lý người dùng cuối hay HĐH vơ tình hay cố ý thực lệnh/thao tác xuất nhập bất hợp pháp gây hại cho hệ thống thiết bị Cần định nghĩa trước gán đặc quyền cho lệnh xuất nhập hệ thống dạng lời gọi hệ thống (system call) Giám sát trình xuất nhập người dùng cuối Tất trình xuất nhập ƯD phải thực thông qua lời gọi hệ thống 35 Quản lý lỗi & bảo vệ xuất nhập thiết bị Khi gặp lỗi trình xuất nhập, điều khiển thiết bị trả cho HĐH mã lỗi tương ứng HĐH diễn dịch mã lỗi trả để có phương án giải thích hợp HĐH diễn dịch lưu vào nhật ký hệ thống (system log) lỗi tương ứng để giúp người quản trị hệ thống giám sát lỗi phục hồi 36 ... Trình điều khiển đĩa phải hiểu cần đọc khối Trình điều khiển đĩa chuyển yêu cầu cho điều khiển đĩa Bộ điều khiển đĩa phải kiểm tra hoạt động motor đĩa, xác định đầu đọc vị trí chưa 28 Trình điều. .. Thông qua bus - hệ thống mạch truyền dẫn Công việc: Nhận lệnh từ HĐH để thực báo hiệu cho HĐH tác vụ hoàn tất Chuyển đổi dãy bit thành byte đặt chúng vào đệm (buffer) điều khiển 23 Các thiết... Các thiết bị xuất nhập bus hệ thống 24 Địa giao tiếp thiết bị HĐH giao tiếp với thiết bị thông qua địa xuất nhập điều khiển: 25 Mơ hình phân lớp quản lý xuất nhập Hệ thống xuất nhập tổ chức