CỦA NHÓM 3
CHÀO MỪNG VÌ
ĐÃ ĐẾN VỚI BÀI
THUYẾT TRÌNH
Mã SV Tên Nhiệm vụ Hoàn thành
052205001988 Nguyễn Ngọc Toàn Performance 100%
052205001149 Nguyễn Hà Thanh Kernel I/O Subsystem 100%
052205006444 Hồ Nguyễn Thiên Hào Application I/O Interface 100%
052205009200 Nguyễn Đức Thịnh I/O Hardware 100%
051205011311 Nguyễn Minh Hiển Overview, Summary 100%
052205010197 Võ Xuân Vỹ Streams 100%
052205007577 Võ Trung Trực
Transforming I/O Requests to
Hardware Operations 100%
CHỦ ĐỀ:
HỆ THỐNG VÀO
RA
Tóm
tắt
Trả lời câu hỏi
nhóm đặt ra
Nội dung lý
thuyết
Ôn tập
0
1
03
02
Tổng quan về
Quản lý Thiết
Bị I/O.
1. Giới
thiệu.
📌 Thiết bị I/O giúp nhập và xuất dữ liệu giữa người
dùng và máy tính.
📌 Thách thức: Các thiết bị này có tốc độ và chức
năng rất khác nhau.
📌 Mục tiêu của quản lý I/O: Đảm bảo hiệu suất,
ổn định và tương thích giữa phần cứng và phần
mềm.
Hình ảnh sơ đồ hệ
thống I/O trong
máy tính.
Hình ảnh các loại thiết bị ngoại vi
(chuột, bàn phím, ổ cứng, máy in, cáp
mạng...).
2. Tầm Quan
Trọng của Quản
Lý Thiết Bị I/O.
Đảm bảo thiết bị có thể giao tiếp với
CPU mà không bị xung đột.
Tối ưu hóa tốc độ xử lý và giảm tải cho
CPU.
Giúp hệ thống hoạt động trơn tru và
hiệu quả.
Nội
dung:
📌 Thách thức:
3. Sự Đa Dạng
của Thiết Bị
I/O.
✔ Thiết bị
nhập.
✔ Thiết bị
xuất.
✔ Thiết bị
lưu trữ.
✔ Thiết bị
mạng.
📌 Các thiết bị I/O có thể chia thành nhiều nhóm:
Một số thiết bị cần phản hồi nhanh
(chuột, bàn phím), số khác có thể hoạt
động chậm hơn (ổ cứng, máy in).
• Hệ điều hành phải có cơ chế điều phối
phù hợp với từng loại thiết bị.
4. Hệ Thống
Con I/O trong
Kernel.
✔ Tách biệt phần cứng và phần mềm.
✔ Cung cấp giao diện lập trình thống
nhất (System Calls).
✔ Quản lý thiết bị hiệu quả hơn, tránh
xung đột.
Gợi ý hình ảnh minh họa: Sơ đồ
kernel và hệ thống con I/O.
5. Các Dịch Vụ
Quản Lý I/O
Quan Trọng.
Lập lịch I/O (I/O Scheduling)
Bộ đệm (Buffering)
Bộ nhớ đệm (Caching):
Xử lý hàng đợi (Spooling):
STREAMS - Phương pháp tiếp cận hiện đại
🔹 Dịch tên (Name Translation)
12.2 Hệ Thống I/O Trong Máy Tính
Trong phần này, chúng ta sẽ khám phá cách các
thiết bị ngoại vi, từ những thiết bị quen thuộc như
bàn phím và chuột đến các ổ cứng và card mạng
phức tạp hơn, giao tiếp với máy tính của chúng ta.
Phần Cứng I/O: Giới Thiệu Tổng Quan
Thiết Bị Lưu Trữ
Đĩa cứng (HDD) và ổ đĩa thể rắn
(SSD) là các thiết bị lưu trữ dữ
liệu quan trọng. Băng từ cũng
được sử dụng trong một số hệ
thống lưu trữ lớn.
Thiết Bị Truyền Tải
Kết nối mạng (Ethernet, Wi-Fi) và
Bluetooth cho phép máy tính giao
tiếp với các thiết bị và mạng khác.
Thiết Bị Giao Diện
Màn hình, bàn phím, chuột, loa và
microphone là các thiết bị giao
diện người dùng, giúp người dùng
tương tác với máy tính.
I. Các loại thiết bị I/O trong máy tính:
II.Cổng và Bus: Kết Nối Thiết Bị Với Máy Tính
Cổng (Port)
Cổng là điểm kết nối giữa các
thiết bị ngoại vi và máy tính
Bus
Bus là một nhóm dây điện và
giao thức cho phép truyền tải
tín hiệu giữa các thiết bị và
máy tính, giúp tiết kiệm
không gian và tài nguyên.
Daisy Chain
Daisy Chain là kiểu kết nối chuỗi các thiết bị, giúp tiết kiệm dây
cáp và đơn giản hóa kết nối, thường thấy trong các hệ thống nhiều
màn hình.
a. Các Loại Bus Phổ Biến Trong Máy Tính
PCIe
PCIe là bus phổ biến,
kết nối CPU và bộ nhớ
với các thiết bị nhanh
như card đồ họa và
SSD, cung cấp băng
thông cao.
Bus Mở Rộng
Bus mở rộng kết nối
các thiết bị chậm hơn
như bàn phím, chuột
và cổng USB, đảm bảo
kết nối ổn định.
SAS(Serial Attached SCSI)
SAS được sử dụng để
kết nối nhiều ổ đĩa với
nhau, thường dùng
trong các hệ thống lưu
trữ dữ liệu lớn.
b.Cấu Trúc của PCIe và Lane
Lane trong PCIe
Các bus như PCIe sử dụng "lane" để truyền tải dữ
liệu, với mỗi lane có thể gửi dữ liệu song song theo
hình thức truyền tải hai chiều.
Nhiều Lane
PCIe có thể sử dụng nhiều lane cùng lúc, ví dụ: x1,
x8, x16, để tăng tốc độ truyền tải dữ liệu.
Truyền Tải Dữ Liệu
Mỗi lane trong PCIe bao gồm 4 dây điện, hoạt động
song song hai chiều (full-duplex), giúp truyền tải dữ
liệu nhanh chóng.
III.Controller trong Hệ Thống I/O
Controller
Controller là mạch điện tử điều
khiển các cổng, bus hoặc thiết bị
trong hệ thống, giúp truyền tải
tín hiệu và xử lý dữ liệu.
1
Quản Lý Giao Tiếp
Controller giúp quản lý việc giao
tiếp với các bus như SAS hoặc
SATA, thực hiện các tác vụ như
xử lý lỗi và lưu trữ bộ nhớ đệm.
2
Tích Hợp
Nhiều thiết bị, như ổ đĩa cứng, có
một controller tích hợp bên trong
để tối ưu hiệu suất.
3
IV.Memory-Mapped I/O: Giao Tiếp Thông Qua Bộ Nhớ
1
Memory-Mapped I/O
Memory-Mapped I/O là ph ng th c giao ti p gi a CPU và b đi u khi n thi t b thông qua b
ươ ứ ế ữ ộ ề ể ế ị ộ
nh , giúp đ n gi n hóa và tăng t c quá trình giao ti p.
ớ ơ ả ố ế
2
Thanh Ghi Điều Khiển
CPU giao ti p v i b đi u khi n b ng cách đ c và ghi vào các thanh ghi này,
ế ớ ộ ề ể ằ ọ
thông qua các l nh chu n đ truy c p vào các thanh ghi đi u khi n trong
ệ ẩ ể ậ ề ể
không gian b nh .
ộ ớ
IV.Memory-Mapped I/O: Giao Tiếp Thông Qua Bộ Nhớ
4 Các thanh ghi điều khiển thiết bị bao gồm Data-in Register, Data-out Register, Status
Register và Control Register.
5
FIFO (First In, First Out)
Một số bộ điều khiển sử dụng FIFO để lưu trữ tạm thời dữ liệu, giúp bộ điều
khiển xử lý một lượng nhỏ dữ liệu đầu vào hoặc đầu ra, tăng hiệu suất.
6
Lợi ích của Memory-Mapped I/O
Tăng tốc độ và hiệu quả, giảm thiểu sự phức tạp khi sử dụng
các lệnh I/O, dễ dàng thao tác với các thanh ghi điều khiển
Thanh Ghi Điều Khiển
V.Polling và Nhược Điểm
1 Polling
Polling là một phương thức trong hệ
điều hành, trong đó CPU định kỳ kiểm
tra trạng thái của bộ điều khiển hoặc
thiết bị ngoại vi để xác định liệu có sự
kiện hoặc dữ liệu mới cần xử lý không.
2 Nhược Điểm
Host phải kiểm tra liên tục bit
busy, điều này có thể gây
lãng phí tài nguyên CPU, có
thể xảy ra vấn đề với các
thiết bị có dữ liệu đến liên tục
3 Ngắt thay thế Polling
Khi polling không hiệu quả, hệ thống có thể sử dụng ngắt
để bộ điều khiển thông báo cho CPU khi thiết bị sẵn sàng
phục vụ. Ngắt giúp giảm việc phải polling liên tục và cải
thiện hiệu suất CPU
VI.Cơ Chế Ngắt và DMA trong
Hệ Thống Máy Tính
Chúng ta sẽ khám phá cách các ngắt được quản lý để xử lý các sự
kiện quan trọng và cách DMA giúp giảm tải cho CPU trong quá
trình chuyển giao dữ liệu lớn.
1.Cơ Chế Ngắt Cơ Bản
Interrupt-request line
Dây tín hiệu yêu cầu ngắt mà CPU kiểm tra sau mỗi
lệnh thực thi. Khi phát hiện tín hiệu yêu cầu ngắt từ bộ
điều khiển, CPU lưu trạng thái hiện tại và chuyển đến
routine xử lý ngắt tại một địa chỉ cố định trong bộ nhớ
Interrupt handler
Routine xử lý ngắt xác định nguyên nhân của ngắt,
thực hiện các xử lý cần thiết, khôi phục trạng thái
trước ngắt và tiếp tục thực thi các lệnh tiếp theo.
Cơ chế ngắt là một phần quan trọng của hệ thống máy tính, cho phép CPU phản ứng với các sự kiện bên ngoài một
cách hiệu quả. Interrupt-request line và interrupt handler là hai thành phần chính của cơ chế này.
a.Quy Trình Ngắt Cơ Bản
Kích hoạt ngắt
Bộ điều khiển kích hoạt ngắt bằng cách gửi tín hiệu
yêu cầu ngắt đến CPU.
CPU "catch" ngắt
CPU nhận ngắt và chuyển đến routine xử lý ngắt tương ứng.
"Clear" ngắt
Sau khi hoàn thành, ngắt được "clear" khi bộ điều
khiển được phục vụ xong.
Quy trình ngắt bao gồm ba bước chính: kích hoạt ngắt, CPU
"catch" ngắt và "clear" ngắt. Quá trình này đảm bảo rằng các sự
kiện quan trọng được xử lý một cách kịp thời và hiệu quả.
Activate
Catch
Clear
b.Quản Lý Ngắt Trong Hệ Thống Hiện Đại
1 Deferred interrupt handling
Trì hoãn xử lý ngắt trong quá trình xử lý quan
trọng để đảm bảo tính toàn vẹn của dữ liệu.
2 Dispatching interrupts
Xử lý ngắt hiệu quả mà không cần polling tất cả
các thiết bị, giúp giảm tải cho CPU.
3 Multilevel interrupts
Phân biệt ngắt cao và thấp ưu tiên, giúp hệ điều
hành phản hồi với độ khẩn cấp phù hợp.
4 Traps
Các ngắt xảy ra do lỗi hệ thống như lỗi chia cho
0 hoặc truy cập bộ nhớ không hợp lệ.
Trong hệ thống hiện đại, việc quản lý ngắt đòi hỏi các tính năng phức tạp hơn để đảm bảo hiệu suất và độ tin cậy.
Các tính năng như deferred interrupt handling, dispatching interrupts, multilevel interrupts và traps đóng vai trò
quan trọng trong việc quản lý ngắt.
c.Các Loại Ngắt
1 Nonmaskable interrupt
Ngắt không thể tắt, thường dùng cho các lỗi
không thể phục hồi như lỗi bộ nhớ.
2 Maskable interrupt
Ngắt có thể tắt trước khi thực hiện các lệnh quan
trọng để tránh bị gián đoạn.
3 Interrupt vector
Một bảng địa chỉ lưu trữ các địa chỉ của các
routine xử lý ngắt, giúp CPU nhanh chóng tìm
đến đúng routine mà không cần quét tất cả các
ngắt
2.Direct Memory Access (DMA)
Giảm tải cho CPU
DMA giúp giảm tải công việc
cho CPU khi thực hiện các
chuyển giao dữ liệu lớn.
Bộ điều khiển đặc biệt
DMA sử dụng một bộ điều
khiển đặc biệt để thực hiện
chuyển giao dữ liệu trực tiếp
giữa bộ nhớ và thiết bị.
Không cần can thiệp của CPU
DMA thực hiện chuyển giao dữ
liệu mà không cần sự can thiệp
của CPU.
Direct Memory Access (DMA) là một cơ chế quan trọng giúp giảm tải cho CPU trong quá trình chuyển giao dữ
liệu lớn. DMA sử dụng một bộ điều khiển đặc biệt để thực hiện chuyển giao dữ liệu trực tiếp giữa bộ nhớ và thiết
bị mà không cần sự can thiệp của CPU.
Khởi Tạo DMA
CPU tạo command block, chứa thông tin nguồn và đích, cùng số
byte cần chuyển. Command block hỗ trợ scatter-gather, thực hiện
nhiều chuyển giao trong một lệnh. CPU ghi command block vào
bộ nhớ.
a.Quá trình DMA:
Hoạt Động của DMA
Ghi Địa Chỉ
CPU ghi địa chỉ command block vào bộ điều khiển DMA.
Tiếp Tục Công Việc
CPU tiếp tục công việc khác.
Chiếm Quyền Memory Bus
Bộ điều khiển DMA chiếm quyền sử dụng memory bus.
Chuyển Giao Dữ Liệu
DMA thực hiện chuyển giao dữ liệu trực tiếp, không
cần CPU can thiệp.
b.Tác Động của DMA Đến CPU và Bộ Nhớ
1
Memory Bus Seizing
Khi bộ điều khiển DMA chiếm memory bus,
CPU sẽ không thể truy cập vào bộ nhớ chính
trong một thời gian ngắn. 2 Cycle Stealing
Việc chiếm memory bus tạm thời có thể làm
giảm tốc độ tính toán của CPU.
3
Cải thiện hiệu suất hệ thống
Việc offload công việc chuyển giao dữ liệu cho
bộ điều khiển DMA giúp cải thiện tổng thể
hiệu suất hệ thống.
DMA có tác động đáng kể đến CPU và bộ nhớ. Mặc dù việc chiếm memory bus tạm thời có thể làm giảm tốc độ
tính toán của CPU, nhưng việc offload công việc chuyển giao dữ liệu cho bộ điều khiển DMA giúp cải thiện tổng
thể hiệu suất hệ thống.
12.3 Giao diện I/O ứng dụng
Các kỹ thuật
cấu trúc và
giao diện
cho hệ điều
hành.
Cho phép các
thiết bị I/O
được xử lý
theo cách tiêu
chuẩn và
đồng nhất.
Cấu trúc I/O của kernel
Trừu tượng hóa, đóng gói và
phân lớp phần mềm.
Trình điều khiển thiết bị ẩn các khác
biệt giữa các bộ điều khiển thiết bị
khỏi hệ thống con I/O của kernel.
Đặc điểm của Thiết bị I/O
Luồng ký tự hoặc khối
Truy cập tuần tự hoặc ngẫu nhiên
Đồng bộ hoặc không đồng bộ
Chia sẻ được hoặc chuyên dụng
Tốc độ hoạt động
Đọc-ghi, chỉ đọc, ghi một lần
Truy cập ổ
đĩa và các
thiết bị
hướng khối
khác.
Truy cập thiết
bị như bàn
phím, chuột.
Cung cấp
quyền truy cập
vào bộ nhớ đĩa
thông qua một
mảng byte
trong bộ nhớ
chính.
Giao diện
socket cho
phép tạo, kết
nối, lắng nghe,
gửi và nhận
gói tin.
Truy cập đồng
hồ thời gian
trong ngày, bộ
định thời, hiển
thị đồ họa,
video và thiết
bị âm thanh.
12.3.1 Thiết bị Khối và Thiết bị Ký tự
I/O khối I/O luồng ký tự
Truy cập tệp ánh
xạ bộ nhớ
Ổ cắm mạng Các lệnh gọi hệ
thống đặc biệt
Các kiểu truy cập Thiết bị I/O
Thiết bị khối và thiết bị ký tự
1 2 3
Giao diện
thiết bị
khối: Các
lệnh read(),
write(),
seek().
I/O thô và
I/O trực tiếp:
Truy cập
thiết bị trực
tiếp mà
không qua
hệ thống tập
tin.
Truy cập tập
tin ánh xạ bộ
nhớ: Ánh xạ
tập tin vào
bộ nhớ,
truyền dữ
liệu khi cần
thiết.
12.3.2 Thiết bị Mạng
Giao diện socket mạng
Trả về thông tin về socket nào có gói tin chờ nhận hoặc có chỗ
trống để gửi gói tin.
Hàm select() để quản lý socket
Tạo socket, kết nối, lắng nghe, gửi và nhận gói tin.
12.3.3 Đồng hồ và Bộ định thời
Cung cấp
thời gian
hiện tại,
thời gian
đã trôi
qua.
Đặt bộ
định thời
để kích
hoạt hoạt
động X tại
thời điểm
T.
Bộ định
thời
khoảng
thời gian
lập trình
được: Tạo
ngắt sau
khoảng
thời gian
nhất
định.
12.3.4 I/O Không Chặn và Bất Đồng Bộ
I/O
chặn
Luồng gọi bị tạm dừng cho đến khi
lệnh gọi hệ thống hoàn thành.
I/O
không
chặn
Lệnh gọi hệ thống trả về ngay lập tức
với số byte đã truyền.
Lệnh
gọi hệ
thống
bất
đồng bộ
Trả về ngay lập tức, hoàn thành I/O
vào thời điểm tương lai.
12.3.5 I/O Vector
I/O Vector
(Vectored
I/O): Lệnh
gọi hệ
thống
readv của
UNIX.
Tính
nguyên tử
của I/O
Vector:
Đảm bảo
tất cả các
hoạt động
I/O được
thực hiện
mà không
bị gián
đoạn.
Phương pháp
scatter-gather:
Truyền dữ
Liệu từ nhiều
bộ đệm
thông qua
một lệnh gọi
hệ thống
duy nhất.
12.4 Hệ thống con I/O của Kernel
1. Chức năng
Cung cấp các dịch vụ liên quan đến I/O, tối
ưu hóa hiệu suất và bảo vệ hệ thống.
2. Các dịch vụ chính:
o Lập lịch I/O
o Đệm (Buffering)
o Bộ nhớ đệm (Caching)
o Spooling
o Đặt trước thiết bị
o Xử lý lỗi
12.4.1 Lập lịch I/O
o Lập lịch I/O là quá trình sắp
xếp thứ tự thực thi các yêu
cầu I/O nhằm tối ưu hiệu suất
hệ thống.
o Giúp giảm quãng đường di
chuyển của thiết bị (ví dụ:
cánh tay đĩa) và cải thiện thời
gian chờ trung bình.
1. Khái niệm và cách thức hoạt động
o Khi ứng dụng gửi yêu cầu I/O
chặn, hệ điều hành đưa yêu
cầu vào hàng đợi của thiết bị.
o Bộ lập lịch I/O sắp xếp thứ tự
phục vụ yêu cầu để tối ưu
hiệu suất.
o Có thể ưu tiên một số yêu cầu
quan trọng như truy xuất bộ
nhớ ảo.
• Kernel duy trì bảng trạng thái thiết bị, mỗi mục lưu thông tin loại
thiết bị, địa chỉ, trạng thái (bận, nhàn rỗi, không hoạt động).
• Nếu thiết bị bận, hệ điều hành theo dõi loại yêu cầu và các tham số
liên quan.
2. Quản lý trạng thái thiết bị
3. Cải thiện hiệu suất I/O
Ngoài lập lịch, hệ điều hành còn sử dụng:
• Buffering (đệm dữ liệu): Tăng tốc truyền dữ liệu giữa thiết
bị và bộ nhớ.
• Caching (bộ nhớ đệm): Lưu trữ dữ liệu thường dùng để truy
cập nhanh hơn.
• Spooling: Hỗ trợ xử lý nhiều yêu cầu I/O cùng lúc.
12.4.2 Đệm (Buffering)
2. Mục đích sử dụng
o Giải quyết chênh lệch tốc độ
 Khi tốc độ giữa bên gửi và bên nhận khác nhau.
 Sử dụng double buffering để ghi dữ liệu xuống đĩa trong khi tiếp tục nhận dữ liệu
mới.
o Điều chỉnh kích thước truyền dữ liệu
 Giúp phân mảnh và tái tạo dữ liệu
 Ví dụ: Chia nhỏ dữ liệu lớn thành các gói tin nhỏ khi gửi, sau đó ghép lại khi
nhận.
o Hỗ trợ "copy semantics" trong I/O
 Đảm bảo dữ liệu được ghi vào đĩa đúng với trạng thái khi ứng dụng gọi write().
 Hệ điều hành sao chép dữ liệu từ bộ đệm ứng dụng vào bộ đệm kernel trước khi
ghi.
 Tăng độ tin cậy nhưng có chi phí xử lý; có thể tối ưu bằng virtual memory
mapping và copy-on-write.
1. Khái niệm
o Là vùng nhớ trung gian giữa hai thiết bị hoặc giữa thiết bị và ứng dụng.
o Giúp tối ưu hóa tốc độ truyền dữ liệu, điều chỉnh kích thước dữ liệu, và đảm bảo tính nhất quán
khi ghi dữ liệu.
12.4.3 Bộ nhớ đệm (Caching)
🧠 Caching (Bộ nhớ đệm - Lưu tạm để dùng lại)
- Mục đích: Tăng tốc độ truy cập dữ liệu bằng cách lưu
trữ tạm những dữ liệu được dùng thường xuyên.
- Ví dụ thực tế: Trình duyệt web lưu lại hình ảnh
logo Google bạn đã xem, lần sau mở lại sẽ nhanh
hơn vì không cần tải lại từ internet.Khi dùng: Khi
dữ liệu có thể được dùng lại nhiều lần.
📥 Buffering (Bộ nhớ đệm - Chờ xử lý xong)
- Mục đích: Giảm độ trễ và xử lý trơn tru khi tốc độ
nhập dữ liệu và xử lý không đồng bộ nhau.
- Ví dụ thực tế: Khi bạn xem video online, máy sẽ tải
trước một phần vào bộ nhớ tạm (buffer) để bạn
xem không bị giật.Khi dùng: Khi tốc độ đọc và ghi
không đều nhau, ví dụ: ghi dữ liệu vào đĩa, đọc file
lớn, truyền mạng...
12.4.4 Spooling và Đặt trước Thiết bị
1. Spooling (Simultaneous Peripheral Operation On-Line)
Khái niệm: Spooling sử dụng bộ đệm để lưu trữ tạm thời đầu ra của thiết bị không thể xử
lý nhiều luồng dữ liệu đồng thời, như máy in.
Cách hoạt động:
1. Hệ điều hành ghi đầu ra của từng ứng dụng vào tệp spool trên bộ nhớ thứ cấp.
2. Khi máy in rảnh, hệ thống xếp hàng tệp spool và gửi đến máy in từng tệp một.
3. Một tiến trình daemon hoặc một luồng trong kernel chịu trách nhiệm
quản lý hàng đợi.
4. Người dùng có thể hiển thị hàng đợi, hủy lệnh in, tạm dừng in, v.v.
2. Đặt trước Thiết bị (Device Reservation)
Một số thiết bị (ổ băng từ, máy in) không thể xử lý đa luồng I/O đồng thời.
Hai cách tiếp cận để xử lý truy cập đồng thời:
1. Spooling: Điều phối các yêu cầu đầu ra bằng cách sử dụng bộ đệm.
2. Đặt trước thiết bị:
 Một tiến trình cấp phát thiết bị nhàn rỗi và hủy cấp phát sau khi sử dụng.
 Một số hệ điều hành giới hạn số tay cầm tệp mở trên mỗi thiết bị.
 Windows hỗ trợ tham số trong OpenFile() để quy định quyền truy cập của luồng đồng thời khác.
 Trách nhiệm tránh deadlock thuộc về ứng dụng.
12.4.5 Xử lý lỗi
1. Hệ Điều Hành & Xử Lý Lỗi
 Hệ điều hành sử dụng bộ nhớ được bảo vệ → Giúp chống lại lỗi phần cứng & ứng dụng.
 Lỗi I/O có thể là tạm thời hoặc vĩnh viễn:
o Lỗi tạm thời: Mạng quá tải, đọc đĩa thất bại → Hệ điều hành thử lại.
o Lỗi vĩnh viễn: Hỏng bộ điều khiển đĩa → Khó phục hồi.
2. Cơ Chế Xử Lý Lỗi Của Hệ Điều Hành
 Quy tắc chung: Lệnh hệ thống I/O trả về trạng thái thành công/thất bại.
 UNIX sử dụng errno để trả về mã lỗi → Có khoảng 100 mã lỗi mô tả nguyên nhân lỗi.
3. Báo Cáo Lỗi Của Phần Cứng
 Một số phần cứng cung cấp thông tin lỗi chi tiết, nhưng hệ điều hành không luôn hiển thị đầy đủ.
 Thiết bị SCSI báo cáo lỗi theo 3 mức chi tiết:
1. Sense key: Bản chất lỗi (lỗi phần cứng, yêu cầu không hợp lệ, v.v.).
2. Additional sense code: Loại lỗi (tham số lệnh không hợp lệ, lỗi tự kiểm tra, v.v.).
3. Additional sense-code qualifier: Chi tiết lỗi cụ thể hơn (tham số nào bị lỗi, phần cứng nào hỏng, v.v.).
4. Nhật Ký Lỗi Của Thiết Bị SCSI
 Nhiều thiết bị SCSI có nhật ký lỗi nội bộ → Máy chủ có thể truy xuất nhưng ít khi được sử dụng.
12.4.6 Bảo vệ I/O
 Tiến trình người dùng có thể
vô tình hoặc cố ý thực hiện
lệnh I/O bất hợp pháp, gây
gián đoạn hệ thống.
 Hệ điều hành cần cơ chế bảo
vệ để ngăn chặn các thao tác
không hợp lệ này.
1. Mối Liên Hệ
Giữa Lỗi và
Bảo Vệ
2. Cơ Chế Ngăn
Chặn Lệnh I/O
Bất Hợp Pháp
 Tất cả lệnh I/O đều là lệnh đặc
quyền → Người dùng không thể
thực hiện trực tiếp.
 Thực hiện I/O phải thông qua
system call → Hệ điều hành
kiểm tra và xử lý yêu cầu.
 Hệ điều hành chạy ở chế độ
giám sát (monitor mode) để
kiểm soát quá trình này.
12.4.6 Bảo vệ I/O
 Hạt nhân có thể cho phép cấp
phát bộ nhớ đồ họa theo tiến
trình.
 Chỉ một tiến trình được sử
dụng một vùng bộ nhớ đồ họa
tại một thời điểm, đảm bảo
hiệu suất và bảo mật.
4. Cơ Chế
Khóa (Locking
Mechanism)
3. Bảo Vệ Bộ
Nhớ Ánh Xạ
I/O & Cổng I/O
 Hệ thống bảo vệ bộ nhớ ngăn
chặn truy cập trái phép vào các
vùng nhớ ánh xạ I/O.
 Tuy nhiên, một số phần mềm
(game, chỉnh sửa video, phát
video) cần quyền truy cập bộ
nhớ đồ họa để tăng tốc xử lý.
12.4.7 Cấu trúc dữ liệu của Kernel
2. Hệ Điều Hành UNIX & Xử Lý I/O
 UNIX hỗ trợ I/O cho tập tin người dùng, thiết bị thô (raw devices), tiến trình.
 Mỗi loại I/O có cách xử lý khác nhau:
o Tập tin người dùng: Kiểm tra bộ nhớ đệm (buffer cache) trước khi đọc từ đĩa.
o Đĩa thô (raw disk): Yêu cầu kích thước đọc là bội số của sector, dữ liệu căn chỉnh
theo sector.
o Ảnh tiến trình (process image): Chỉ cần sao chép dữ liệu từ bộ nhớ.
 UNIX sử dụng cấu trúc hướng đối tượng, trong đó:
o Bản ghi tập tin mở (open-file record) chứa bảng phân phối (dispatch table).
o Bảng phân phối giữ con trỏ đến các hàm xử lý phù hợp theo loại tập tin.
1. Kernel & Cấu Trúc Dữ Liệu I/O
 Kernel quản lý trạng thái các thành phần I/O thông qua các cấu trúc dữ liệu nội bộ.
3. Hệ Điều Hành Windows & Cơ Chế Truyền Thông Điệp
 Windows sử dụng truyền thông điệp (message-passing) để xử lý I/O.
 Quy trình thực hiện I/O trong Windows:
o Yêu cầu I/O → Chuyển thành thông điệp.
o Thông điệp gửi qua kernel → Đến trình quản lý I/O (I/O manager).
o I/O manager gửi đến trình điều khiển thiết bị (device driver).
o Mỗi bước có thể thay đổi nội dung thông điệp.
 Ưu & Nhược Điểm:
o Tăng chi phí xử lý so với các kỹ thuật dựa trên dữ liệu chia sẻ.
o Đơn giản hóa thiết kế hệ thống I/O.
o Tăng tính linh hoạt trong quản lý I/O.
12.4.8 Quản lý Năng lượng
 Vấn đề năng lượng: Trung tâm dữ liệu tiêu thụ lượng điện khổng lồ, cả cho
vận hành máy chủ và hệ thống làm mát (đôi khi tốn gấp 2 lần điện năng máy
chủ).
 Giải pháp tiết kiệm: Làm mát tự nhiên bằng không khí, nước hồ, năng
lượng mặt trời.
 Vai trò của hệ điều hành:
o Điều chỉnh tải xử lý, di chuyển tiến trình, đưa hệ thống vào trạng thái
nhàn rỗi.
o Tắt CPU, thiết bị I/O không cần thiết để giảm tiêu thụ điện.
o Vô hiệu hóa các lõi CPU không dùng đến, kích hoạt lại khi cần.
1. Quản lý năng lượng trong trung tâm dữ liệu
2. Quản lý năng lượng trong thiết bị di động
 Mục tiêu: Giảm tiêu thụ điện, kéo dài tuổi thọ pin.
 Công nghệ Android sử dụng:
1. Power Collapse – Đưa thiết bị vào trạng thái ngủ sâu, tắt màn hình, loa, I/O, CPU về mức tiêu thụ thấp nhất.
2. Quản lý năng lượng cấp thành phần – Xây dựng cây thiết bị, theo dõi hoạt động phần cứng, tắt các thành phần
không sử dụng.
3. Wakelocks – Giữ thiết bị thức khi cần (chơi game, tải dữ liệu, cập nhật ứng dụng).
 ACPI (Giao diện Cấu hình Nâng cao và Quản lý Năng lượng) giúp hệ điều
hành kiểm soát phần cứng, quản lý thiết bị động (hot-plug), xử lý lỗi và tối ưu
điện năng.
 Khi hệ điều hành cần tắt thiết bị, nó gọi trình điều khiển → ACPI → phần
cứng thực hiện.
Kết luận
 Quản lý năng lượng giúp tiết kiệm chi phí, kéo dài tuổi thọ thiết bị, giảm tác
động môi trường và tối ưu hiệu suất hệ thống.
3. Quản lý thiết bị & ACPI
12.5
CHUYỂN ĐỔI
YÊU CẦU I/O
1
2
1. Chuyển đổi Yêu cầu I/O
thành Hoạt động Phần
cứng
Giới thiệu về cách hệ điều hành kết nối yêu
cầu I/O từ ứng dụng đến phần cứng.
Tầm quan trọng của quá trình này
trong việc quản lý thiết bị.
🔹 UNIX:
- Không có phần cố định trong tên đường dẫn.
- Sử dụng bảng mount để ánh xạ tên đường dẫn với
thiết bị.
🔹 MS-DOS (FAT):
- Dùng tiền tố (C:, D:) để xác định thiết bị.
- Hệ điều hành ánh xạ trực tiếp đến địa chỉ cổng
phần cứng.
2. Ánh xạ Tên tệp đến Thiết bị
(MS-DOS vs UNIX)
🔹 UNIX:
- Thiết bị được tích hợp vào hệ thống tệp chung.
- Quyền sở hữu và kiểm soát truy cập áp dụng cho
cả thiết bị và tệp.
🔹 MS-DOS:
- Không gian tên thiết bị tách biệt hệ thống tệp.
- Dễ dàng bổ sung tính năng như spooling (xử lý
hàng đợi in).
3. Cách Quản lý Không gian
Tên của Thiết bị
4. Hệ điều
hành Hiện
đại và Quản
lý Thiết bị
• Hệ điều hành hiện đại linh hoạt trong xử lý I/O:
- Sử dụng bảng tra cứu nhiều cấp giữa ứng
dụng và phần cứng.
- Hỗ trợ trình điều khiển thiết bị động (tải khi
cần thiết).
• Cách hoạt động:
- Phát hiện phần cứng khi khởi động.
- Tải trình điều khiển theo yêu cầu hoặc khi
thiết bị được cắm vào.
5. Vòng đời của Yêu
cầu Đọc (Read I/O)
Quy trình xử lý một yêu cầu đọc:
1) Tiến trình gọi read().
2) Hệ điều hành kiểm tra dữ liệu trong bộ
đệm.
3) Nếu không có, tiến trình chờ & yêu cầu
gửi đến trình điều khiển.
4) Trình điều khiển cấp phát bộ đệm &
gửi lệnh đến bộ điều khiển.
5) Bộ điều khiển thực hiện truyền dữ liệu.
6) Ngắt báo hiệu hoàn tất & dữ liệu được
trả về tiến trình.
6. Hệ thống Ngắt và
Xử lý Hoàn tất I/O
Ngắt trong hệ thống I/O:
- Bộ điều khiển tạo ngắt khi dữ liệu sẵn sàng.
- Trình xử lý ngắt lưu dữ liệu, báo hiệu hoàn thành I/O.
- Hệ điều hành chuyển tiến trình từ trạng thái chờ sang sẵn sàng.
Ưu điểm:
- Giảm tải CPU, tăng hiệu suất xử lý.
12.6
Streams
Một stream là một kết nối full-duplex giữa driver thiết bị và tiến
trình người dùng.
STREAMS là một cơ chế trong UNIX System V và nhiều phiên bản
UNIX khác, cho phép ứng dụng lắp ráp các pipeline driver một
cách động.
1.Giới thiệu về STREAMS
2.Cấu trúc của
STREAMS
-Một stream bao gồm:
•Stream head: Giao tiếp với tiến trình
người dùng.
•Driver end: Điều khiển thiết bị.
•Stream module: Được đặt giữa stream
head và driver end.
•Mỗi thành phần này chứa một cặp hàng
đợi (read queue và write qe).
Hình 12.15 Cấu trúc STREAMS.
3.Chức năng của
STREAMS
Các module Dữ liệu Hỗ trợ kiểm soát luồn
Cung cấp chức năng xử lý
STREAMS và được đẩy
vào stream bằng lệnh
ioctl().
Truyền bằng cách thông
điệp giữa các hàng đợi
trong các module liền kề
Một hàng đợi có thể hỗ
trợ kiểm soát luồng bằng
cách đệm các thông điệp
và không chấp nhận thêm
thông điệp nếu không có
đủ không gian đệm
4.Các lệnh hệ
thống trong
STREAMS •write(): Ghi dữ liệu thô vào stream.
•putmsg(): Cho phép tiến trình người dùng chỉ
định một thông điệp.
•read(): Đầu luồng nhận một thông điệp từ hàng
đợi liền kề và trả về dữ liệu thông thường.
•getmsg(): Trả về một thông điệp cho tiến trình
người dùng.
1
2
5.Kiểm soát
luồng trong
STREAMS
Hàng đợi hỗ trợ kiểm soát luồng: Đệm các thông điệp và
không chấp nhận thông điệp nếu không có đủ không gian
đệm.
Thông điệp điều khiển: Trao đổi giữa các hàng
đợi trong các module liền kề để ngăn chặn tràn
hàng đợi.
6.Lợi ích của
STREAMS
•Khung làm việc mô-đun: STREAMS cung cấp một khung làm việc cho cách tiếp
cận mô-đun và gia tăng trong việc viết trình điều khiển thiết bị và giao thức
mạng.
Hỗ trợ ranh giới thông điệp và thông tin điều khiển: STREAMS cho phép
hỗ trợ các ranh giới thông điệp và thông tin điều khiển khi giao tiếp giữa
các module
Sử dụng lại các module: Các module có thể được sử dụng
bởi nhiều luồng và thiết bị khác nhau
12.7 HIỆU SUẤT
1. I/O và Hiệu Suất 5. Cải Thiện Hiệu Suất I/O
2. I/O theo Lập Trình vs I/O Điều
Khiển Bằng Ngắt
3. Lưu Lượng Mạng và I/O
4. Giảm Tải Cho CPU với Kênh I/O
7. Tiến Bộ của Thiết Bị I/O
6. Triển Khai Chức Năng I/O
8. Hiệu Suất I/O và Độ Trễ
Mạng
Mục tiêu cải
thiện
Ảnh hưởng của I/O
 Chuyển đổi ngữ cảnh
trong I/O tốn kém, tạo
gánh nặng cho CPU và
bộ nhớ.
1. I/O và hiệu
suất
. I/O ảnh hưởng lớn đến hiệu
suất hệ thống, gây áp lực lên
CPU, bộ nhớ đệm và cơ chế xử
lý ngắt.
2. I/O theo lập trình
với I/O điều khiển
ngắt
Tiêu chí I/O theo lập trình I/O điều khiển bằng ngắt
Hiệu quả Tốt khi trạng thái chờ bận ít, chi phí
ngắt và chuyển đổi ngữ cảnh thấp
Tốt khi có nhiều ngắt, giúp tiết kiệm tài
nguyên CPU trong thời gian chờ
Tài nguyên
CPU
Tiêu tốn tài nguyên CPU do phải
kiểm tra trạng thái thiết bị liên tục
Tiết kiệm tài nguyên CPU, CPU chỉ làm
việc khi có ngắt
Độ trễ
Có thể gây độ trễ cao nếu thiết bị
chậm
Thích hợp với thiết bị chậm, giảm độ
trễ khi chờ đợi sự sẵn sàng của thiết bị
Chi phí
ngắt
Không có chi phí ngắt Chi phí ngắt cao, tốn tài nguyên khi xử
lý ngắt nhiều
Ứng dụng
phù hợp
Các thiết bị I/O nhanh, ít yêu cầu
ngắt
Các hệ thống với thiết bị I/O chậm, có
số lần ngắt nhiều
3. Lưu lượng và
I/O
Mạng tạo ra nhiều lần chuyển
đổi ngữ cảnh khi truyền dữ liệu
giữa máy tính, làm giảm hiệu
suất I/O.
4. Giảm Tải Cho
CPU với Kênh
I/O
Sử dụng bộ xử lý I/O
(kênh I/O) giúp giảm tải
cho CPU chính và duy trì
luồng dữ liệu ổn định.
Hình 12.16 Giao tiếp giữa các máy tính.
5. Cải
thiện hiệu
suất I/O
 Giảm số lần chuyển đổi ngữ cảnh.
 Giảm số lần sao chép dữ liệu trong bộ nhớ khi truyền dữ liệu giữa thiết bị và ứng
dụng.
 Giảm tần suất ngắt bằng cách sử dụng các lần truyền dữ liệu lớn hơn, bộ điều
khiển thông minh và kỹ thuật thăm dò (polling) nếu có thể hạn chế trạng thái chờ
bận (busy waiting).
 Tăng khả năng xử lý đồng thời bằng cách sử dụng các bộ điều khiển hỗ trợ DMA
hoặc kênh I/O để giảm tải việc sao chép dữ liệu đơn giản khỏi CPU.
 Chuyển một số thao tác xử lý cơ bản vào phần cứng, cho phép chúng hoạt động
đồng thời với CPU và bus.
 Cân bằng hiệu suất giữa CPU, bộ nhớ, bus và I/O, vì nếu một trong số chúng bị
quá tải, các thành phần khác có thể bị gián đoạn hoặc nhàn rỗi.
1 2 3
6.Triển Khai Chức
Năng I/O
Kiểm tra
tính xác
thực của
nguồn
thông tin.
Sử dụng
công cụ
kiểm tra
thông tin để
đảm bảo
tính chính
xác.
Nhận diện
và tránh
thiên vị
trong quá
trình xử lý.
7. Tiến Bộ của Thiết Bị I/O
Các thiết bị bộ nhớ không bay hơi (NVM) có tốc độ ngày càng cao, yêu
cầu các hệ thống I/O và thuật toán tối ưu để tận dụng tối đa tốc độ.
8. Hiệu Suất I/O và Độ Trễ
Mạng
Độ trễ mạng có thể
làm giảm hiệu suất
I/O, tạo thêm "thuế"
hiệu suất cho hệ
thống.
12.8 SUMMARY
Cảm ơn các bạn
đã lắng nghe

More Related Content

PPT
Chuong05
 
PPTX
chuc nang cua CPUchuc nang cua CPUchuc nang cua CPUchuc nang cua CPU
DOCX
BAO CAO TUAN 5 đo lường và điều khiển máy tính
PPT
He dieuhanh lythuyet
PDF
kien-truc-may-tinh_nguyen-thanh-son_chuong6_he-thong-luu-tru-va-cac-thiet-bi-...
PPT
11.chap11 io system
DOCX
câu 1.docx
DOCX
Nghiên cứu tìm hiểu về quản lý thiết bị ngoại vi trong hđh windows.docx
Chuong05
 
chuc nang cua CPUchuc nang cua CPUchuc nang cua CPUchuc nang cua CPU
BAO CAO TUAN 5 đo lường và điều khiển máy tính
He dieuhanh lythuyet
kien-truc-may-tinh_nguyen-thanh-son_chuong6_he-thong-luu-tru-va-cac-thiet-bi-...
11.chap11 io system
câu 1.docx
Nghiên cứu tìm hiểu về quản lý thiết bị ngoại vi trong hđh windows.docx

Similar to fsdfsdfsdfsdfsdfsdfsdfsdfdsfsdfsdffsdfsdfsdf (20)

PDF
Slide bài giảng Hệ điều hành hutech_os_fullslides_aug2016.pdf
PDF
Chuong2 cautruchedieuhanh
PPTX
Tổng quan về Hệ điều hành
PPTX
Ch1_He thong may tinh-hethongmautinh.pptx
PPT
6 he thong xuat nhap
PPTX
KTMT-Chuong 7 -Các phương pháp vào ra.pptx
PDF
Bai1laprapcaidat ttth
DOC
De cuong thiet bi ngoai vi
PPT
Chuong02
 
PPTX
#Week01-Chapter1 2023DE THI CSDL CAP CAO TOÀN QUÓC
PPTX
Trình bày cơ chế nhập / xuất của hệ thống vào ra dữ liệu
PDF
8259A (Bản Dịch) agagagagagagagagagesfesf
PPT
Bai09 he thong nhap xuat
PPT
Cấu tạo và nguyên lý hoạt động cpu
DOC
Giao trinh phan cung
PPTX
KTMT-Chuong 1- Giới thiệu Tổng quan.pptx
PDF
Ch01
PPT
2. Phan cung may tinh.ppt
PPT
ngan xep va hang doi
PDF
Phan 2
Slide bài giảng Hệ điều hành hutech_os_fullslides_aug2016.pdf
Chuong2 cautruchedieuhanh
Tổng quan về Hệ điều hành
Ch1_He thong may tinh-hethongmautinh.pptx
6 he thong xuat nhap
KTMT-Chuong 7 -Các phương pháp vào ra.pptx
Bai1laprapcaidat ttth
De cuong thiet bi ngoai vi
Chuong02
 
#Week01-Chapter1 2023DE THI CSDL CAP CAO TOÀN QUÓC
Trình bày cơ chế nhập / xuất của hệ thống vào ra dữ liệu
8259A (Bản Dịch) agagagagagagagagagesfesf
Bai09 he thong nhap xuat
Cấu tạo và nguyên lý hoạt động cpu
Giao trinh phan cung
KTMT-Chuong 1- Giới thiệu Tổng quan.pptx
Ch01
2. Phan cung may tinh.ppt
ngan xep va hang doi
Phan 2
Ad

Recently uploaded (6)

PDF
Auto Hold là gì? Cách sử dụng Auto Hold hiệu quả và an toàn
PDF
ly-thuyet-dieu-khien-tu-dong__ly-thuyet-dktd - [cuuduongthancong.com].pdf
DOCX
Báo cáo môn tuyến điểm du lịch (11).docx
PDF
dddddddddddddddddddddddddddddddddddddddd
DOCX
f02a6c7e-5c43-49ec-9e0d-b185bdcd0da9.docx
PPTX
Báo cáo BTL ĐSTT khhhhhhhhhhhhhhhhhhhhhhhhhhhhh
Auto Hold là gì? Cách sử dụng Auto Hold hiệu quả và an toàn
ly-thuyet-dieu-khien-tu-dong__ly-thuyet-dktd - [cuuduongthancong.com].pdf
Báo cáo môn tuyến điểm du lịch (11).docx
dddddddddddddddddddddddddddddddddddddddd
f02a6c7e-5c43-49ec-9e0d-b185bdcd0da9.docx
Báo cáo BTL ĐSTT khhhhhhhhhhhhhhhhhhhhhhhhhhhhh
Ad

fsdfsdfsdfsdfsdfsdfsdfsdfdsfsdfsdffsdfsdfsdf

  • 1. CỦA NHÓM 3 CHÀO MỪNG VÌ ĐÃ ĐẾN VỚI BÀI THUYẾT TRÌNH
  • 2. Mã SV Tên Nhiệm vụ Hoàn thành 052205001988 Nguyễn Ngọc Toàn Performance 100% 052205001149 Nguyễn Hà Thanh Kernel I/O Subsystem 100% 052205006444 Hồ Nguyễn Thiên Hào Application I/O Interface 100% 052205009200 Nguyễn Đức Thịnh I/O Hardware 100% 051205011311 Nguyễn Minh Hiển Overview, Summary 100% 052205010197 Võ Xuân Vỹ Streams 100% 052205007577 Võ Trung Trực Transforming I/O Requests to Hardware Operations 100%
  • 4. Tóm tắt Trả lời câu hỏi nhóm đặt ra Nội dung lý thuyết Ôn tập 0 1 03 02
  • 5. Tổng quan về Quản lý Thiết Bị I/O.
  • 6. 1. Giới thiệu. 📌 Thiết bị I/O giúp nhập và xuất dữ liệu giữa người dùng và máy tính. 📌 Thách thức: Các thiết bị này có tốc độ và chức năng rất khác nhau. 📌 Mục tiêu của quản lý I/O: Đảm bảo hiệu suất, ổn định và tương thích giữa phần cứng và phần mềm. Hình ảnh sơ đồ hệ thống I/O trong máy tính. Hình ảnh các loại thiết bị ngoại vi (chuột, bàn phím, ổ cứng, máy in, cáp mạng...).
  • 7. 2. Tầm Quan Trọng của Quản Lý Thiết Bị I/O. Đảm bảo thiết bị có thể giao tiếp với CPU mà không bị xung đột. Tối ưu hóa tốc độ xử lý và giảm tải cho CPU. Giúp hệ thống hoạt động trơn tru và hiệu quả. Nội dung:
  • 8. 📌 Thách thức: 3. Sự Đa Dạng của Thiết Bị I/O. ✔ Thiết bị nhập. ✔ Thiết bị xuất. ✔ Thiết bị lưu trữ. ✔ Thiết bị mạng. 📌 Các thiết bị I/O có thể chia thành nhiều nhóm: Một số thiết bị cần phản hồi nhanh (chuột, bàn phím), số khác có thể hoạt động chậm hơn (ổ cứng, máy in). • Hệ điều hành phải có cơ chế điều phối phù hợp với từng loại thiết bị.
  • 9. 4. Hệ Thống Con I/O trong Kernel. ✔ Tách biệt phần cứng và phần mềm. ✔ Cung cấp giao diện lập trình thống nhất (System Calls). ✔ Quản lý thiết bị hiệu quả hơn, tránh xung đột. Gợi ý hình ảnh minh họa: Sơ đồ kernel và hệ thống con I/O.
  • 10. 5. Các Dịch Vụ Quản Lý I/O Quan Trọng. Lập lịch I/O (I/O Scheduling) Bộ đệm (Buffering) Bộ nhớ đệm (Caching): Xử lý hàng đợi (Spooling): STREAMS - Phương pháp tiếp cận hiện đại 🔹 Dịch tên (Name Translation)
  • 11. 12.2 Hệ Thống I/O Trong Máy Tính Trong phần này, chúng ta sẽ khám phá cách các thiết bị ngoại vi, từ những thiết bị quen thuộc như bàn phím và chuột đến các ổ cứng và card mạng phức tạp hơn, giao tiếp với máy tính của chúng ta.
  • 12. Phần Cứng I/O: Giới Thiệu Tổng Quan Thiết Bị Lưu Trữ Đĩa cứng (HDD) và ổ đĩa thể rắn (SSD) là các thiết bị lưu trữ dữ liệu quan trọng. Băng từ cũng được sử dụng trong một số hệ thống lưu trữ lớn. Thiết Bị Truyền Tải Kết nối mạng (Ethernet, Wi-Fi) và Bluetooth cho phép máy tính giao tiếp với các thiết bị và mạng khác. Thiết Bị Giao Diện Màn hình, bàn phím, chuột, loa và microphone là các thiết bị giao diện người dùng, giúp người dùng tương tác với máy tính. I. Các loại thiết bị I/O trong máy tính:
  • 13. II.Cổng và Bus: Kết Nối Thiết Bị Với Máy Tính Cổng (Port) Cổng là điểm kết nối giữa các thiết bị ngoại vi và máy tính Bus Bus là một nhóm dây điện và giao thức cho phép truyền tải tín hiệu giữa các thiết bị và máy tính, giúp tiết kiệm không gian và tài nguyên. Daisy Chain Daisy Chain là kiểu kết nối chuỗi các thiết bị, giúp tiết kiệm dây cáp và đơn giản hóa kết nối, thường thấy trong các hệ thống nhiều màn hình.
  • 14. a. Các Loại Bus Phổ Biến Trong Máy Tính PCIe PCIe là bus phổ biến, kết nối CPU và bộ nhớ với các thiết bị nhanh như card đồ họa và SSD, cung cấp băng thông cao. Bus Mở Rộng Bus mở rộng kết nối các thiết bị chậm hơn như bàn phím, chuột và cổng USB, đảm bảo kết nối ổn định. SAS(Serial Attached SCSI) SAS được sử dụng để kết nối nhiều ổ đĩa với nhau, thường dùng trong các hệ thống lưu trữ dữ liệu lớn.
  • 15. b.Cấu Trúc của PCIe và Lane Lane trong PCIe Các bus như PCIe sử dụng "lane" để truyền tải dữ liệu, với mỗi lane có thể gửi dữ liệu song song theo hình thức truyền tải hai chiều. Nhiều Lane PCIe có thể sử dụng nhiều lane cùng lúc, ví dụ: x1, x8, x16, để tăng tốc độ truyền tải dữ liệu. Truyền Tải Dữ Liệu Mỗi lane trong PCIe bao gồm 4 dây điện, hoạt động song song hai chiều (full-duplex), giúp truyền tải dữ liệu nhanh chóng.
  • 16. III.Controller trong Hệ Thống I/O Controller Controller là mạch điện tử điều khiển các cổng, bus hoặc thiết bị trong hệ thống, giúp truyền tải tín hiệu và xử lý dữ liệu. 1 Quản Lý Giao Tiếp Controller giúp quản lý việc giao tiếp với các bus như SAS hoặc SATA, thực hiện các tác vụ như xử lý lỗi và lưu trữ bộ nhớ đệm. 2 Tích Hợp Nhiều thiết bị, như ổ đĩa cứng, có một controller tích hợp bên trong để tối ưu hiệu suất. 3
  • 17. IV.Memory-Mapped I/O: Giao Tiếp Thông Qua Bộ Nhớ 1 Memory-Mapped I/O Memory-Mapped I/O là ph ng th c giao ti p gi a CPU và b đi u khi n thi t b thông qua b ươ ứ ế ữ ộ ề ể ế ị ộ nh , giúp đ n gi n hóa và tăng t c quá trình giao ti p. ớ ơ ả ố ế 2 Thanh Ghi Điều Khiển CPU giao ti p v i b đi u khi n b ng cách đ c và ghi vào các thanh ghi này, ế ớ ộ ề ể ằ ọ thông qua các l nh chu n đ truy c p vào các thanh ghi đi u khi n trong ệ ẩ ể ậ ề ể không gian b nh . ộ ớ
  • 18. IV.Memory-Mapped I/O: Giao Tiếp Thông Qua Bộ Nhớ 4 Các thanh ghi điều khiển thiết bị bao gồm Data-in Register, Data-out Register, Status Register và Control Register. 5 FIFO (First In, First Out) Một số bộ điều khiển sử dụng FIFO để lưu trữ tạm thời dữ liệu, giúp bộ điều khiển xử lý một lượng nhỏ dữ liệu đầu vào hoặc đầu ra, tăng hiệu suất. 6 Lợi ích của Memory-Mapped I/O Tăng tốc độ và hiệu quả, giảm thiểu sự phức tạp khi sử dụng các lệnh I/O, dễ dàng thao tác với các thanh ghi điều khiển Thanh Ghi Điều Khiển
  • 19. V.Polling và Nhược Điểm 1 Polling Polling là một phương thức trong hệ điều hành, trong đó CPU định kỳ kiểm tra trạng thái của bộ điều khiển hoặc thiết bị ngoại vi để xác định liệu có sự kiện hoặc dữ liệu mới cần xử lý không. 2 Nhược Điểm Host phải kiểm tra liên tục bit busy, điều này có thể gây lãng phí tài nguyên CPU, có thể xảy ra vấn đề với các thiết bị có dữ liệu đến liên tục 3 Ngắt thay thế Polling Khi polling không hiệu quả, hệ thống có thể sử dụng ngắt để bộ điều khiển thông báo cho CPU khi thiết bị sẵn sàng phục vụ. Ngắt giúp giảm việc phải polling liên tục và cải thiện hiệu suất CPU
  • 20. VI.Cơ Chế Ngắt và DMA trong Hệ Thống Máy Tính Chúng ta sẽ khám phá cách các ngắt được quản lý để xử lý các sự kiện quan trọng và cách DMA giúp giảm tải cho CPU trong quá trình chuyển giao dữ liệu lớn.
  • 21. 1.Cơ Chế Ngắt Cơ Bản Interrupt-request line Dây tín hiệu yêu cầu ngắt mà CPU kiểm tra sau mỗi lệnh thực thi. Khi phát hiện tín hiệu yêu cầu ngắt từ bộ điều khiển, CPU lưu trạng thái hiện tại và chuyển đến routine xử lý ngắt tại một địa chỉ cố định trong bộ nhớ Interrupt handler Routine xử lý ngắt xác định nguyên nhân của ngắt, thực hiện các xử lý cần thiết, khôi phục trạng thái trước ngắt và tiếp tục thực thi các lệnh tiếp theo. Cơ chế ngắt là một phần quan trọng của hệ thống máy tính, cho phép CPU phản ứng với các sự kiện bên ngoài một cách hiệu quả. Interrupt-request line và interrupt handler là hai thành phần chính của cơ chế này.
  • 22. a.Quy Trình Ngắt Cơ Bản Kích hoạt ngắt Bộ điều khiển kích hoạt ngắt bằng cách gửi tín hiệu yêu cầu ngắt đến CPU. CPU "catch" ngắt CPU nhận ngắt và chuyển đến routine xử lý ngắt tương ứng. "Clear" ngắt Sau khi hoàn thành, ngắt được "clear" khi bộ điều khiển được phục vụ xong. Quy trình ngắt bao gồm ba bước chính: kích hoạt ngắt, CPU "catch" ngắt và "clear" ngắt. Quá trình này đảm bảo rằng các sự kiện quan trọng được xử lý một cách kịp thời và hiệu quả. Activate Catch Clear
  • 23. b.Quản Lý Ngắt Trong Hệ Thống Hiện Đại 1 Deferred interrupt handling Trì hoãn xử lý ngắt trong quá trình xử lý quan trọng để đảm bảo tính toàn vẹn của dữ liệu. 2 Dispatching interrupts Xử lý ngắt hiệu quả mà không cần polling tất cả các thiết bị, giúp giảm tải cho CPU. 3 Multilevel interrupts Phân biệt ngắt cao và thấp ưu tiên, giúp hệ điều hành phản hồi với độ khẩn cấp phù hợp. 4 Traps Các ngắt xảy ra do lỗi hệ thống như lỗi chia cho 0 hoặc truy cập bộ nhớ không hợp lệ. Trong hệ thống hiện đại, việc quản lý ngắt đòi hỏi các tính năng phức tạp hơn để đảm bảo hiệu suất và độ tin cậy. Các tính năng như deferred interrupt handling, dispatching interrupts, multilevel interrupts và traps đóng vai trò quan trọng trong việc quản lý ngắt.
  • 24. c.Các Loại Ngắt 1 Nonmaskable interrupt Ngắt không thể tắt, thường dùng cho các lỗi không thể phục hồi như lỗi bộ nhớ. 2 Maskable interrupt Ngắt có thể tắt trước khi thực hiện các lệnh quan trọng để tránh bị gián đoạn. 3 Interrupt vector Một bảng địa chỉ lưu trữ các địa chỉ của các routine xử lý ngắt, giúp CPU nhanh chóng tìm đến đúng routine mà không cần quét tất cả các ngắt
  • 25. 2.Direct Memory Access (DMA) Giảm tải cho CPU DMA giúp giảm tải công việc cho CPU khi thực hiện các chuyển giao dữ liệu lớn. Bộ điều khiển đặc biệt DMA sử dụng một bộ điều khiển đặc biệt để thực hiện chuyển giao dữ liệu trực tiếp giữa bộ nhớ và thiết bị. Không cần can thiệp của CPU DMA thực hiện chuyển giao dữ liệu mà không cần sự can thiệp của CPU. Direct Memory Access (DMA) là một cơ chế quan trọng giúp giảm tải cho CPU trong quá trình chuyển giao dữ liệu lớn. DMA sử dụng một bộ điều khiển đặc biệt để thực hiện chuyển giao dữ liệu trực tiếp giữa bộ nhớ và thiết bị mà không cần sự can thiệp của CPU.
  • 26. Khởi Tạo DMA CPU tạo command block, chứa thông tin nguồn và đích, cùng số byte cần chuyển. Command block hỗ trợ scatter-gather, thực hiện nhiều chuyển giao trong một lệnh. CPU ghi command block vào bộ nhớ. a.Quá trình DMA:
  • 27. Hoạt Động của DMA Ghi Địa Chỉ CPU ghi địa chỉ command block vào bộ điều khiển DMA. Tiếp Tục Công Việc CPU tiếp tục công việc khác. Chiếm Quyền Memory Bus Bộ điều khiển DMA chiếm quyền sử dụng memory bus. Chuyển Giao Dữ Liệu DMA thực hiện chuyển giao dữ liệu trực tiếp, không cần CPU can thiệp.
  • 28. b.Tác Động của DMA Đến CPU và Bộ Nhớ 1 Memory Bus Seizing Khi bộ điều khiển DMA chiếm memory bus, CPU sẽ không thể truy cập vào bộ nhớ chính trong một thời gian ngắn. 2 Cycle Stealing Việc chiếm memory bus tạm thời có thể làm giảm tốc độ tính toán của CPU. 3 Cải thiện hiệu suất hệ thống Việc offload công việc chuyển giao dữ liệu cho bộ điều khiển DMA giúp cải thiện tổng thể hiệu suất hệ thống. DMA có tác động đáng kể đến CPU và bộ nhớ. Mặc dù việc chiếm memory bus tạm thời có thể làm giảm tốc độ tính toán của CPU, nhưng việc offload công việc chuyển giao dữ liệu cho bộ điều khiển DMA giúp cải thiện tổng thể hiệu suất hệ thống.
  • 29. 12.3 Giao diện I/O ứng dụng Các kỹ thuật cấu trúc và giao diện cho hệ điều hành. Cho phép các thiết bị I/O được xử lý theo cách tiêu chuẩn và đồng nhất.
  • 30. Cấu trúc I/O của kernel Trừu tượng hóa, đóng gói và phân lớp phần mềm. Trình điều khiển thiết bị ẩn các khác biệt giữa các bộ điều khiển thiết bị khỏi hệ thống con I/O của kernel.
  • 31. Đặc điểm của Thiết bị I/O Luồng ký tự hoặc khối Truy cập tuần tự hoặc ngẫu nhiên Đồng bộ hoặc không đồng bộ Chia sẻ được hoặc chuyên dụng Tốc độ hoạt động Đọc-ghi, chỉ đọc, ghi một lần
  • 32. Truy cập ổ đĩa và các thiết bị hướng khối khác. Truy cập thiết bị như bàn phím, chuột. Cung cấp quyền truy cập vào bộ nhớ đĩa thông qua một mảng byte trong bộ nhớ chính. Giao diện socket cho phép tạo, kết nối, lắng nghe, gửi và nhận gói tin. Truy cập đồng hồ thời gian trong ngày, bộ định thời, hiển thị đồ họa, video và thiết bị âm thanh. 12.3.1 Thiết bị Khối và Thiết bị Ký tự I/O khối I/O luồng ký tự Truy cập tệp ánh xạ bộ nhớ Ổ cắm mạng Các lệnh gọi hệ thống đặc biệt Các kiểu truy cập Thiết bị I/O
  • 33. Thiết bị khối và thiết bị ký tự 1 2 3 Giao diện thiết bị khối: Các lệnh read(), write(), seek(). I/O thô và I/O trực tiếp: Truy cập thiết bị trực tiếp mà không qua hệ thống tập tin. Truy cập tập tin ánh xạ bộ nhớ: Ánh xạ tập tin vào bộ nhớ, truyền dữ liệu khi cần thiết.
  • 34. 12.3.2 Thiết bị Mạng Giao diện socket mạng Trả về thông tin về socket nào có gói tin chờ nhận hoặc có chỗ trống để gửi gói tin. Hàm select() để quản lý socket Tạo socket, kết nối, lắng nghe, gửi và nhận gói tin.
  • 35. 12.3.3 Đồng hồ và Bộ định thời Cung cấp thời gian hiện tại, thời gian đã trôi qua. Đặt bộ định thời để kích hoạt hoạt động X tại thời điểm T. Bộ định thời khoảng thời gian lập trình được: Tạo ngắt sau khoảng thời gian nhất định.
  • 36. 12.3.4 I/O Không Chặn và Bất Đồng Bộ I/O chặn Luồng gọi bị tạm dừng cho đến khi lệnh gọi hệ thống hoàn thành. I/O không chặn Lệnh gọi hệ thống trả về ngay lập tức với số byte đã truyền. Lệnh gọi hệ thống bất đồng bộ Trả về ngay lập tức, hoàn thành I/O vào thời điểm tương lai.
  • 37. 12.3.5 I/O Vector I/O Vector (Vectored I/O): Lệnh gọi hệ thống readv của UNIX. Tính nguyên tử của I/O Vector: Đảm bảo tất cả các hoạt động I/O được thực hiện mà không bị gián đoạn. Phương pháp scatter-gather: Truyền dữ Liệu từ nhiều bộ đệm thông qua một lệnh gọi hệ thống duy nhất.
  • 38. 12.4 Hệ thống con I/O của Kernel 1. Chức năng Cung cấp các dịch vụ liên quan đến I/O, tối ưu hóa hiệu suất và bảo vệ hệ thống. 2. Các dịch vụ chính: o Lập lịch I/O o Đệm (Buffering) o Bộ nhớ đệm (Caching) o Spooling o Đặt trước thiết bị o Xử lý lỗi
  • 39. 12.4.1 Lập lịch I/O o Lập lịch I/O là quá trình sắp xếp thứ tự thực thi các yêu cầu I/O nhằm tối ưu hiệu suất hệ thống. o Giúp giảm quãng đường di chuyển của thiết bị (ví dụ: cánh tay đĩa) và cải thiện thời gian chờ trung bình. 1. Khái niệm và cách thức hoạt động o Khi ứng dụng gửi yêu cầu I/O chặn, hệ điều hành đưa yêu cầu vào hàng đợi của thiết bị. o Bộ lập lịch I/O sắp xếp thứ tự phục vụ yêu cầu để tối ưu hiệu suất. o Có thể ưu tiên một số yêu cầu quan trọng như truy xuất bộ nhớ ảo.
  • 40. • Kernel duy trì bảng trạng thái thiết bị, mỗi mục lưu thông tin loại thiết bị, địa chỉ, trạng thái (bận, nhàn rỗi, không hoạt động). • Nếu thiết bị bận, hệ điều hành theo dõi loại yêu cầu và các tham số liên quan. 2. Quản lý trạng thái thiết bị 3. Cải thiện hiệu suất I/O Ngoài lập lịch, hệ điều hành còn sử dụng: • Buffering (đệm dữ liệu): Tăng tốc truyền dữ liệu giữa thiết bị và bộ nhớ. • Caching (bộ nhớ đệm): Lưu trữ dữ liệu thường dùng để truy cập nhanh hơn. • Spooling: Hỗ trợ xử lý nhiều yêu cầu I/O cùng lúc.
  • 41. 12.4.2 Đệm (Buffering) 2. Mục đích sử dụng o Giải quyết chênh lệch tốc độ  Khi tốc độ giữa bên gửi và bên nhận khác nhau.  Sử dụng double buffering để ghi dữ liệu xuống đĩa trong khi tiếp tục nhận dữ liệu mới. o Điều chỉnh kích thước truyền dữ liệu  Giúp phân mảnh và tái tạo dữ liệu  Ví dụ: Chia nhỏ dữ liệu lớn thành các gói tin nhỏ khi gửi, sau đó ghép lại khi nhận. o Hỗ trợ "copy semantics" trong I/O  Đảm bảo dữ liệu được ghi vào đĩa đúng với trạng thái khi ứng dụng gọi write().  Hệ điều hành sao chép dữ liệu từ bộ đệm ứng dụng vào bộ đệm kernel trước khi ghi.  Tăng độ tin cậy nhưng có chi phí xử lý; có thể tối ưu bằng virtual memory mapping và copy-on-write. 1. Khái niệm o Là vùng nhớ trung gian giữa hai thiết bị hoặc giữa thiết bị và ứng dụng. o Giúp tối ưu hóa tốc độ truyền dữ liệu, điều chỉnh kích thước dữ liệu, và đảm bảo tính nhất quán khi ghi dữ liệu.
  • 42. 12.4.3 Bộ nhớ đệm (Caching) 🧠 Caching (Bộ nhớ đệm - Lưu tạm để dùng lại) - Mục đích: Tăng tốc độ truy cập dữ liệu bằng cách lưu trữ tạm những dữ liệu được dùng thường xuyên. - Ví dụ thực tế: Trình duyệt web lưu lại hình ảnh logo Google bạn đã xem, lần sau mở lại sẽ nhanh hơn vì không cần tải lại từ internet.Khi dùng: Khi dữ liệu có thể được dùng lại nhiều lần. 📥 Buffering (Bộ nhớ đệm - Chờ xử lý xong) - Mục đích: Giảm độ trễ và xử lý trơn tru khi tốc độ nhập dữ liệu và xử lý không đồng bộ nhau. - Ví dụ thực tế: Khi bạn xem video online, máy sẽ tải trước một phần vào bộ nhớ tạm (buffer) để bạn xem không bị giật.Khi dùng: Khi tốc độ đọc và ghi không đều nhau, ví dụ: ghi dữ liệu vào đĩa, đọc file lớn, truyền mạng...
  • 43. 12.4.4 Spooling và Đặt trước Thiết bị 1. Spooling (Simultaneous Peripheral Operation On-Line) Khái niệm: Spooling sử dụng bộ đệm để lưu trữ tạm thời đầu ra của thiết bị không thể xử lý nhiều luồng dữ liệu đồng thời, như máy in. Cách hoạt động: 1. Hệ điều hành ghi đầu ra của từng ứng dụng vào tệp spool trên bộ nhớ thứ cấp. 2. Khi máy in rảnh, hệ thống xếp hàng tệp spool và gửi đến máy in từng tệp một. 3. Một tiến trình daemon hoặc một luồng trong kernel chịu trách nhiệm quản lý hàng đợi. 4. Người dùng có thể hiển thị hàng đợi, hủy lệnh in, tạm dừng in, v.v. 2. Đặt trước Thiết bị (Device Reservation) Một số thiết bị (ổ băng từ, máy in) không thể xử lý đa luồng I/O đồng thời. Hai cách tiếp cận để xử lý truy cập đồng thời: 1. Spooling: Điều phối các yêu cầu đầu ra bằng cách sử dụng bộ đệm. 2. Đặt trước thiết bị:  Một tiến trình cấp phát thiết bị nhàn rỗi và hủy cấp phát sau khi sử dụng.  Một số hệ điều hành giới hạn số tay cầm tệp mở trên mỗi thiết bị.  Windows hỗ trợ tham số trong OpenFile() để quy định quyền truy cập của luồng đồng thời khác.  Trách nhiệm tránh deadlock thuộc về ứng dụng.
  • 44. 12.4.5 Xử lý lỗi 1. Hệ Điều Hành & Xử Lý Lỗi  Hệ điều hành sử dụng bộ nhớ được bảo vệ → Giúp chống lại lỗi phần cứng & ứng dụng.  Lỗi I/O có thể là tạm thời hoặc vĩnh viễn: o Lỗi tạm thời: Mạng quá tải, đọc đĩa thất bại → Hệ điều hành thử lại. o Lỗi vĩnh viễn: Hỏng bộ điều khiển đĩa → Khó phục hồi. 2. Cơ Chế Xử Lý Lỗi Của Hệ Điều Hành  Quy tắc chung: Lệnh hệ thống I/O trả về trạng thái thành công/thất bại.  UNIX sử dụng errno để trả về mã lỗi → Có khoảng 100 mã lỗi mô tả nguyên nhân lỗi. 3. Báo Cáo Lỗi Của Phần Cứng  Một số phần cứng cung cấp thông tin lỗi chi tiết, nhưng hệ điều hành không luôn hiển thị đầy đủ.  Thiết bị SCSI báo cáo lỗi theo 3 mức chi tiết: 1. Sense key: Bản chất lỗi (lỗi phần cứng, yêu cầu không hợp lệ, v.v.). 2. Additional sense code: Loại lỗi (tham số lệnh không hợp lệ, lỗi tự kiểm tra, v.v.). 3. Additional sense-code qualifier: Chi tiết lỗi cụ thể hơn (tham số nào bị lỗi, phần cứng nào hỏng, v.v.). 4. Nhật Ký Lỗi Của Thiết Bị SCSI  Nhiều thiết bị SCSI có nhật ký lỗi nội bộ → Máy chủ có thể truy xuất nhưng ít khi được sử dụng.
  • 45. 12.4.6 Bảo vệ I/O  Tiến trình người dùng có thể vô tình hoặc cố ý thực hiện lệnh I/O bất hợp pháp, gây gián đoạn hệ thống.  Hệ điều hành cần cơ chế bảo vệ để ngăn chặn các thao tác không hợp lệ này. 1. Mối Liên Hệ Giữa Lỗi và Bảo Vệ 2. Cơ Chế Ngăn Chặn Lệnh I/O Bất Hợp Pháp  Tất cả lệnh I/O đều là lệnh đặc quyền → Người dùng không thể thực hiện trực tiếp.  Thực hiện I/O phải thông qua system call → Hệ điều hành kiểm tra và xử lý yêu cầu.  Hệ điều hành chạy ở chế độ giám sát (monitor mode) để kiểm soát quá trình này.
  • 46. 12.4.6 Bảo vệ I/O  Hạt nhân có thể cho phép cấp phát bộ nhớ đồ họa theo tiến trình.  Chỉ một tiến trình được sử dụng một vùng bộ nhớ đồ họa tại một thời điểm, đảm bảo hiệu suất và bảo mật. 4. Cơ Chế Khóa (Locking Mechanism) 3. Bảo Vệ Bộ Nhớ Ánh Xạ I/O & Cổng I/O  Hệ thống bảo vệ bộ nhớ ngăn chặn truy cập trái phép vào các vùng nhớ ánh xạ I/O.  Tuy nhiên, một số phần mềm (game, chỉnh sửa video, phát video) cần quyền truy cập bộ nhớ đồ họa để tăng tốc xử lý.
  • 47. 12.4.7 Cấu trúc dữ liệu của Kernel 2. Hệ Điều Hành UNIX & Xử Lý I/O  UNIX hỗ trợ I/O cho tập tin người dùng, thiết bị thô (raw devices), tiến trình.  Mỗi loại I/O có cách xử lý khác nhau: o Tập tin người dùng: Kiểm tra bộ nhớ đệm (buffer cache) trước khi đọc từ đĩa. o Đĩa thô (raw disk): Yêu cầu kích thước đọc là bội số của sector, dữ liệu căn chỉnh theo sector. o Ảnh tiến trình (process image): Chỉ cần sao chép dữ liệu từ bộ nhớ.  UNIX sử dụng cấu trúc hướng đối tượng, trong đó: o Bản ghi tập tin mở (open-file record) chứa bảng phân phối (dispatch table). o Bảng phân phối giữ con trỏ đến các hàm xử lý phù hợp theo loại tập tin. 1. Kernel & Cấu Trúc Dữ Liệu I/O  Kernel quản lý trạng thái các thành phần I/O thông qua các cấu trúc dữ liệu nội bộ.
  • 48. 3. Hệ Điều Hành Windows & Cơ Chế Truyền Thông Điệp  Windows sử dụng truyền thông điệp (message-passing) để xử lý I/O.  Quy trình thực hiện I/O trong Windows: o Yêu cầu I/O → Chuyển thành thông điệp. o Thông điệp gửi qua kernel → Đến trình quản lý I/O (I/O manager). o I/O manager gửi đến trình điều khiển thiết bị (device driver). o Mỗi bước có thể thay đổi nội dung thông điệp.  Ưu & Nhược Điểm: o Tăng chi phí xử lý so với các kỹ thuật dựa trên dữ liệu chia sẻ. o Đơn giản hóa thiết kế hệ thống I/O. o Tăng tính linh hoạt trong quản lý I/O.
  • 49. 12.4.8 Quản lý Năng lượng  Vấn đề năng lượng: Trung tâm dữ liệu tiêu thụ lượng điện khổng lồ, cả cho vận hành máy chủ và hệ thống làm mát (đôi khi tốn gấp 2 lần điện năng máy chủ).  Giải pháp tiết kiệm: Làm mát tự nhiên bằng không khí, nước hồ, năng lượng mặt trời.  Vai trò của hệ điều hành: o Điều chỉnh tải xử lý, di chuyển tiến trình, đưa hệ thống vào trạng thái nhàn rỗi. o Tắt CPU, thiết bị I/O không cần thiết để giảm tiêu thụ điện. o Vô hiệu hóa các lõi CPU không dùng đến, kích hoạt lại khi cần. 1. Quản lý năng lượng trong trung tâm dữ liệu 2. Quản lý năng lượng trong thiết bị di động  Mục tiêu: Giảm tiêu thụ điện, kéo dài tuổi thọ pin.  Công nghệ Android sử dụng: 1. Power Collapse – Đưa thiết bị vào trạng thái ngủ sâu, tắt màn hình, loa, I/O, CPU về mức tiêu thụ thấp nhất. 2. Quản lý năng lượng cấp thành phần – Xây dựng cây thiết bị, theo dõi hoạt động phần cứng, tắt các thành phần không sử dụng. 3. Wakelocks – Giữ thiết bị thức khi cần (chơi game, tải dữ liệu, cập nhật ứng dụng).
  • 50.  ACPI (Giao diện Cấu hình Nâng cao và Quản lý Năng lượng) giúp hệ điều hành kiểm soát phần cứng, quản lý thiết bị động (hot-plug), xử lý lỗi và tối ưu điện năng.  Khi hệ điều hành cần tắt thiết bị, nó gọi trình điều khiển → ACPI → phần cứng thực hiện. Kết luận  Quản lý năng lượng giúp tiết kiệm chi phí, kéo dài tuổi thọ thiết bị, giảm tác động môi trường và tối ưu hiệu suất hệ thống. 3. Quản lý thiết bị & ACPI
  • 52. 1 2 1. Chuyển đổi Yêu cầu I/O thành Hoạt động Phần cứng Giới thiệu về cách hệ điều hành kết nối yêu cầu I/O từ ứng dụng đến phần cứng. Tầm quan trọng của quá trình này trong việc quản lý thiết bị.
  • 53. 🔹 UNIX: - Không có phần cố định trong tên đường dẫn. - Sử dụng bảng mount để ánh xạ tên đường dẫn với thiết bị. 🔹 MS-DOS (FAT): - Dùng tiền tố (C:, D:) để xác định thiết bị. - Hệ điều hành ánh xạ trực tiếp đến địa chỉ cổng phần cứng. 2. Ánh xạ Tên tệp đến Thiết bị (MS-DOS vs UNIX)
  • 54. 🔹 UNIX: - Thiết bị được tích hợp vào hệ thống tệp chung. - Quyền sở hữu và kiểm soát truy cập áp dụng cho cả thiết bị và tệp. 🔹 MS-DOS: - Không gian tên thiết bị tách biệt hệ thống tệp. - Dễ dàng bổ sung tính năng như spooling (xử lý hàng đợi in). 3. Cách Quản lý Không gian Tên của Thiết bị
  • 55. 4. Hệ điều hành Hiện đại và Quản lý Thiết bị • Hệ điều hành hiện đại linh hoạt trong xử lý I/O: - Sử dụng bảng tra cứu nhiều cấp giữa ứng dụng và phần cứng. - Hỗ trợ trình điều khiển thiết bị động (tải khi cần thiết). • Cách hoạt động: - Phát hiện phần cứng khi khởi động. - Tải trình điều khiển theo yêu cầu hoặc khi thiết bị được cắm vào.
  • 56. 5. Vòng đời của Yêu cầu Đọc (Read I/O) Quy trình xử lý một yêu cầu đọc: 1) Tiến trình gọi read(). 2) Hệ điều hành kiểm tra dữ liệu trong bộ đệm. 3) Nếu không có, tiến trình chờ & yêu cầu gửi đến trình điều khiển. 4) Trình điều khiển cấp phát bộ đệm & gửi lệnh đến bộ điều khiển. 5) Bộ điều khiển thực hiện truyền dữ liệu. 6) Ngắt báo hiệu hoàn tất & dữ liệu được trả về tiến trình.
  • 57. 6. Hệ thống Ngắt và Xử lý Hoàn tất I/O Ngắt trong hệ thống I/O: - Bộ điều khiển tạo ngắt khi dữ liệu sẵn sàng. - Trình xử lý ngắt lưu dữ liệu, báo hiệu hoàn thành I/O. - Hệ điều hành chuyển tiến trình từ trạng thái chờ sang sẵn sàng. Ưu điểm: - Giảm tải CPU, tăng hiệu suất xử lý.
  • 59. Một stream là một kết nối full-duplex giữa driver thiết bị và tiến trình người dùng. STREAMS là một cơ chế trong UNIX System V và nhiều phiên bản UNIX khác, cho phép ứng dụng lắp ráp các pipeline driver một cách động. 1.Giới thiệu về STREAMS
  • 60. 2.Cấu trúc của STREAMS -Một stream bao gồm: •Stream head: Giao tiếp với tiến trình người dùng. •Driver end: Điều khiển thiết bị. •Stream module: Được đặt giữa stream head và driver end. •Mỗi thành phần này chứa một cặp hàng đợi (read queue và write qe). Hình 12.15 Cấu trúc STREAMS.
  • 61. 3.Chức năng của STREAMS Các module Dữ liệu Hỗ trợ kiểm soát luồn Cung cấp chức năng xử lý STREAMS và được đẩy vào stream bằng lệnh ioctl(). Truyền bằng cách thông điệp giữa các hàng đợi trong các module liền kề Một hàng đợi có thể hỗ trợ kiểm soát luồng bằng cách đệm các thông điệp và không chấp nhận thêm thông điệp nếu không có đủ không gian đệm
  • 62. 4.Các lệnh hệ thống trong STREAMS •write(): Ghi dữ liệu thô vào stream. •putmsg(): Cho phép tiến trình người dùng chỉ định một thông điệp. •read(): Đầu luồng nhận một thông điệp từ hàng đợi liền kề và trả về dữ liệu thông thường. •getmsg(): Trả về một thông điệp cho tiến trình người dùng.
  • 63. 1 2 5.Kiểm soát luồng trong STREAMS Hàng đợi hỗ trợ kiểm soát luồng: Đệm các thông điệp và không chấp nhận thông điệp nếu không có đủ không gian đệm. Thông điệp điều khiển: Trao đổi giữa các hàng đợi trong các module liền kề để ngăn chặn tràn hàng đợi.
  • 64. 6.Lợi ích của STREAMS •Khung làm việc mô-đun: STREAMS cung cấp một khung làm việc cho cách tiếp cận mô-đun và gia tăng trong việc viết trình điều khiển thiết bị và giao thức mạng. Hỗ trợ ranh giới thông điệp và thông tin điều khiển: STREAMS cho phép hỗ trợ các ranh giới thông điệp và thông tin điều khiển khi giao tiếp giữa các module Sử dụng lại các module: Các module có thể được sử dụng bởi nhiều luồng và thiết bị khác nhau
  • 65. 12.7 HIỆU SUẤT 1. I/O và Hiệu Suất 5. Cải Thiện Hiệu Suất I/O 2. I/O theo Lập Trình vs I/O Điều Khiển Bằng Ngắt 3. Lưu Lượng Mạng và I/O 4. Giảm Tải Cho CPU với Kênh I/O 7. Tiến Bộ của Thiết Bị I/O 6. Triển Khai Chức Năng I/O 8. Hiệu Suất I/O và Độ Trễ Mạng
  • 66. Mục tiêu cải thiện Ảnh hưởng của I/O  Chuyển đổi ngữ cảnh trong I/O tốn kém, tạo gánh nặng cho CPU và bộ nhớ. 1. I/O và hiệu suất . I/O ảnh hưởng lớn đến hiệu suất hệ thống, gây áp lực lên CPU, bộ nhớ đệm và cơ chế xử lý ngắt.
  • 67. 2. I/O theo lập trình với I/O điều khiển ngắt Tiêu chí I/O theo lập trình I/O điều khiển bằng ngắt Hiệu quả Tốt khi trạng thái chờ bận ít, chi phí ngắt và chuyển đổi ngữ cảnh thấp Tốt khi có nhiều ngắt, giúp tiết kiệm tài nguyên CPU trong thời gian chờ Tài nguyên CPU Tiêu tốn tài nguyên CPU do phải kiểm tra trạng thái thiết bị liên tục Tiết kiệm tài nguyên CPU, CPU chỉ làm việc khi có ngắt Độ trễ Có thể gây độ trễ cao nếu thiết bị chậm Thích hợp với thiết bị chậm, giảm độ trễ khi chờ đợi sự sẵn sàng của thiết bị Chi phí ngắt Không có chi phí ngắt Chi phí ngắt cao, tốn tài nguyên khi xử lý ngắt nhiều Ứng dụng phù hợp Các thiết bị I/O nhanh, ít yêu cầu ngắt Các hệ thống với thiết bị I/O chậm, có số lần ngắt nhiều
  • 68. 3. Lưu lượng và I/O Mạng tạo ra nhiều lần chuyển đổi ngữ cảnh khi truyền dữ liệu giữa máy tính, làm giảm hiệu suất I/O.
  • 69. 4. Giảm Tải Cho CPU với Kênh I/O Sử dụng bộ xử lý I/O (kênh I/O) giúp giảm tải cho CPU chính và duy trì luồng dữ liệu ổn định. Hình 12.16 Giao tiếp giữa các máy tính.
  • 70. 5. Cải thiện hiệu suất I/O  Giảm số lần chuyển đổi ngữ cảnh.  Giảm số lần sao chép dữ liệu trong bộ nhớ khi truyền dữ liệu giữa thiết bị và ứng dụng.  Giảm tần suất ngắt bằng cách sử dụng các lần truyền dữ liệu lớn hơn, bộ điều khiển thông minh và kỹ thuật thăm dò (polling) nếu có thể hạn chế trạng thái chờ bận (busy waiting).  Tăng khả năng xử lý đồng thời bằng cách sử dụng các bộ điều khiển hỗ trợ DMA hoặc kênh I/O để giảm tải việc sao chép dữ liệu đơn giản khỏi CPU.  Chuyển một số thao tác xử lý cơ bản vào phần cứng, cho phép chúng hoạt động đồng thời với CPU và bus.  Cân bằng hiệu suất giữa CPU, bộ nhớ, bus và I/O, vì nếu một trong số chúng bị quá tải, các thành phần khác có thể bị gián đoạn hoặc nhàn rỗi.
  • 71. 1 2 3 6.Triển Khai Chức Năng I/O Kiểm tra tính xác thực của nguồn thông tin. Sử dụng công cụ kiểm tra thông tin để đảm bảo tính chính xác. Nhận diện và tránh thiên vị trong quá trình xử lý.
  • 72. 7. Tiến Bộ của Thiết Bị I/O Các thiết bị bộ nhớ không bay hơi (NVM) có tốc độ ngày càng cao, yêu cầu các hệ thống I/O và thuật toán tối ưu để tận dụng tối đa tốc độ.
  • 73. 8. Hiệu Suất I/O và Độ Trễ Mạng Độ trễ mạng có thể làm giảm hiệu suất I/O, tạo thêm "thuế" hiệu suất cho hệ thống.
  • 75. Cảm ơn các bạn đã lắng nghe