Phần cứng Nhập/Xuất (IO) trong OS

Một phần của tài liệu Tài liệu Hệ điều hành tiếng Việt (Trang 62)

Máy tính hoạt động trên nhiều loại thiết bị. Các loại chung bao gồm các thiết bị lưu trữ (các đĩa, các băng), các thiết bị trao đổi (các thẻ mạng hệ thống, các modem) và các thiết bị giao diện người dùng (màn hình, bàn phím, chuột). Các thiết bị khác thì đặc biệt hơn. Một thiết bị giao tiếp với hệ thống máy tính bằng việc gửi các tín hiệu thông qua một cáp hoặc thông qua không khí.

Thiết bị giao tiếp với máy móc thông qua một điểm kết nối đặt trong một cổng (port) (ví dụ: một serial port). Nếu một hoặc nhiều thiết bị sử dụng một bộ dây wire chung, sự kết nối này được gọi là bus. Một bus là một bộ thiết lập của các wire và một giao thức được xác định rõ một cách cứng nhắc mà xác định một bộ thiết lập các thông báo có thể được gửi trên các wire.

Chuỗi daisy

Khi thiết bị A có một cáp mà cắm vào trong thiết bị B, và thiết bị B có một cáp cắm vào thiết bị C, và thiết bị C cắm vào trong một port trên máy tính, sự sắp xếp này được gọi là daisy chain. Nó thường tổ chức như là một bus.

Bộ điều khiển

Là một tập hợp các thiết bị điện tử mà có thể điều hành một port, một bus, hoặc một thiết bị. Một bộ điều khiển serial port là một ví dụ của một bộ điều khiển thiết bị đơn. Đây là một chip trong máy tính mà điều khiển các tín hiệu trên các wire của một serial port.

Bộ điều khiển SCSI bus thường được thực hiện như là một bảng mạch riêng mà cắm vào trong máy tính. Nó chứa một bộ xử lý, vi cốt, và một vài bộ nhớ tư nhân để cho nó khả năng xử lý các thông báo giao thức SCSI. Một vài thiết bị có các bộ điều khiển riêng được xây dựng trong nó. Cổng I/O

Một cách đặc trưng thì I/O port chứa 4 thanh ghi được gọi là các thanh ghi trạng thái, điều khiển, dữ liệu nhập và dữ liệu ra:

STT Thanh ghi & Miêu tả

1 Thanh ghi trạng thái

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 63

thái mà có hay không các lệnh hiện tại đã hoàn thành, có hay không một byte là có sẵn để được đọc từ thanh ghi đầu vào, và có hay không đã có một thiết bị bị lỗi.

2 Thanh ghi điều khiển

Thanh ghi điều khiển này có thể được viết bởi host để bắt đầu một lệnh hoặc để thay đổi chế độ của một thiết bị. Ví dụ, một bit ngẫu nhiên trong thanh ghi điều khiển của một serial port chọn giữa sự giao tiếp full-duplex và half-duplex, cái khác cho khả năng ngang bậc kiểm soát, một bit thứ ba thiết lập độ dài từ từ 7-8 bit, các bit khác chọn một trong những tốc độ được hỗ trợ bởi serial port.

3 Thanh ghi dữ liệu nhập

Thanh ghi dữ liệu nhập được đọc bởi host để nhận dữ liệu đầu vào.

4 Thanh ghi dữ liệu ra

Thanh ghi dữ liệu ra được viết bởi host để gửi kết quả đầu ra.

Polling

Polling là một tiến trình bởi nó mà một host đợi cho bộ điều khiển phản hồi. Nó là một tiến trình lặp, đọc trạng thái thanh ghi thông qua các bit bận của thanh trạng thái đến hết. Bộ điều khiển sử dụng/thiết lập bit bận khi nó đang làm việc trên một lệnh, và làm sạch các bit bận khi nó là sẵn sàng để chấp nhận lệnh tiếp. Host báo hiệu điều nó muốn thông qua bit lệnh-sẵn sàng trong thanh lệnh. Host thiết lập bit này khi một lệnh là có sẵn cho bộ điều khiển để thực hiện.

Trong ví dụ sau, host viết kết quả đầu ra thông qua một port, mà kết nối với bộ điều khiển:

 Host lặp đi lặp lại đọc bit bận tới khi bit đó trở nên rỗng.

 Host thiết lập bit viết trong thanh lệnh và viết một byte vào trong thanh dữ liệu đầu ra.

 Host thiết lập bit lệnh-sẵn sàng.

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 64

 Bộ điều khiển đọc thanh lệnh và quan sát lệnh write.

 Nó đọc thanh dữ liệu đầu ra để nhận các byte, và thực hiện I/O tới thiết bị.

 Bộ điều khiển dọn sạch bit lệnh-sẵn sàng, dọn sạch bit lỗi trong thanh trạng thái để chỉ rằng các thiết bị I/O thực hiện thành công, và dọn sạch bit bận để chỉ rằng nó đã hoàn thành. Các thiết bị I/O

Các thiết bị I/O có thể được phân thành các loại sau:

STT Loại & Miêu tả

1 Người dùng có thể đọc (adsbygoogle = window.adsbygoogle || []).push({});

Các thiết bị người dùng có thể đọc phù hợp cho giao tiếp với người sử dụng máy tính. Các ví dụ là máy in, video, bàn phím…

2 Máy móc có thể đọc

Các thiết bị máy móc có thể đọc phù hợp cho giao tiếp với các thiết bị điện tử. Các ví dụ là các đĩa, băng, bộ điều khiển….

2 Giao tiếp

Các thiết bị trao đổi thông tin phù hợp cho giao tiếp với các thiết bị điều khiển. Các ví dụ là các đường dây dẫn kỹ thuật và các modem.

Dưới đây là sự khác nhau giữa các thiết bị I/O:

STT Tiêu chuẩn & Miêu tả

1 Tỉ lệ dữ liệu

Có thể có sự khác biệt về các bậc cường độ giữa các tỉ lệ truyền tải dữ liệu.

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 65

Các thiết bị khác nhau có sự sử dụng khác nhau trong hệ thống.

3 Tính phức tạp của điều khiển

Một đĩa thì phức tạp hơn trong khi máy in yêu cầu giao thức tương tác điều khiển đơn.

4 Đơn vị truyền tải

Dữ liệu có thể được truyền tải như là một luồng các byte hoặc các ký tự hoặc trong các khối lớn hơn.

5 Sự đại diện (mã hóa) cho dữ liệu

Các giản đồ mã hóa dữ liệu khác nhau được sử dụng cho các thiết bị khác nhau.

6 Các điều kiện lỗi

Khác nhau một cách rộng rãi cho từng thiết bị.

Sự truy cập bộ nhớ trực tiếp (DMA)

Nhiều máy tính tránh gánh nặng của CPU chính với I/O được chương trình hóa bởi việc dừng tải một vài công việc tới bộ xử lý mục đích đặc biệt. Kiểu này của bộ xử lý được gọi là một bộ điều khiển truy cập bộ nhớ trực tiếp. Một đơn vị điều khiển đặc biệt được sử dụng để truyền tải khối dữ liệu một cách trực tiếp giữa các thiết bị ngoại vi và bộ nhớ chính, mà không cần sự can thiệp của bộ xử lý. Hướng tiếp cận này được gọi là Direct Memory Access (DMA).

DMA có thể được sử dụng với phần mềm polling hoặc phần mềm ngắt. DMA là đặc biệt hữu ích trên các thiết bị như các đĩa, nơi mà rất nhiều byte thông tin có thể được truyền tải trong các hoạt động I/O đơn. Khi sử dụng với một phần mềm ngắt, CPU được thông báo chỉ sau khi cả khối của dữ liệu đã được truyền tải. Đối với mỗi byte hoặc từ được truyền tải, nó phải cung cấp địa chỉ bộ nhớ và tất các tín hiệu bus điều khiển việc truyền tải dữ liệu. Tương tác với bộ điều khiển thiết bị được quản lý thông qua một driver thiết bị.

Handshaking là một tiến trình giữa bộ điều khiển DMA và bộ điều khiển thiết bị. Nó được thực hiện thông qua các wire bằng sử dụng các mục yêu cầu DMA và sự công nhận DMA.

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 66

Bước Miêu tả

1 Driver thiết bị được chỉ dẫn để truyền tải dữ liệu từ đĩa tới một bộ đệm địa chỉ X.

2 Driver thiết bị sau đó chỉ dẫn bộ điều khiển đĩa để truyền tải dữ liệu tới bộ đệm.

3 Bộ điều khiển đĩa bắt đầu truyền tải DMA.

4 Bộ điều khiển đĩa gửi từng byte tới bộ điều khiển DMA.

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 67 (adsbygoogle = window.adsbygoogle || []).push({});

bộ nhớ, giảm bộ đếm từ C tới 0.

6 Khi C trở về 0, DMA ngắt CPU để gửi tín hiệu việc hoàn thành truyền tải.

Các bộ điều khiển thiết bị

Một hệ thống máy tính chứa nhiều kiểu thiết bị I/O và các bộ điều khiển riêng phần.

 Thẻ hệ thống

 Đầu đọc đồ họa (graphics adapter)

 Bộ điều khiển đĩa

 Bộ điều khiển DVD-ROM

 Serial port

 USB

 Thẻ âm thanh

Phần mềm Nhập/Xuất (I/O) trong OS

Một phần của tài liệu Tài liệu Hệ điều hành tiếng Việt (Trang 62)