intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Hệ điều hành: Chương 2 - Phan Xuân Huy

Chia sẻ: ảnh ảo | Ngày: | Loại File: PDF | Số trang:36

66
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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ủ đề:
Lưu

Nội dung Text: Bài giảng Hệ điều hành: Chương 2 - Phan Xuân Huy

  1. Chương 2: Quản lý xuất nhập „ 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 1
  2. Nhiệm vụ „ Mục tiêu của bộ phận quản lý xuất nhập „ Giới thiệu lớp trừu tượng và độc lập thiết bị „ Che giấu các chi tiết kỹ thuật của các thiết bị phần cứng. „ Quản lý và sửa lỗi. „ Làm cho các thiết bị phần cứng đơn giản và dễ dùng. „ Cho phép chia sẻ các thiết bị phần cứng „ Xây dựng các cơ chế bảo vệ các thiết bị được chia sẻ. „ Điều phối thiết bị để phục vụ cho cùng lúc nhiều nhu cầu sử dụng. 2
  3. Ví dụ về các thiết bị xuất nhập „ Các thiết bị giao tiếp: „ Các thiết bị chỉ nhập : bàn phím, chuột, joystick… „ Các thiết bị chỉ xuất : màn 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ị chỉ xuất: CD-ROM. 3
  4. Phân loại các 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ị chỉ nhập : bàn phím, chuột, joystick… „ Các thiết bị chỉ xuất : màn 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ị chỉ 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 từng khối riêng biệt và truy xuất ngẫu nhiên. „ Thiết bị tuần tự „ Gởi nhận theo chuỗi bít và phải truy xuất tuần tự. 4
  5. Phân loại các thiết bị nhập xuất (tt) „ HĐH phải gom nhóm các thiết bị khác nhau thành những nhóm cơ bản để 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 các phương thức nhất quán để truy cập các nhóm đối tượng trên. Nếu không, lập trình sẽ rất khó khăn 5
  6. 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 nhau „ Ví dụ , với HĐH Unix, sử dụng 4 phương thức chính: „ open() „ close() „ read() „ write() „ Các phương thức này là các system calls được cung cấp bởi HĐH để cho phép các ứng dụng chúng tương tác với các thiết bị xuất nhập. 6
  7. Các phương thức IO của Unix „ fileHandle = open(pathName, flags, mode) „ filehandle: là một số nguyên, dùng để thao tác với tập tin hay thiết bị „ pathname: tên trong hệ thống file. Trong Unix, các thiết bị đặt dưới thư mục /dev. „ E.g. /dev/ttya là serial port đầu tiên, /dev/sda: là SCSI drive đầu tiên „ flags: blocking hoặc là non-blocking … „ mode: read only, read/write, append … „ errorCode = close(fileHandle) „ Kernel sẽ giải phóng các biến lưu trữ cho thiết bị 7
  8. Các phương thức IO của Unix (tt) „ byteCount = read(fileHandle, byte [] buf, count) „ Đọc count bytes từ thiết bị và lưu trong buffer buf. „ Chương trình người dùng phải kiểm tra byteCount để biết số byte thật sự đọc được. „ byteCount < 0 thì là 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 sự ghi được lưu trong byteCount „ byteCount âm là bị lỗi 8
  9. Các đặc tính xuất nhập „ Ba đặc tính khác nhau cần xem xét khi xử lý 1 thao tác nhập xuất: „ blocking vs. non-blocking „ buffered vs. unbuffered „ synchronous vs. asynchronous 9
  10. Blocking vs. Non-Blocking I/O „ Blocking – ứng dụng dừng lại cho đến khi số count bytes được đọc hoặc ghi „ Ví dụ: Trong thiết bị mạng, nếu muốn ghi 1000 bytes, thì HĐH ghi tất cả các byte cho đến khi ghi hoàn tất. „ Nếu thiết bị không thể thực hiện lệnh ghi được (ví dụ hỏng dây nối), làm sao? Thì sẽ kết thúc và trả về số bytes đã ghi được. „ Nonblocking – HĐH đọc và ghi các bytes khi có thể, không cần ứng dụng phải dừng lại. 10
  11. Buffered vs. Unbuffered I/O „ Trong trường hợp buffer dữ liệu của thiết bị quá nhỏ, để không phải chờ quá lâu khi thực hiện IO „ buffered I/O cho phép kernel copy lại dữ liệu „ Bên write(): cho phép ứng dụng tiếp tục ghi dữ liệu „ Bên read(): khi thiết bị báo có dự liệu đến, kernel chép dữ liệu vào buffer. Khi tiến trình gọi read(), kernel chỉ việc copy từ buffer. „ Khuyết điểm buffered I/O? „ Thêm chi phí để thực hiện copy „ Chậm trễ việc gửi dữ liệu 11
  12. Synchronous vs. Asynchronous I/O „ Synchronous I/O: các xử lý khác của ứng dụng của người dùng cuối sẽ dừng lại để chờ các thao tác xuất nhập của nó hoàn tất. „ Asynchronous I/O: các xử lý khác của ứng dụng có thể thực thi song song với các thao tác xuất nhập 12
  13. Các loại thiết bị xuất nhập Hầu hết HĐH chia thành 3 nhóm thiết bị: „ Thiết bị đọc theo kí tự (character device) „ Dùng cho các thiết bị tuần tự (v.d. USB port, bàn phím, modem) „ Thiết bị mạng „ Dùng cho các card mạng (v.d. Ethernet card) „ Thiết bị theo block: „ Dùng cho các bộ lưu trữ lớn (v.d.ổ đĩa và CDROM) „ Phương thức read/write sẽ khác nhau với từng loại 13
  14. Thiết bị xuất nhập theo kí tự „ HĐH đọc và ghi theo chuỗi các byte „ System call write() sẽ ghi từng byte ra thiết bị „ System call read() sẽ đọc từng byte ra thiết bị „ Không có điều khiển tỉ lệ read/write, bên gửi có thể gọi system „ call write() 1 lần 1000 bytes, bên nhận có thể gọi read 1000 lần, „ mỗi lần đọc 1 byte. 14
  15. Thiết bị mạng „ Unix và Windows đều dùng khái niệm socket để cho việc truyền, nhận dữ liệu trên mạng „ Mỗi write() hoặc là gửi cả block, kích thước của block có giới hạn tùy hệ thống. „ Bên nhận, read() trả về tất cả các byte trong block. 15
  16. Thiết bị đọc theo block „ HĐH đọc và ghi thiết bị theo các block „ Mỗi block kích thước xác định (thông thường 1KB - 8KB) „ Người dùng chỉ có thể read/write các block cùng kích thước „ Không giống thiết bị khác, thiết bị đọc ghi theo block hỗ trợ random access „ Chúng ta có thể đọc/ghi bất cứ block nào trên thiết bị, không cần phải ‘đọc tất cả các bytes’ trước „ Làm sao xác định vị trí của block thứ n? 16
  17. Con trỏ file „ Một con trỏ file được gán vào một file đang mở, nếu như thiết bị đang mở thuộc loại đọc theo block „ Con trỏ file sẽ trỏ tới vị trí hiện hành trên file cho lệnh đọc/ghi kế tiếp „ Đơn vị của con trỏ file là byte, chứ không phải block „ Di chuyển con trỏ file: „ absoluteOffset = lseek(fileHandle, offset, whence); „ whence xác định vị trí cột mốc, đầu file, cuối file… „ Vị trí hiện hành được trả về,
  18. Thiết bị xuất nhập „ Màn hình: Thiết bị xuất chuẩn: „ Ký tự hay đồ hoạ „ Khả năng hiển thị: „ Độ phân giải: „ Ví dụ : 25 x 80 ký tự hay 800 x 600 x 256 màu. „ Độ làm tươi: „ 30-60 lần/giây. 18
  19. Thiết bị xuất nhập „ Bàn phím: Thiết bị nhập chuẩn „ Bố trí theo cấu trúc “QWERTY” „ Tốc độ nhập dữ liệu chậm (
  20. Thiết bị xuất nhập „ Máy in „ Máy in dòng, máy in điểm, máy in phun, in laser. „ Tốc độ đẩy dữ liệu chậm „ Hướng ký tự „ Máy quét „ Số hoá các tài liệu in thành các dữ liệu số dưới dạng ảnh bitmap. „ Tốc độ quét chậm 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2