Bài giảng Nguyên lý hệ điều hành - Nguyễn Hải Châu - Tuần 10: Hệ vào/ra

Phần cứng vào/ra

zCó rất nhiều loại thiết bị vào/ra

zCác khái niệm chung

z Port (cổng vào/ra)

z Bus

z Controller

zCác vi lệnh điều khiển thiết bị vào/ra

zThiết bị vào/ra có địa chỉ được sửdụng bởi:

z Các lệnh vào/ra trực tiếp

z Vào/ra thông qua ánh xạbộnhớ

pdf6 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 1923 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Nguyên lý hệ điều hành - Nguyễn Hải Châu - Tuần 10: Hệ vào/ra, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
11
Nguyên lý hệ điều hành
Nguyễn Hải Châu
Khoa Công nghệ Thông tin
Trường Đại học Công nghệ
2
Hệ vào/ra
Phần cứng
Giao diện vào/ra với ứng dụng
Hệ vào/ra của nhân
Chuyển yêu cầu vào/ra thành thao tác 
phần cứng
Streams
Các vấn đề về hiệu năng
3
Phần cứng vào/ra
z Có rất nhiều loại thiết bị vào/ra
z Các khái niệm chung
z Port (cổng vào/ra)
z Bus
z Controller
z Các vi lệnh điều khiển thiết bị vào/ra
z Thiết bị vào/ra có địa chỉ được sử dụng bởi:
z Các lệnh vào/ra trực tiếp
z Vào/ra thông qua ánh xạ bộ nhớ
4
Cấu trúc bus của máy PC
5
Một số địa chỉ vào/ra của PC
6
Polling
z Xác định trạng thái của thiết bị:
z command-ready (lệnh sẵn sàng?)
z busy (bận?)
z Error (lỗi?)
z Thực hiện vòng lặp chờ bận để chờ vào/ra 
với thiết bị
27
Interrupts (ngắt)
z Thiết bị vào/ra kích hoạt đường yêu cầu ngắt 
CPU
z Bộ thao tác ngắt nhận ngắt
z CPU có thể bỏ qua hoặc làm trễ việc xử lý 
một số ngắt
z Vector ngắt giúp CPU tìm được hàm xử lý 
ngắt
z Dựa trên độ ưu tiến
z Một số ngắt là không che được (unmaskable)
z Cơ chế ngắt có thể dùng cho exceptions 8
Chu kỳ vào/ra với ngắt
9
Bảng vector ngắt của BXL Intel
10
Truy cập bộ nhớ trực tiếp
z Thuật ngữ: Direct memory access (DMA)
z Được sử dụng để tránh lập trình vào/ra với 
dung lượng dữ liệu lớn
z Phần cứng cần có: Bộ điều khiển DMA
z CPU truyền dữ liệu trực tiếp giữa bộ nhớ và
thiết bị vào/ra
11
Quá trình 6 bước thực hiện vào/ra 
theo DMA
12
Giao diện vào/ra với ứng dụng
z Các hàm hệ thống vào/ra của một thiết bị được 
đóng gói trong các class chung
z Tầng điều khiển thiết bị (device-driver layer) che 
đi sự khác biệt giữa các bộ điều khiển vào/ra 
z Có nhiều loại thiết bị căn cứ theo các tiêu chí:
z Character-stream / block
z Sequential / random-access
z Sharable / dedicated
z Speed of operation
z read-write / read only / write only
313
Cấu trúc vào ra của nhân
14
Đặc tính các thiết bị vào/ra
15
Các thiết bị block và character
z Các thiết bị block (ví dụ đĩa cứng):
z Các lệnh làm việc: read, write, seek 
z Có thể thực hiện vào/ra theo chế độ raw I/O hoặc 
thông qua truy cập hệ thống tệp
z Có thể truy cập qua tệp memory-mapped (ánh xạ
bộ nhớ)
z Các thiết bị character (ví dụ bàn phím, chuột, 
cổng COM):
z Các lệnh làm việc: get, put
z Bổ sung thư viện cho phép làm việc theo dòng 
(line)
16
Các thiết bị mạng
z Có thể là thiết bị block hoặc character 
z Unix và Windows NT/9i/2000 có giao diện lập 
trình socket
z Tách biệt giao thức mạng với các thao tác mạng
z Có tính năng select
z Nhiều cách tiếp cận vào/ra (pipes, FIFOs, 
streams, queues, mailboxes)
17
Đồng hồ (clock) và timer
z Cung cấp thông tin về giờ hiện tại, giờ đã trôi 
qua, timer
z Nếu phần cứng clock/timer lập trình được:Có
thể tạo ngắt định kỳ (Cần cho các hệ time-
sharing)
18
Vào/ra blocking và nonblocking
z Blocking – Tiến trình treo đến khi vào/ra hoàn 
thành
z Dễ hiểu, dễ sử dụng
z Không đủ đối với một số loại yêu cầu vào/ra
z Nonblocking – Hàm vào/ra trả lại kết quả
ngay không cần vào/ra hoàn thành
z Giao diện NSD, copy dữ liệu có buffered vào/ra
z Được cài đặt qua kỹ thuật đa luồng
z Trả lại ngay số byte được đọc/ghi
419
Vào/ra không đồng bộ
z Asynchronous (không đồng bộ): Tiến trình 
chạy trong khi vào/ra đang được thực hiện
z Khó sử dụng
z Hệ vào/ra gửi tín hiệu cho tiến trình khi vào/ra 
hoàn thành
20
Hệ vào/ra của nhân
z Lập lịch
z Một số yêu cầu vào/ra được phục vụ thông qua 
hàng chờ vào/ra của từng thiết bị
z Một số HĐH cố gắng đảm bảo tính công bằng
z Tạo vùng đệm lưu dữ liệu trong bộ nhớ khi 
truyền dữ liệu giữa các thiết bị:
z Khắc phục sự khác nhau về tốc độ của các thiết bị
z Khắc phục sự khác nhau về độ dài gói dữ liệu
z Để duy trì ngữ nghĩa copy
21
Tốc độ truyền dữ liệu của các 
thiết bị trên Sun Enterprise 6000
22
Hệ vào/ra của nhân
z Caching – Bộ nhớ tốc độ cao chứa các bản 
copy của dữ liệu
z Dữ liệu luôn là bản copy
z Cải thiện đáng kể hiệu năng hệ thống
z Spooling –Lưu dữ liệu ra (output) cho một thiết 
bị
z Sử dụng khi thiết bị chỉ phục vụ được một yêu cầu 
tại một thời điểm
z Ví dụ: Máy in
23
Hệ vào/ra của nhân
z Cung cấp khả năng sử dụng “độc quyền” một 
thiết bị
z Hàm hệ thống: cấp phát và giải phóng thiết bị
z Cơ chế chống bế tắc
24
Xử lý lỗi
z HĐH có thể khôi phục lỗi gây ra do đọc đĩa, 
thiết bị chưa sẵn sàng, ghi lỗi... 
z Khi có lỗi vào/ra: Hàm điều khiển trả lại mã 
lỗi
z Hệ thống có log ghi lại các lỗi vào/ra
525
Cấu trúc dữ liệu của nhân
z Nhân giữ các thông tin trạng thái cho các thành 
phần của hệ vào/ra, bao gồm bảng các mở tệp, kết 
nối mạng, trạng thái các thiết bị character
z Nhiều cấu trúc dữ liệu phức tạp để lưu vết các vùng 
đệm, cấp phát bộ nhớ, các khối nhớ rỗi... 
z Một số HĐH sử dụng phương pháp hướng đối 
tượng và message-passing để cài đặt hệ vào/ra
26
Cấu trúc vào/ra trong nhân UNIX
27
Chuyển đổi yêu cầu vào/ra 
thành thao tác phần cứng
z Giả sử một tiến trình đọc tệp từ đĩa cứng. 
Các bước thực hiện như sau:
z Xác định thiết bị chứa tệp
z Biến đổi tên tệp thành dạng biểu diễn của tệp trên 
thiết bị
z Đọc dữ liệu (vật lý) từ đĩa vào vùng đệm
z Cho phép tiến trình được đọc dữ liệu từ vùng 
đệm
z Trả lại điều khiển cho tiến trình
28
Thực hiện một yêu cầu vào/ra
29
STREAMS
z STREAM – kênh liên lạc full-duplex giữa một 
tiến trình của NSD và một thiết bị
z Một STREAM gồm có:
- STREAM head dùng để giao tiếp với tiến 
trình của NSD
- driver end giao tiếp với thiết bị
- n STREAM module giữa head và end (n≥0).
z Mỗi module có một read queue và một 
write queue
z Message passing được sử dụng để truyền 
thông giữa các queue
30
Cấu trúc STREAMS
631
Hiệu năng
z Vào/ra là yếu tố chính ảnh hưởng đến hiệu 
năng của hệ thống:
z Yêu cầu CPU thực hiện mã vào/ra của driver, mã 
vào/ra của kernel
z Thực hiện Context switch khi có ngắt
z Copy dữ liệu
z Truyền dữ liệu mạng
32
Truyền thông giữa các máy tính
33
Cải tiến hiệu năng
z Giảm số lượng các context switches
z Giảm copy dữ liệu
z Giảm số lần ngắt bằng cách truyền lượng lớn 
dữ liệu trong mỗi lần vào/ra, dùng controller 
thông minh...
z Sử dụng DMA
z Cân bằng tải giữa hiệu năng CPU, bộ nhớ,
bus, và vào/ra để đạt thông lượng tốt nhất
34
Chức năng các thiết bị
35
Các vấn đề cần nhớ
z Giao diện vào/ra với ứng dụng
z Hệ vào/ra của nhân HĐH
z Streams
z Các vấn đề về hiệu năng hệ thống chịu ảnh 
hưởng của vào/ra

File đính kèm:

  • pdfBài giảng Nguyên lý hệ điều hành - Nguyễn Hải Châu - Tuần 10 Hệ vàora.pdf