You are on page 1of 46

Chương 5

Vào/Ra
Input/Output
5.1 Nguyên lý phần cứng Vào/Ra
5.2 Nguyên lý phần mềm Vào/Ra
5.3 Các lớp phần mềm Vào/Ra
5.4 Các thiết bị Vào/Ra: Disks,
Character-oriented terminals,
Clocks

1
5.1 Nguyên lý phần cứng Vào/Ra

2
Nguyên lý phần cứng Vào/Ra
Phân loại thiết bị Vào/Ra

Có hai nhóm chính: Thiết bị Block và thiết bị Character


• Thiết bị Block gồm các ổ đĩa
– Các lệnh (Commands) gồm: read, write, seek
– Đơn thuần Vào/Ra hay truy cập hệ thống file
– Có thể truy cập file Memory-mapped
• Thiết bị Character devices gồm bàn phím, chuột, các cổng nối
tiếp (serial ports)
– Các lệnh (Commands) gồm get, put
– Các thư viện ở lớp trên cho phép gọi thực hiện

3
Nguyên lý phần cứng Vào/Ra
Phân loại thiết bị Vào/Ra
Một số thiết bị, mạng, và tốc độ truyền dữ liệu

4
Nguyên lý phần cứng Vào/Ra
Khái niệm chung

Khái niệm chung


– Bộ điều khiển thiết bị Vào/Ra - I/O
Device Controller
– Cổng Vào/Ra - I/O Port
– Bus Vào/Ra - I/O Bus

5
Nguyên lý phần cứng Vào/Ra
Bộ điều khiển thiết bị - Device Controller
Monitor

Bus

• Các thành phần của một PC đơn giản

6
Nguyên lý phần cứng Vào/Ra
Bộ điều khiển thiết bị - Device Controller
• Thiết bị Vào/Ra có các thành phần:
– phần cơ điện tử (electromechanical)
– phần điện tử (electronic)
• Phần điện tử là bộ điều khiển thiết bị (device
controller)
– có thể điều khiển nhiều thiết bị
• Các tác vụ của bộ điều khiển (vd: Controller's
tasks Disk)
– chuyển luồng bit thành khối bytes
– điều khiển lỗi khi cần thiết
– chuyển dữ liệu vào bộ nhớ chính
7
Nguyên lý phần cứng Vào/Ra
Cổng Vào/Ra - I/O Port

Cổng Vào/Ra là một thanh ghi giao tiếp với thiết bị


Ví dụ: Các cổng Vào/Ra trên PC

8
Nguyên lý phần cứng Vào/Ra
Cấu trúc Bus trên PC

9
Nguyên lý phần cứng Vào/Ra
Địa chỉ Vào/Ra - I/O address

• Lệnh Vào/Ra trên bộ điều khiển thiết bị


• Các thiết bị có các địa chỉ được dùng bởi:
– Các lệnh Vào/Ra trực tiếp
– Ánh xạ bộ nhớ

1
Nguyên lý phần cứng Vào/Ra
Ánh xạ bộ nhớ (1)

• (a) Separate I/O and memory space


• (b) Memory-mapped I/O
• (c) Hybrid
1
Nguyên lý phần cứng Vào/Ra
Ánh xạ bộ nhớ (2)

(a) A single-bus architecture


(b) A dual-bus memory architecture
1
Nguyên lý phần cứng Vào/Ra
Phương pháp truyền dữ liệu giữa CPU
với thiết bị Vào/Ra

Có 3 phương pháp truyền dữ liệu Vào/Ra:


• Lập trình Vào/Ra - Programmed I/O
• Ngắt - Interrupt-Driven I/O
• Truy cập bộ nhớ trực tiếp - Direct Memory Access

1
Nguyên lý phần cứng Vào/Ra
Programmed I/O, Polling

• Chỉ ra trạng thái của thiết bị


– Sẵn sàng - ready
– Bận - busy
– Lỗi - Error
• Vòng lặp chờ bận (Busy-wait cycle) để chờ
thiết bị Vào/Ra

1
Nguyên lý phần cứng Vào/Ra
Ngắt - Interrupt-Driven I/O

How interrupts happens. Connections between devices and interrupt controller


actually use interrupt lines on the bus rather than dedicated wires

1
Nguyên lý phần cứng Vào/Ra
Ví dụ: Hệ thống Ngắt của PC

1
Nguyên lý phần cứng Vào/Ra
Truy cập bộ nhớ trực tiếp (DMA)

Quá trình vận hành của DMA


1
Nguyên lý phần cứng Vào/Ra
Ví dụ: DMA truyền trên PC

1
5.2 Nguyên lý phần mềm Vào/Ra

1
Nguyên lý phần mềm Vào/Ra
Mục đích của phần mềm Vào/Ra (1)
• Độc lập thiết bị
– chương trình có thể truy cập đến bất kỳ thiết bị nào
– không phân biệt sự khác nhau về mặt vật lý cũng như
tính hiện đại (floppy, hard drive, hay CD-ROM)
• Đặt tên chung
– tên của file hay thiết bị là string hay integer
– không phụ thuộc vào phần cứng
• Có khả năng xử lý Lỗi
– Xử lý càng gần với phần cứng càng tốt

2
Nguyên lý phần mềm Vào/Ra
Mục đích của phần mềm Vào/Ra (2)
• Truyền dữ liệu đồng bộ với không đồng bộ
– blocked transfers vs. interrupt-driven
• Định bộ đệm
– dữ liệu sắp tới thiết bị không được lưu lên thiết
bị
• Chia sẻ với dùng riêng
– Disk có thể chia sẻ
– tape drives không thể chia sẻ

2
Nguyên lý phần mềm Vào/Ra
Programmed I/O (1)

Steps in printing a string

2
Nguyên lý phần mềm Vào/Ra
Programmed I/O (2)

Viết 1 chuỗi lên máy in sử dụng programmed I/O

2
Nguyên lý phần mềm Vào/Ra
Interrupt-Driven I/O

• Viết một chuỗi lên máy in sử dụng interrupt-driven I/O


– (a) Code executed when print system call is made
– (b) Interrupt service procedure

2
Nguyên lý phần mềm Vào/Ra
Vào/Ra sử dụng DMA

• In một chuỗi sử dụng DMA


– (a) code executed when the print system call is
made
– (b) interrupt service procedure

2
Cấu trúc của Kernel I/O:
Phần cứng và Phần mềm

2
5.3 Các lớp phần mềm
Vào/Ra

2
Các lớp phần mềm Vào/Ra

Hệ thống phân lớp của phần mềm Vào/Ra

2
Các lớp phần mềm Vào/Ra
Bộ điều khiển Ngắt - Interrupt Handlers (1)
• Bộ điều khiển Ngắt ẩn sâu bên dưới gần với phần cứng
thiết bị
– driver bắt đầu chặn thao tác Vào/Ra cho đến khi ngắt
thông báo hoàn thành
• Thủ tục Ngắt thực hiện tác vụ của nó
– sau đó khôi phục driver
• Các bước cần phải được thực hiện trong phần mềm sau
khi ngắt hoàn tất
1. Lưu các thanh ghi không được lưu bởi phần cứng của
ngắt
2. Thiết lập ngữ cảnh cho thủ tục phục vụ ngắt

2
Các lớp phần mềm Vào/Ra
Bộ điều khiển Ngắt - Interrupt Handlers (2)

3. Thiết lập ngăn xếp cho thủ tục phục vụ ngắt


4. Ack ngắt bộ điều khiển, các ngắt kết nối lại
5. Copy các thanh ghi mà ở đó lưu bảng tiến trình
6. Chạy thủ tục phục vụ ngắt
7. Thiết lập ngữ cảnh MMU để chạy tiến trình tiếp
theo
8. Tải các thanh ghi của tiến trình mới
9. Bắt đầu chạy tiến trình mới

3
Các lớp phần mềm Vào/Ra
Các trình điều khiển thiết bị – Device Drivers

• Vị trí logic của trình điều khiển thiết bị được hiển thị như hình
• Giao tiếp giữa các driver và các bộ điều khiển thiết bị qua bus

3
Các lớp phần mềm Vào/Ra
Phần mềm Vào/Ra độc lập với thiết bị –
Device Independent I/O Software (1)

Giao diện chung với device drivers

Định bộ đệm

Thông báo lỗi

Cấp phát và giải phóng thiết bị

Chức năng
Cung cấpcủa phần
kích mềmkhối
thước Vào/Ra độc lập với thiết bị
3
Các lớp phần mềm Vào/Ra
Phần mềm Vào/Ra độc lập với thiết bị –
Device Independent I/O Software (2)

(a) Giao diện không chuẩn


(b) Giao diện chuẩn
3
Các lớp phần mềm Vào/Ra
Phần mềm Vào/Ra độc lập với thiết bị –
Device Independent I/O Software (3)

(a) Unbuffered input


(b) Buffering in user space
(c) Buffering in the kernel followed by copying to user space
(d) Double buffering in the kernel

3
Các lớp phần mềm Vào/Ra
Phần mềm Vào/Ra độc lập với thiết bị –
Device Independent I/O Software (4)

Kết nối mạng có thể gồm nhiều bản sao

3
Phần mềm Vào/Ta không gian User

Các lớp của hệ thống Vào/Ra và các chức năng chính của mỗi lớp

3
5.4 Thiết bị Vào/Ra

3
I/O devices

• Thiết bị lưu trữ: Hard Disks, CD-ROM,


CD-R, DVD…
• Thiết bị hiển thị: Character-oriented
terminals, Graphical user interfaces
• Đồng hồ - Clocks

3
Phần cứng Đĩa - Disk Hardware (1)

3
Phần cứng Đĩa - Disk Hardware (2)

• Raid levels 0 through 2


• Backup and parity drives are shaded
4
Phần cứng Đĩa -Disk Hardware (3)

• Raid levels 3 through 5


• Backup and parity drives are shaded
4
Phần cứng màn hình - Display Hardware (1)

Parallel port

Memory-mapped displays
• driver writes directly into display's video RAM

4
Phần cứng màn hình - Display Hardware (2)

4
Phần cứng màn hình - Display Hardware (3)

4
Character Oriented Terminals
RS-232 Terminal Hardware

• An RS-232 terminal communicates with computer 1 bit at a time


• Called a serial line – bits go out in series, 1 bit at a time
• Windows uses COM1 and COM2 ports, first to serial lines
• Computer and terminal are completely independent
4
Clocks
Clock Hardware

A programmable clock

You might also like