BÀI TẬP LỚN
MÔN LÝ THUYẾT HỆ ĐIỀU HÀNH
Thành viên nhóm:
Bùi Khắc Hoài Nam
Nguyễn Hữu Hoài Nhân
Tạ Quang Vinh
Nguyễn Vũ Hoàng
Nguyễn Tăng Trường
Lê Đình Trung
Trần Ngọc Toàn
Trần Thị Mỹ Kiều
Mai Viết Việt
Trần Phúc Thịnh
Lê Minh Thắng
Chương 13: Quản Lý Nhập Xuất
Tổng Quát
Phần Cứng I/O
Ứng Dụng Giao Diện I/O
Hệ Thống Con I/O Của Nhân
Chuyển Đổi I/O Đến Phần Cứng
Streams
Năng Lực
Tóm tắt
Mục Đích
Nắm được các cơ sở của phần cứng I/O.
Biết được các dịch vụ I/O được cung cấp bởi hệ điều
hành.
Hiểu cách hệ điều hành làm cầu nối giữa giao diện phần
cứng và giao diện ứng dụng.
Biết các khía cạnh về chức năng của I/O và các nguyên
lý thiết kế hệ điều hành để cải tiến chức năng I/O.
Tổng Quát
Máy tính có 2 công việc chính : nhập xuất và xử lý.
Vai trò của hệ điêu hành trong máy tính là quản ly, điều
khiển nhập xuất và hoạt động nhập xuất
Cách điều khiển các thiết bị được nối kết tới máy tính là
mối quan tâm chủ yếu của người thiết kế hệ điều hành.
Công nghệ thiết bị I/O thể hiện hai xu hướng trái ngược
nhau:
Tăng sự chuẩn hoá phần mềm và giao diện phần cứng.
Tăng sự đa dạng của các thiết bị I/O.
−
Device drive(trình điều khiển) Để hợp nhất các thiết bị
mới vào máy tính và hệ điều hành
Phần cứng nhập xuất
Phần cứng I/O được chia làm 3 loại phổ biến
Thiết bị giao diện người dùng (màn hình, bàn phím,
chuột, máy in )
Thiết bị lưu trữ ( đĩa, băng từ, card giao tiếp )
Thiết bị truyền : như modem )
Các thiết bị giao tiếp với máy bằng một điểm nối
kết (cổng-port) ví dụ : cổng tuần tự,usb…
Một bus là một tập hợp dây dẫn truyền thông tin
giữa máy tính và các thiết bị nhập xuất. Ví dụ:
PCI bus, SCSI bus
Kiến trúc PC thông thường
I/O hardware
Các lệnh vào ra điều khiển các thiết bị vào ra
Môt cổng I/O thông thường có 4 thanh ghi, đó là status,
control,data-in, và thanh ghi data-out.
Địa chỉ các cổng thiết bị nhập xuất trên PC
Polling( thăm dò)
Polling giúp CPU xác định được trạng thái cua thiết bi
Busy bit : bít bận
Command-ready bit : bit sẵn sàng nhận lệnh
Là một vòng lặp byte đợi vào ra từ thiết bị: Nó ở trong một vòng lặp,
đọc thanh ghi trang thái cho đến khi bit bận. Ví dụ đọc trạng thanh
ghi trạng thái của cổng tuần tự( serial port đê tránh tràn bộ đệm gây
ra việc mất dữ liệu).
Nếu bộ điều khiên và thiết bị nhanh thì phương pháp này là một
phương pháp phù hợp nhưng nếu chờ đợi lâu nó sẽ chuyển sang
một tác vụ khác. polling sẽ không hiệu quả khi được lặp lại nhiều
lần, hiếm khi tìm một thiết bị sẳn sàng trong lần thăm dò đầu tiên,
trong khi cần dùng CPU để xử lý cho các công việc khác ( bộ điều
khiển phần cứng nên có một cơ chế báo trạng thái lỗi cho bus).
Interrupts (ngắt)
Khái niêm: ngắt là Cơ chế phần cứng cho phép một
thiết bị thông báo tới CPU
Phần cứng CPU có một dây dẫn gọi là dòng yêu cầu
ngắt (interrupt-request line) chứa các ngắt đến
Khi xuất hiên thông báo yêu cầu ngắt:
CPU lưu một lượng nhỏ trạng thái như giá trị hiện
hành của con trỏ lệnh và nhảy tới thủ tục của bộ quản
lý ngắt(interrupt-handler) tại địa chỉ cố định trong bộ
nhớ
Bộ quản lý ngắt xác định nguyên nhân gây ra ngắt,
thực hiện xử lý cần thiết, thực thi chỉ thị từ ngắt để trả
về CPU trạng thái thực thi trước khi ngắt.
Hinh 2 Chu kỳ nhập/xuất xử lý ngắt
DMA((direct memory-access-
DMA).
•
Khái niệm: chuyển một số công việc
truyền dữ liệu lớn ( như ổ đĩa) tới một bộ
điều khiển có mục đích đặc biệt
•
Chuyển dữ liệu trực tiếp vào ra mà không
cần CPU
Hình 3 Các bước trong việc truyền
dữ liệu của DMA
Ứng dụng giao diên nhập/xuất
Sự khác nhau của các thiết bị nhâp xuất được lưu trong
kermel module được gọi là device driver.( điều khiển thiết
bị)
Điều khiển thiết bị là để che đi sự khác biệt giữa các bộ
điều khiển thiết bị từ hệ thống I/O con của nhân
Một thiết bị được cho có thể có nhiều loại khác nhau:
Dòng ký tự hay khối
Truy xuất tuần tự hay ngẫu nhiên
Đồng bộ hay bất đồng bộ
Có thể chia sẻ hay chuyên dụng
Tốc độ hoạt động
Đọc – ghi, chỉ đọc hay chỉ ghi
Hình 4: Các đặc điểm của các thiết
bị nhập xuất
Thiết bị vào ra theo khối và ký tự
Thiết bị I/O theo khối giữ lại tất cả các khía cạnh
cần thiết cho việc điều khiển đĩa truy cập và khối
khác theo định hướng thiết bị.
Các lệnh read (),write() và seek()
Dạng nguyên bản của I/O hay truy cập tập tin hệ thông
Truy nhâp file theo Phân vùng bộ nhớ
Thiết bị ký tự bao gồm keybroards, chuôt, cổng
tuần tự
Các hàm get() ,put()
Những lớp thư viện ở trên cho phép chỉnh sữa và
xử lý bộ đêm . Ví du khi gõ backspace, xóa ký tự
trước đó ra khỏi dòng
Network Devices
Khối và ký tự đều có một giao diện riêng
Unix và Windows NT/9x/2000 sử dụng các giao diện
socket (*) (được dùng như một giao diện cho một ứng
dụng nền quan trọng )
Phân chia thủ tục mạng từ các thao tác mạng
Lời gọi Select() sẽ trả về 3 con trỏ tới 3 tập các socket
có thể dọc, ghi dữ liệu và các exceptional conditions chờ
xử lý
Nhiều phương pháp tiếp cận khác nhau(pipes, FIFOs,
streams, queues, mailboxes)
Đồng hồ và bộ tính giờ
Cung cấp ba chức năng cơ bản
Cho thời gian hiện tại
Cho thời gian đã qua
Đặt một giờ để kích hoạt hoạt động X vào thời gian T
Programmable interval timer được sử dụng cho việc
tính toán thời gian và định kỳ ngắt
Các lời gọi hệ thống ioctl(). Cho phép một ứng dụng để
truy cập các tính năng mà có thể được thực hiện bất kỳ
điều khiển thiết bị, mà không cần phải phát ra một lời gọi
hệ thống mới
Trên nhiều máy tính, tỷ lệ gián đoạn tạo ra bởi đồng hồ
phần cứng là từ 18 đến 60 nhịp (tick) trong một giây
Blocking and Nonblocking I/O
Blocking - quá trình bị tạm ngưng cho đến khi
I/O hoàn thành dễ sử dụng và dễ hiểu
Không đáp ứng được một số trường hợp
Nonblocking – lặp lai lời gọi nhiều nhất có thể sử
dụng trong giao diện người sử dụng, lưu dữ liệu
vào bộ đệm ( nhâp du liêu từ bàn fim, xử lý trên
màn hình
Một thay thế cho lời gọi nonblocking là
ansynchronous- trả về giá trị ngay lâp tức mà
không cần I/O kết thúc
Hình 5
Hệ thống con nhâp xuất của nhân
Phần nhân cung cấp nhiều tiện ích liên quan đến
nhập xuất: định biểu thời gian nhâp xuất vùng
đệm, vùng lưu trữ, vùng chứa, đặt trước thiết bị
và quản lí lỗi.
Định biểu tập hợp các yêu cầu nhâp xuât: xác
định săp xếp thực thi chúng sao cho hợp lí.
Cách thức : duy trì hàng đợi cho mỗi thiết bị
Chức năng
Có thể cải tiến hiệu năng hệ thống
Có thể chia sẻ truy xuất thiết bị đồng đều giữa các quá trình
Giảm thời gian chờ đợi
Hệ thống con nhập xuất của nhân
(tiếp)
Vùng đệm:
Vùng đệm là một vùng bộ nhớ lưu trữ dữ liệu
trong khi chúng được chuyển giữa hai thiết bị
hay giữa thiết bị và ứng dụng
3 lý do để thực hiện vùng đệm:
Không khớp tốc độ giữa các thiết bị
Làm thích ứng giữa các thiết bị có kích thước
truyền dữ liệu khác nhau.
Bảo vệ “ngôn ngữ sao chép” cho nhập/xuất ứng
dụng.
Hệ thống con nhập xuất của nhân
(tiếp)
Vùng lưu trữ: (cache) là một vùng bộ nhớ nhanh quản lý
các bản sao dữ liệu. Vùng lưu trữ giữ vừa đủ một bản
sao trên thiết bị lưu trữ.
Vùng chứa: là một vùng đệm giữ dữ liệu xuất cho một
thiết bị như máy in (mà không thể chấp nhận các dòng
dữ liệu đan xen nhau.)
Đặt trước thiết bị:
Phân phối và thu hồi các thiết bị cho tiến trình
Ngăn chặn deaklock( tắc ngẽn).
Quản lí lỗi:
Hệ điều hành cung cấp sử dung bộ nhớ bảo vệ có thể chống
lai nhiều lỗi phân cứng
Trả về một mã lỗi khi yêu cầu vào ra lỗi
Hệ thống con nhập xuất của nhân
(tiếp)
Sự bảo vệ I/O : Lỗi liên quan chặt chẽ đến
vấn đề bảo vệ
Để làm I/O cho một chương trình người
dùng thực hiện một cuộc gọi hệ thống để
yêu cầu hệ điều hành thực hiện I/O trên
tên của nó.
Tóm lược
Hệ thống thay thế I/O giám sát các thủ tục này:
Quản lý các không gian tên cho tập tin và các thiết bị.
Kiểm soát truy cập vào các file và các thiết bị.
Hoạt động kiểm soát (ví dụ, một modem không thể
tìm kiếm ()).
Hồ sơ-hệ thống phân bổ không gian
Thiết bị phân bổ
Đệm, bộ nhớ đệm, và cuộn
I / O lập lịch trình
Tình trạng thiết bị giám sát, xử lý lỗi, và phục hồi thất
bại
Chuyển yêu cầu vào ra tới hoạt
động nhâp xuất
•
Cách đọc môt tâp tin từ đĩa
•
Xác định thiết bị chứa file
•
Dịch tên tương ứng với thiết bị
•
Đọc dữ liệu từ đĩa vào bộ đệm
•
Trả điêu khiên cho tiên trình