Tải bản đầy đủ (.pdf) (28 trang)

Bài giảng Hệ điều hành: Chương 4 - TS. Ngô Hữu Dũng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (324.65 KB, 28 trang )

sẽ đọc
được 12 byte. Hệ thống sẽ trả về data khi nó đã sẵn sàng , nhưng
sẽ ko chờ cho new data. OS có thể trả về lỗi “no data”. Ví dụ, các
hệ thống POSIX ( Linux , OS X, … ) trả về lỗi EAGAIN khi đọc file
đã mở để đọc non-blocking IO và ko có data sẳn có để đọc. ….

1.14


Quản lý thiết bị
 Các thiết bị - device
 Bộ điều khiển thiết bị - device controller
 Trình điều khiển thiết bị - device driver

1.15


 Các thiết bị cần có phần mềm điều khiển - gọi là device driver


Trình đk thiết bị cho phép chúng ta có một interface đồng nhất
với kernel , che dấu đi những chi tiết riêng biệt của thiết bị
 Vd

: kernel thực hiện ghi data vào đĩa => ko quan tâm đến chi
tiết của loại đĩa ( đĩa từ hay flash memory )



Device drivers implement mechanism (cách để tương tác với
thiết bị), not policy (ksoat ai truy suất thiết bị ) .



1.16


 Trong nhiều OS, như Linux , Unix, BSD, OS X , Windows NT , các

thiết bị được giao tiếp qua interface dạng file.

1.17


 Trình điều khiển thiết bị (device driver) giao tiếp với device

controller để điều khiển thiết bị


Một device controler là hardware ( và/hoặc là firmware ) điều
khiển hoạt động của thiết bị .



device controler - Nó kiểm soát việc ánh xạ vào vị trí vật lý và
sinh ra ngắt để thông báo cho cpu về các sự kiện, sử dụng DMA
để chuyển các block data giữa devive và system memory.

1.18


1.19



Kernel IO Subsystem
 Kernel cung cấp nhiều dịch vụ liên quan đến IO :

định thời biểu, vùng đệm buffering , vùng lưu trữ cache , spooling ,
quản lý lỗi , Bảo vệ IO ,…

1.20


Lập lịch IO
 Các ứng dụng phát ra các yêucầu (system call ) IO và phải chờ đến

lượt được thực hiện IO
 trật tự tư nhiên này hiếm khi là một lựa

chọn tốt cho hiệu năng chung của toàn bộ hệ thống=> bộ lập lịch cải
thiện hiệu năng của toàn hệ thống , giảm tg chờ trung bình để thực
hiện IO bằng cách đưa ra một trật tự tối ưu .

1.21


Lập lịch IO
 Vd :

Suppose that a disk arm is near the beginning of a disk and that three
applications issue blocking read calls to that disk. Application 1
requests a block near the end of the disk, application 2 requests one
near the beginning, and application 3 requests one in the middle of

the disk. The operating system can reduce the distance that the disk
arm travels by serving the applications in the order 2, 3,1.
Rearranging the order of service in this way is the essence of I/O
scheduling.

1.22


Lập lịch IO


OS sử dụng hàng đợi lưu các request cho mỗi thiết bị. Khi một ứng
dụng phát ra một IO system call, yêu cầu này được đưa vào hàng
đợi của thiết bị. Bộ lập lịch sẽ sắp xếp lại trật tự của hàng đợi để
tăng hiệu quả của hệ thống và thời gian chờ tb của ứng dụng.

1.23


Buffering , caching , và spooling
 Buffer là một vùng nhớ lưu data trong quá trình data được di

chuyển giữa 2 thiết bị hay giữa thiết bị và ứng dụng.
 3 Lý do :

Lý do 1 : Tốc độ không phù hợp giữa sản xuất và tiêu thụ dòng data.
Vd : dữ liệu được chuyển từ modem vào đĩa. Tốc độ lệch nhau
hàng ngàn lần. Một buffer được tạo trong bộ nhớ, để lưu các byte
nhận từ modem. Khi buffer đã chứa toàn bộ data được chuyển đến,
bằng một thao tác toàn bộ data trong buffer được ghi vào đĩa. ….


1.24


Buffering , caching , và spooling
Lý do 2 : sự chênh lệch giữa các thiết bị có kích thước data-transfer
khác nhau.
VD : Such disparities are especially common in computer
networking, where buffers are used widely for fragmentation and
reassembly of messages. At the sending side, a large message is
fragmented into small network packets. The packets are sent over
the network, and the receiving side places them in a reassembly
buffer to form an image of the source data.
Lý do 3: sử dụng buffering để hỗ trợ copy semantics cho ứng dụng IO .

1.25


Buffering , caching , và spooling
 Caching : là một bộ nhớ có tốc độ truy suất cao , lưu giữ các bản

sao data. Truy suất bản sao đã được cached thì hiệu quả hơn là
truy suất data gốc.
Vd, các lệnh của tt đang thực thi được lưu trên đĩa, được cache
trong bộ nhớ , và copy lần nữa vào các bộ nhớ cache primary và
secondary của CPU.
 Cache và buffer khác nhau về mục đích sử dụng .

1.26



Buffering , caching , và spooling
 Spooling

Spool là một buffer lưu kết xuất của 1 device, như máy in, và đảm
bảo các dòng data không đan xen nhau .
 Vd ,Tại một thời điểm 1 máy in chỉ phục vụ 1 tác vụ, nhưng nhiều

ứng dụng mong muốn in song song và đảm bảo kết xuất của chúng
ko bị trộn lẫn vào nhau . OS đã giải quyết vấn đề này bằng cách
chặn kết xuất ra máy in. Mỗi kết xuất của 1 ứng dụng đẩy vào 1 file
riêng. Khi một ứng dụng kết thúc in, hàng đợi spooling của hệ thống
sẽ đẩy file chờ in ra máy in, mỗi lần 1 file .

1.27


IO protection
 Để ngăn ngừa user thực hiện những thao tác IO ko hợp lệ, OS thiết

lập các lệnh IO là những lệnh đặc quyền ( privileged instructions ) .
=> User ko trực tiếp đưa ra lệnh IO, chúng phải thực hiện thông qua
OS.
 Vd : một user program thực thi một system call yêu cầu OS thực

hiện IO thay cho nó. OS kiểm tra xem yêu cầu có hợp lệ ko, và nếu
hợp lệ OS thực hiện yêu cầu IO . Kết quả trả về cho user

1.28




×