Giáo trình Hệ điều hành - Chương 3: Quản lí nhập xuất - Trần Công Án

pdf 36 trang huongle 8250
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ điều hành - Chương 3: Quản lí nhập xuất - Trần Công Án", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_he_dieu_hanh_chuong_3_quan_li_nhap_xuat_tran_cong.pdf

Nội dung text: Giáo trình Hệ điều hành - Chương 3: Quản lí nhập xuất - Trần Công Án

  1. Hệ Điều Hành Chương 3. Quản Lý Nhập Xuất Giảng viên TS. Trần Công Án tcan@cit.ctu.edu.vn Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2018
  2. [TT005] Ch3. Quản lý nhập xuất Mục Tiêu Giúp sinh viên hiểu rõ các loại thiết bị nhập xuất và các mô hình tổ chức, quản lý và cách thức truy xuất các thiết bị nhập xuất. TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 2
  3. [TT005] Ch3. Quản lý nhập xuất Nội Dung Các khái niệm cơ bản Mô hình tổ chức & Quản lý việc nhập xuất Cài đặt hệ thống quản lý nhập xuất Truy xuất hệ thống nhập xuất TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 3
  4. [TT005] Ch3. Quản lý nhập xuất Các khái niệm cơ bản Các khái niệm cơ bản TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 4
  5. [TT005] Ch3. Quản lý nhập xuất Các khái niệm cơ bản Các Khái Niệm Cơ Bản I Chức năng chính của máy tính là nhập/xuất và tính toán. I Nhập (input): đọc/nhận dữ liệu từ thiết bị nhập vào. I Xuất (output): ghi/xuất dữ liệu ra thiết bị xuất. I I/O Port: điểm nối kết với thiết bị I/O với máy tính. I Bus: kênh vận chuyển dữ liệu giữa các thiết bị. I Controller: bộ điều khiển thiết bị, điều khiển các thiết bị I/O. I CPU gửi chỉ thị điều khiển đến controller bằng 2 phương pháp: I Chỉ thị I/O trực tiếp: ghi vào các thanh ghi của controller. I Ánh xạ qua bộ nhớ: ghi vào vùng nhớ được ánh xạ. TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 5
  6. [TT005] Ch3. Quản lý nhập xuất Các khái niệm cơ bản Cấu Trúc Bus Của Một Hệ Thống Máy Tính disk disk disk monitor processor SCSI bus disk cache bridge/memory graphics memory SCSI controller controller controller PCI bus IDE disk controller expansion bus keyboard interface disk disk expansion bus disk disk parallel serial port port TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 6
  7. [TT005] Ch3. Quản lý nhập xuất Các khái niệm cơ bản Các loại thiết bị nhập xuất Các Loại Thiết Bị Nhập Xuất I Các thiết bị I/O dạng khối (block): I Nhập/Xuất dữ liệu theo đơn vị khối (VD: 512 bytes – 32KB ). I Ví dụ: các ổ đĩa HDD, FDD, CDROM, I Có thể sử dụng phương pháp ánh xạ bộ nhớ. I Các thiết bị dạng ký tự: (character): I Nhập/Xuất dữ liệu theo từng byte ký tự. I Ví dụ: bàn phím, chuột, các cổng tuần tự (serial ports), TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 7
  8. [TT005] Ch3. Quản lý nhập xuất Các khái niệm cơ bản Đặc tính của các thiết bị nhập xuất Đặc Tính Các Loại Thiết Bị Nhập Xuất I Tốc độ thiết bị: truyền dữ liệu, tìm kiếm, trì hoãn,. . . I Dung lượng lưu trữ, thời gian truy xuất một đơn vị dữ liệu. I Loại thiết bị: nhập, xuất, hay cả hai. I Đơn vị truyền dữ liệu: khối hay ký tự. I Trạng thái của thiết bị: lệnh đã hoàn thành, dữ liệu sẵn dùng, lỗi,. . . I Chế độ chia sẻ: chia sẻ hay tận hiến. I Chế độ truyền dữ liệu: đồng bộ hay bất đồng bộ. TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 8
  9. [TT005] Ch3. Quản lý nhập xuất Các khái niệm cơ bản Đặc tính của các thiết bị nhập xuất Đặc Tính Của Một Số Loại Thiết Bị aspect variation example character terminal data-transfer mode block disk sequential modem access method random CD-ROM synchronous tape transfer schedule asynchronous keyboard dedicated tape sharing sharable keyboard device speed latency seek time transfer rate delay between operations read only CD-ROM I/O direction write only graphics controller read–write disk TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 9
  10. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 10
  11. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Bộ điều khiển thiết bị nhập xuất Bộ Điều Khiển Thiết Bị (Controller) I CPU điều khiển các thiết bị thông qua bộ điều khiển thiết bị. I Mỗi controller có thể điều khiển nhiều thiết bị. I Mỗi cổng I/O có các thanh ghi cổng I/O (data in/out, status, control), cho phép CPU gửi lệnh và tham số điều khiển đến thiết bị. I Khi một lệnh được controller chấp nhận, CPU có thể thực hiện các công việc khác mà không cần chờ các thiết bị. I Khi thiết bị thực hiện xong yêu cầu, controller sẽ báo hiệu cho CPU bằng một tín hiệu ngắt (interrupt). I CPU lấy kết quả của thao tác I/O thông qua các thanh ghi cổng I/O. TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 11
  12. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Bộ điều khiển thiết bị nhập xuất Một Số Địa Chỉ Cổng I/O I/O address range (hexadecimal) device 000–00F DMA controller 020–021 interrupt controller 040–043 timer 200–20F game controller 2F8–2FF serial port (secondary) 320–32F hard-disk controller 378–37F parallel port 3D0–3DF graphics controller 3F0–3F7 diskette-drive controller 3F8–3FF serial port (primary) TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 12
  13. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Bộ điều khiển thiết bị nhập xuất Chu Kỳ I/O Dựa Trên Ngắt CPU I/O controller 1 device driver initiates I/O 2 initiates I/O CPU executing checks for interrupts between instructions 3 CPU receiving interrupt, 4 input ready, output transfers control to complete, or error interrupt handler generates interrupt signal 7 5 interrupt handler processes data, returns from interrupt 6 CPU resumes processing of interrupted task TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 13
  14. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Cơ chế nhập xuất Cơ Chế Nhập Xuất I Có 3 cơ chế nhập xuất: 1. Xuất nhập theo chương trình 2. Xuất nhập theo cơ chế ngắt 3. Truy xuất bộ nhớ trực tiếp (DMA) TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 14
  15. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Cơ chế nhập xuất Cơ Chế Nhập Xuất Theo Chương Trình I CPU sẽ kiểm tra định kỳ việc thực hiện yêu cầu I/O của thiết bị sau khi đưa ra yêu cầu I/O. I Trình điều khiển thiết bị không sử dụng ngắt để báo hiệu cho CPU. I CPU có thể phải chờ và kiểm tra lại. TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 15
  16. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Cơ chế nhập xuất Cơ Chế Nhập Xuất Theo Ngắt I CPU trở lại làm việc ngay sau khi đưa ra yêu cầu I/O. I Trình đ/khiển t/bị sẽ phát ra ngắt để báo hiệu cho CPU khi hoàn thành. TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 16
  17. [TT005] Ch3. Quản lý nhập xuất Mô hình tổ chức & Quản lý việc nhập xuất Cơ chế nhập xuất Truy Xuất Bộ Nhớ Trực Tiếp DMA 1. device driver is told to transfer disk data CPU to buffer at address X 5. DMA controller 2. device driver tells transfers bytes to disk controller to buffer X, increasing transfer C bytes memory address from disk to buffer cache and decreasing C at address X until C ϭ 0 DMA/bus/ 6. when C ϭ 0, DMA x interrupt CPU memory bus memory buffer interrupts CPU to signal controller transfer completion PCI bus 3. disk controller initiates IDE disk DMA transfer controller 4. disk controller sends each byte to DMA controller disk disk disk disk TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 17
  18. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 18
  19. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Giao diện ứng dụng I/O Giao Diện Ứng Dụng I/O I Các lời gọi hệ thống thu gọn các hành xử (behaviors) của thiết bị theo một số ít dạng tổng quát, che đi các khác biệt của phần cứng khác nhau. I Lớp trình điều khiển thiết bị sẽ che dấu sự khác biệt giữa các bộ điều khiển thiết bị ra khỏi nhân của hệ điều hành. I Các thiết bị I/O trong hệ thống khác nhau theo theo nhiều tiêu chí: I Luồng ký tự (character stream) hay khối (block) I Truy xuất tuần tự (sequential) hay ngẫu nhiên (random) I Đồng bộ (synchronous) hay bất đồng bộ (asynchronous) I Chia sẻ (sharable) hay tận hiến (dedicated) I Đọc (read), ghi (write) hay cả hai TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 19
  20. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Giao diện ứng dụng I/O Kiến trúc nhân I/O kernel kernel I/O subsystem software SCSI keyboard mouse PCI bus floppy ATAPI device device device • • • device device device driver driver driver driver driver driver SCSI keyboard mouse PCI bus floppy ATAPI device device device • • • device device device controller controller controller controller controller controller hardware ATAPI floppy- SCSI devices keyboard mouse • • • PCI bus disk devices (disks, drives tapes, drives) TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 20
  21. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Giao diện ứng dụng I/O Thiết bị dạng khối và ký tự I Thiết bị dạng khối: bao gồm các ổ đĩa I Đơn vị đọc/ghi là khối (block) I Các lệnh bao gồm: read, write, seek I Vào/Ra: thô (raw I/O) hay thông quan hệ thống tập tin I Có thể sử dụng kỹ thuật memory-mapped file I Thiết bị dạng ký tự: bao gồm bàn phím, chuột, cổng tuần tự I Đơn vị đọc/ghi: byte I Các lệnh bao gồm: get, put I Các thư viện hàm có thể hỗ trợ đọc/ghi theo hàng (line) TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 21
  22. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Giao diện ứng dụng I/O Nhập/Xuất Nghẽn và Không Nghẽn I Lời gọi I/O nghẽn (I/O blocking call) I Tiến trình sẽ bị nghẽn sẽ bị treo sau khi thực hiện lời gọi I/O cho đến khi thao tác I/O hoàn thành I Dễ hiểu và dễ sử dụng I Lời gọi I/O không nghẽn (I/O non-blocking call) I Tiến trình sẽ tiếp tục thực thi sau khi phát ra lời gọi I/O I Tiến trình sẽ kiểm tra việc hoàn thành của thao tác I/O bằng cách thăm dò (polling) trạng thái của thiết bị I Một biến thể của lời gọi I/O không nghẽn là lời gọi I/O dị bộ (asynchronous): tiến trình sẽ được báo hiệu khi thao tác I/O hoàn thành thông qua các biến chia sẻ, các trigger hay các hàm callback TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 22
  23. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống con I/O trong nhân (Kernel I/O subsystem) Hệ Thống Con I/O Trong Nhân I Cung cấp các dịch vụ liên quan đến I/O I Định thời (scheduling) I Một số yêu cầu I/O được xếp trong hàng đợi của từng thiết bị I Có nhiều chiến lược: công bằng hay ưu tiên I Trữ đệm (buffering): lưu dữ liệu trong bộ nhớ khi chuyển dữ liệu giữa các thiết bị I Để đối phó với sự bất đối xứng về tốc độ giữa các thiết bị I Để đối phó với sự bất tương xứng về kích thước đơn vị truyền nhận. VD: khi truyền nhận dữ liệu qua mạng, một message có thể được chia thành nhiều gói bên nhận cần có bộ đệm để “trữ” các gói ⇒ TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 23
  24. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống con I/O trong nhân (Kernel I/O subsystem) Hệ Thống Con I/O Trong Nhân I Trữ tạm (caching): bộ nhớ truy xuất nhanh, dùng để lưu bản sao của dữ liệu I Mục đích: tăng hiệu năng I Thường kết hợp với một giải thuật “dự đoán” I Spooling: là bộ đệm lưu trữ tạm dữ liệu xuất đến thiết bị I Được sử dụng trong trường hợp thiết bị chỉ có thể phục vụ 1 yêu cầu tại 1 thời điểm I Ví dụ, hệ thống spooling của máy in lưu trữ các tài liệu đang được yêu cầu in TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 24
  25. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống vào ra đĩa Hệ Thống Vào Ra Đĩa Cấu trúc một đĩa từ track t spindle arm assembly sector s cylinder c read-write head platter arm rotation TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 25
  26. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống vào ra đĩa Vấn Đề Truy Cập Đĩa I Vai trò của hệ điều hành là tăng hiệu năng sử dụng phần cứng: I Tăng băng thông: lượng dữ liệu đọc/ghi trên một đơn vị thời gian I Giảm thời gian truy cập đĩa I Thời gian truy cập = thời gian định vị + độ trễ quay I Thời gian định vị (seek time): thời gian dịch chuyển đầu đọc tới cylinder chứa sector cần đọc I Độ trễ quay (rotational latency): thời gian chờ đợi tại track chứa sector cần đọc cho đến khi sector xuất hiện dưới đầu đọc Để giảm thời gian truy cập: cực tiểu hóa thời gian định vị ⇒ TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 26
  27. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống vào ra đĩa Điều Phối Truy Cập Đĩa I Một số thuật toán điều phối truy cập đĩa: I FCFS (First Come First Served) I SSTF (Shortest Seek Time First) I SCAN I LOOK I Các ví dụ dựa trên giả thuyết: I Các yêu cầu truy cập các sector tại các cylinder: 98, 183, 37, 122, 14, 124, 65,67 I Đầu đọc đang ở cylinder 53 TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 27
  28. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống vào ra đĩa FCFS - First Come First Served Yêu cầu đến trước sẽ được phục vụ trước (98, 183, 37, 122, 14, 124, 65,67) 0 14 37 53 65 67 98 122 124 183 199 45 85 146 85 108 110 = 630 59 2 P TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 28
  29. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống vào ra đĩa SSTF - Shortest Seek Time First Chọn truy cập có thời gian định vị nhỏ nhất tính từ vị trí hiện tại (98, 183, 37, 122, 14, 124, 65,67) 0 14 37 53 65 67 98 122 124 183 199 12 2 30 23 = 236 84 24 P 53 37 14 65 67 2 → → → → → 59 TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 29
  30. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống vào ra đĩa SCAN Đầu đọc dich chuyển từ cylinder ngoài cùng đến cylinder trong cùng và quay ngược lại. Phục vụ cho các yêu cầu gặp trên đường đi (98, 183, 37, 122, 14, 124, 65,67) 0 14 37 53 65 67 98 122 124 183 199 15 23 Đầu đọc đang dịch về phía cylinder 0 14 65 = 2 ??? 31 24 P 2 59 TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 30
  31. [TT005] Ch3. Quản lý nhập xuất Cài đặt hệ thống quản lý nhập xuất Hệ thống vào ra đĩa LOOK Một sự cải tiến của SCAN: Đầu đọc không di chuyển tới các cylinders ngoài/trong cùng mà chỉ đến các y/cầu xa nhất về 2 phía rồi quay lại ngay (98, 183, 37, 122, 14, 124, 65,67) 0 14 37 53 65 67 98 122 124 183 199 = ??? P / TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 31
  32. [TT005] Ch3. Quản lý nhập xuất Truy xuất hệ thống nhập xuất Truy xuất hệ thống nhập xuất TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 32
  33. [TT005] Ch3. Quản lý nhập xuất Truy xuất hệ thống nhập xuất Các chương trình thực hiện nhập xuất Các Chương Trình Thực Hiện Nhập Xuất I Chương trình người dùng: thực hiện yêu cầu I/O thông qua các giao diện (lời gọi hệ thống) của thành phần quản lý thiết bị I/O của HĐH. I Trình điều khiển thiết bị I/O độc lập (I/O subsystem của HĐH): cung cấp giao diện đồng nhất cho các thiết bị I/O. I Trình điều khiển thiết bị (device driver): cung cấp một tập giao diện cho phép tương tác với từng thiết bị I/O (cung cấp bởi nhà sx t/bị) I Mức cao: được truy cập thông qua các lời gọi hệ thống, cài đặt một số lệnh chuẩn như open(), close(), read(), write(), I Mức thấp: được thực hiện như một thủ tục ngắt (interrupt). TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 33
  34. [TT005] Ch3. Quản lý nhập xuất Truy xuất hệ thống nhập xuất Tổ chức hệ thống nhập xuất Tổ Chức Hệ Thống Nhập Xuất I Hệ thống quản lý nhập xuất được chia thành 5 lớp: 1. Tiến trình người dùng: thực hiện các yêu cầu I/O, định dạng nhập xuất. 2. Trình điều khiển thiết bị I/O độc lập của HĐH: đặt tên, bảo vệ, tổ chức khối, bộ đệm,. . . 3. Trình điều khiển thiết bị mức cao: thiết lập các giá trị thanh ghi, kiểm tra trạng thái thiết bị, 4. Trình điều khiển thiết bị mức thấp: kích hoạt ngắt khi thao tác I/O hoàn thành. 5. Phần cứng (bộ điều khiển thiết bị, thiết bị): thực hiện thao tác I/O. TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 34
  35. [TT005] Ch3. Quản lý nhập xuất Truy xuất hệ thống nhập xuất Tổ chức hệ thống nhập xuất Chu Kỳ I/O Dựa Trên Ngắt I/O completed, chương trình request I/O user input data available, or process output completed người dùng system call return from system call kernel transfer data I/O subsystem (if appropriate) to process, can already return completion satisfy request? yes or error code trình đkhiển thiết bị độc lập no send request to device driver, block process if appropriate kernel I/O subsystem process request, issue determine which I/O commands to controller, device driver device completed, indicate state configure controller to driver change to I/O subsystem mức cao block until interrupted receive interrupt, store device driver interrupt device-controller commands data in device-driver buffer mức thấp handler if input, signal to unblock device driver interrupt device monitor device, controller I/O completed, interrupt when I/O thiết bị generate interrupt completed phần cứng time TS. Trần Công Án [TT005] Ch3. Quản lý nhập xuất 35