Giáo trình Hệ điều hành - Chương 11: Qaurn lý hệ thống nhập/xuất - Nguyễn Phú Trường

I Mục đích

Sau khi học xong chương này, người học nắm được những kiến thức sau:

• Hiểu các cơ sở của phần cứng nhập/xuất

• Hiểu các dịch vụ nhập/xuất đượ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 năng lực của nhập/xuất và các nguyên lý thiết kế hệ điều

hành để cải tiến năng lực nhập/xuất

pdf12 trang | Chia sẻ: hienduc166 | Lượt xem: 597 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giáo trình Hệ điều hành - Chương 11: Qaurn lý hệ thống nhập/xuất - Nguyễn Phú Trường, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
 tin không thể mở,..). Ngược lại, một số phần cứng cung cấp thông tin lỗi được mô 
tả chi tiết mặc dù nhiều hệ điều hành hiện tại không được thiết kế để truyền đạt thông 
tin này tới ứng dụng. 
VI.6 Cấu trúc dữ liệu nhân 
Nhân cần giữ thông tin trạng thái về việc dùng các thành phần nhập/xuất. Nó thực 
hiện như thế thông qua một dãy các cấu trúc dữ liệu trong nhân như bảng tập tin đang 
mở. Nhân dùng nhiều cấu trúc tương tự để ghi vết các nối kết mạng, giao tiếp thiết bị 
dạng ký tự và các hoạt động nhập/xuất khác. 
Tóm lại, hệ thống con nhập/xuất điều phối tập hợp dịch vụ mở rộng sẳn có đối với 
ứng dụng và những phần khác của nhân. Hệ thống con nhập/xuất điều khiển 
• Quản lý không gian tên cho các tập tin và các thiết bị 
• Điều khiển truy xuất tới các tập tin và các thiết bị 
• Điều khiển hoạt động (thí dụ, một modem không thể tìm seek()) 
• Cấp phát không gian hệ thống tập tin 
• Cấp phát thiết bị 
• Vùng đệm, vùng lưu trữ và vùng chứa 
• Định thời biểu nhập/xuất 
• Điều khiển trạng thái thiết bị, quản lý lỗi, và phục hồi lỗi 
• Cấu hình và khởi tạo trình điều khiển thiết bị 
Cấp cao hơn của hệ thống con nhập/xuất truy xuất thiết bị qua giao diện đồng nhất 
được cung cấp bởi các trình điều khiển thiết bị 
VII Chuyển nhập/xuất tới hoạt động phần cứng 
Phần trước chúng ta mô tả việc bắt tay giữa một trình điều khiển thiết bị và bộ 
điều khiển thiết bị, nhưng chúng ta không giải thích cách hệ điều hành nối kết yêu cầu 
ứng dụng tới tập hợp dây mạng hay một sector đĩa xác định như thế nào. Chúng ta hãy 
xem xét một thí dụ đọc một tập tin từ đĩa. Ứng dụng tham chiếu tới dữ liệu bằng tên 
tập tin. Trong một đĩa, hệ thống tập tin ánh xạ từ tên tập tin thông qua các thư mục hệ 
thống tập tin để lấy không gian cấp phát của tập tin. 
Các hệ điều hành hiện đại đạt được khả năng linh hoạt cao từ nhiều giai đoạn 
của bảng tra cứu trong đường dẫn giữa yêu cầu và bộ điều khiển thiết bị vật lý. Các cơ 
chế truyền yêu cầu giữa ứng dụng và trình điều khiển là phổ biến. Do đó, chúng ta có 
thể giới thiệu các thiết bị mới và trình điều khiển vào máy tính mà không biên dịch lại 
nhân. Thật vậy, một số hệ điều hành có khả năng nạp trình điều khiển thiết bị theo yêu 
cầu. Tại thời điểm khởi động, hệ thống đầu tiên thăm dò các bus phần cứng để xác 
định thiết bị nào hiện diện và sau đó hệ thống nạp các trình điều khiển cần thiết ngay 
lập tức hay khi được yêu cầu bởi một yêu cầu nhập/xuất đầu tiên. 
Bây giờ chúng ta mô tả chu trình sống điển hình của một yêu cầu đọc bị nghẽn, 
như trong hình XI-5. Hình này đề nghị rằng một thao tác nhập/xuất yêu cầu nhiều 
bước và tiêu tốn số lượng lớn chu kỳ CPU. 
1) Một quá trình phát ra một lời gọi hệ thống read() tới bộ mô tả tập tin đã được 
mở trước đó. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 249 
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 
2) Mã lời gọi hệ thống trong nhân kiểm tra tính đúng đắn của các tham số. Trong 
trường hợp nhập, nếu dữ liệu đã có sẳn trong vùng đệm thì dữ liệu được trả về 
tới quá trình và yêu cầu nhập/xuất được hoàn thành. 
3) Ngược lại, nhập/xuất vật lý cần được thực hiện để mà quá trình được xóa từ 
hàng đợi thực thi và được đặt vào hàng đợi chờ cho thiết bị, và yêu cầu 
nhập/xuất được lập thời biểu. Cuối cùng, hệ con nhập/xuất gởi yêu cầu tới 
trình điều khiển thiết bị. Phụ thuộc vào hệ điều hành, yêu cầu được gởi bằng 
lời gọi thủ tục con hay bằng thông điệp trong nhân. 
4) Trình điều khiển thiết bị cấp phát vùng đệm nhân để nhận dữ liệu và lập thời 
biểu nhập/xuất. Cuối cùng, trình điều khiển gởi lệnh tới bộ điều khiển thiết bị 
bằng cách viết vào thanh ghi điều khiển của thiết bị. 
5) Trình điều khiển thiết bị thao tác trên phần cứng thiết bị để thực hiện truyền 
dữ liệu. 
6) Trình điều khiển có thể thăm dò trạng thái và dữ liệu hay thiết lập truyền 
DMA vào bộ nhớ nhân. Chúng ta thừa nhận rằng truyền được quản lý bởi bộ 
điều khiển DMA sinh ra một ngắt khi việc truyền hoàn thành. 
7) Bộ quản lý ngắt tương ứng nhận ngắt bằng bằng vector ngắt, lưu bất cứ dữ liệu 
cần thiết, báo hiệu trình điều khiển thiết bị và trả về từ ngắt. 
8) Trình điều khiển thiết bị nhận tín hiệu, xác định yêu cầu nhập/xuất hoàn thành, 
xác định trạng thái yêu cầu và báo hiệu cho hệ con nhập/xuất nhân rằng yêu 
cầu đã hoàn thành. 
9) Nhân truyền dữ liệu hay trả về mã tới không gian địa chỉ của quá trình được 
yêu cầu và di chuyển quá trình từ hàng đợi chờ tới hàng đợi sẳn sàng. 
10) Di chuyển quá trình tới hàng đợi sẳn sàng không làm nghẽn quá trình. Khi bộ 
định thời biểu gán quá trình tới CPU, quá trình tiếp tục thực thi tại thời điểm 
hoàn thành của lời gọi hệ thống. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 250 
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 
Hình 0-5 Chu trình sống của yêu cầu nhập/xuất 
VIII Năng lực 
Nhập/xuất là một yếu tố quan trọng trong năng lực hệ thống. Nó đặt nhiều yêu 
cầu trên CPU để thực thi mã trình điều khiển thiết bị và định thời biểu quá trình công 
bằng và hiệu quả khi các quá trình này nghẽn và không nghẽn. Chuyển đổi ngữ cảnh 
chú trọng đến CPU và vùng lưu trữ phần cứng. Nhập/xuất cũng hiển thị tính không 
hiệu quả trong các cơ chế quản lý ngắt trong nhân, và nhập/xuất tải xuống bus bộ nhớ 
trong suốt thời gian chép giữa vùng đệm nhân và không gian dữ liệu ứng dụng. Chép 
một cách hợp lý tất cả yêu cầu này là một trong những quan tâm chính của kiến trúc 
máy tính. 
Mặc dù các máy tính hiện đại có thể quản lý hàng ngàn ngắt trên giây, quản lý 
ngắt là một tác vụ tương đối đắt: mỗi ngắt gây cho hệ thống thực hiện một thay đổi 
trạng thái, để thực thi bộ quản lý ngắt và sau đó phục hồi trạng thái. Nhập/xuất được 
lập trình có thể hiệu quả hơn nhập/xuất hướng ngắt (interrupt-driven I/O) nếu số chu 
kỳ tiêu tốn cho việc chờ đợi bận là không quá mức. Hoàn thành một thao tác 
nhập/xuất không nghẽn một quá trình dẫn đến toàn bộ chi phí của việc chuyển đổi 
ngữ cảnh. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 251 
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 
Chúng ta có thể tận dụng nhiều nguyên tắc để cải tiến tính hiệu quả của 
nhập/xuất: 
• Cắt giảm số lượng chuyển ngữ cảnh 
• Cắt giảm số lần dữ liệu phải được chép vào bộ nhớ trong khi truyền giữa thiết 
bị và ứng dụng. 
• Cắt giảm tần số xuất hiện ngắt bằng cách dùng sự truyền lớn, bộ điều khiển 
thông tin và vùng chứa (nếu chờ đợi bận có thể là nhỏ nhất). 
• Gia tăng tính đồng hành dùng các bộ điều khiển tri thức DMA (DMA-
knowledgeable controllers) hay các kênh để giảm gánh nặng chép dữ liệu đơn 
giản từ CPU. 
• Di chuyển các hàm xử lý cơ bản vào phần cứng, để cho phép họat động của 
chúng trong các bộ điều khiển thiết bị đồng hành với các thao tác CPU và bus. 
• Cân bằng CPU, hệ con bộ nhớ, bus và năng lực nhập/xuất vì quá tải trong một 
vùng bất kỳ sẽ gây rảnh rỗi trong vùng khác. 
Ở đây các chức năng nhập/xuất nên được cài đặt-trong phần cứng thiết bị, trong 
trình điều khiển thiết bị hay trong phần mềm ứng dụng? Chúng ta quan sát tiến trình 
được mô tả trong hình XI-6. 
Hình 0-6 Tiến trình mô tả chức năng thiết bị 
• Khởi đầu, chúng ta cài đặt giải thuật nhập/xuất thử nghiệm tại cấp ứng dụng vì 
mã ứng dụng là linh họat và những lỗi ứng dụng là không chắc gây ra sự sụp 
đổ hệ thống. Ngoài ra, bằng phát triển mã tại cấp ứng dụng, chúng ta tránh yêu 
cầu khởi động hay nạp lại trình điều khiển thiết bị sau mọi thay đổi tới mã. 
Tuy nhiên, cài đặt cấp ứng dụng có thể không đủ vì chi phí chuyển ngữ cảnh 
và vì ứng dụng không thể lấy lợi điểm của những cấu trúc dữ liệu nhân bên 
trong và chức năng nhân (như truyền thông điệp hữu hiệu trong nhân, luồng và 
khóa). 
• Khi một giải thuật cấp ứng dụng chứng minh tính giá trị của nó, chúng ta có 
thể cài đặt lại nó trong nhân. Điều này có thể cải tiến năng lực nhưng nỗ lực 
phát triển có thử thách nhiều hơn vì nhân hệ điều hành lớn, phần mềm hệ 
thống phức tạp. Ngoài ra, việc cài đặt trong nhân phải được gỡ rối toàn bộ để 
tránh hư hỏng dữ liệu và sụp đổ hệ thống. 
• Năng lực cao nhất có thể đạt được bởi cài đặt chuyên dụng trong phần cứng, 
trong thiết bị hay trong bộ điều khiển. Sự bất lợi của việc cài đặt phần cứng 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 252 
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 
gồm khó khăn và chi phí của việc tạo những cải tiến xa hơn hay sửa lỗi, thời 
gian phát triển tăng (tháng hơn là ngày) và khả năng linh hoạt giảm. 
IX Tóm tắt 
Các thành phần phần cứng cơ bản được nạp vào nhập/xuất là các bus, các bộ 
điều khiển thiết bị, và chính các thiết bị. Công việc chuyển dữ liệu giữa thiết bị và bộ 
nhớ chính được thực hiện bởi CPU khi nhập/xuất được lập trình, hay được chuyển tải 
tới bộ điều khiển DMA. Module nhân điều khiển một thiết bị là một trình điều khiển 
thiết bị. Giao diện lời gọi hệ thống cung cấp tới ứng dụng được thiết kế để quản lý 
nhiều chủng loại cơ bản của phần cứng, sockets mạng và bộ đếm thời gian đến được 
lập trình. 
Hệ con nhập/xuất của nhân cung cấp nhiều dịch vụ. Các dịch vụ này là định 
thời biểu nhập/xuất, vùng đệm, vùng chứa, quản lý lỗi và đặt trước thiết bị. Một dịch 
vụ khác là dịch tên, để tạo nối kết giữa các thiết bị phần cứng và tên tập tin tượng 
trưng được dùng bởi ứng dụng. Nó liên quan nhiều cấp ánh xạ mà dịch từ tên chuỗi 
ký tự tới một trình điều khiển thiết bị xác định và địa chỉ thiết bị và sau đó tới địa chỉ 
vật lý của cổng nhập/xuất hay bộ điều khiển bus 
Các lời gọi hệ thống nhập/xuất tính chi phí theo thuật ngữ tiêu tốn CPU vì 
nhiều lớp phần mềm giữa thiết bị vật lý và ứng dụng. Các lớp này ngụ ý chi phí 
chuyển ngữ cảnh để đi qua phạm vi bảo vệ của nhân, của tín hiệu và bộ quản lý ngắt 
để phục vụ các thiết bị nhập/xuất, và của tải trên CPU và hệ thống bộ nhớ để chép dữ 
liệu giữa vùng đệm nhân và không gian ứng dụng. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 253 

File đính kèm:

  • pdfChuong11-Quan ly thiet bi.pdf
Bài giảng liên quan