Chap8: QL NHẬP XUẤT & QL HỆ THỐNG FILES
(I/O management & File System management)
GV: TS. Trần Thị Minh Khoa
()(6t)
I/O management (Stalling Chap11 + Siberchattz Chap 13)
I/O request packets (IRPs).
I/O hardware
I/O management
Plug and Play (PnP)
File System management (Stalling Chap12 + Siberchattz
Chap 11&12)
2
OS Architecture
3
I/O Goals
Cung cấp I/O thích hợp cho các ứng dụng
Cung cấp 1 framework (khuôn khổ) làm việc như sau:
4
Linh động load/unload drivers
Hỗ trợ quản lý năng lượng để hệ thống hoặc thiết bị có thể tự
bật chế độ tiết kiệm năng lượng
Phân lớp driver
I/O khơng đồng bộ
Bảo vệ an tồn
Overview of the Windows I/O Model
Tất cả các yêu cầu I/O đến driver đều được gởi dưới dạng
I/O request packets (IRPs)
Hoạt động I/O được phân lớp
Trình quản lý I/O xác định một tập các công việc chuẩn
(standard routines) mà drivers có thể hỗ trợ
5
Yêu cầu
Tuỳ chọn
I/O Request Packets (IRPs)
Với mỗi yêu cầu I/O từ user-mode, trình quản lý I/O cấp
một IRP từ hệ thống bộ nhớ không phân trang
Dựa vào việc xử lý tập tin và chức năng I/O được y/c từ
user, trình ql I/O chuyển IRP tới việc phân phối driver
thích hợp
6
Structure of an IRP.
7
Major and Minor IRP
Major function
IRP_MJ_CLOSE,IRP_MJ_CREATE,IRP_MJ_DEVICE_CONTROL
,IRP_MJ_INTERNAL_DEVICE_CONTROL,IRP_MJ_PNP,IRP_M
J_POWER,IRP_MJ_READ..
Minor Function
IRP_MN_START_DEVICE,IRP_MN_QUERY_ID,IRP_MN_EJEC
T....
8
I/O hardware
9
I/O hardware
Controller có một hay nhiều registers chứa data và các control
signal
CPU giao tiếp với controller bằng cách đọc và ghi từng bit
trong các register
The I/O instruction
memory-mapped I/O (the device-control registers are
mapped into the address space of the processor)
10
I/O hardware
Các thiết bị thông dụng: keyboards, displays, disks, mice,
printers, scanners,
Các thiết bị trên system board: timers, graphics chips, audio
chips.
11
I/O hardware
Có 2 dạng thiết bị I/O
character devices– thiết bị dòng ký tự, chuyển từng byte một
Cung cấp truy suất unstructured, không địa chỉ
Modem, printer, scanner, mouse
block devices – thiết bị khối, chuyển từng khối các bytes (block)
Block có kích thước cố định (51232768 bytes). Các block
được đánh số có thể truy suất lặp lại một khối dữ liệu bằng
việc chỉ định truy suất block thứ n
Đĩa từ, tape
12
I/O hardware
13
I/O hardware
Blocking IO: nghĩa là tiến trình người dùng sẽ bị block ( wait ) cho đến khi
thao tác IO hoàn tất.
Nếu bạn đang đọc 1500 byte từ một thiết bị, thao tác đọc sẽ bị khóa cho
đến khi data đã sẳn sàng.
Non-blocking I : nghĩa là một lời gọi hệ thống IO sẽ ko đặt tiến trình vào
trạng thái sleep khi chờ IO. Tiến trình sẽ nhận được thơng báo rằng IO
chưa sẵn sàng.
Nếu bạn đang đọc 1500 byte từ một thiết bị, và khi chỉ 12 byte đã đọc
xong, thao tác đọc của tt 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”.
14
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. ….
Device management
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
15
Device management
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ị ) .
Note: 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.
16
Device management
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 số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 device và system
memory.
17
18
Plug and Play
19
Driver Support for Plug and Play
20
Devnodes
devnode is made up of at least two, and sometimes more, device objects[PDO and FDO]
A physical device object (PDO) that the PnP manager instructs a bus driver to create when
the bus driver reports the presence of a device on its bus during enumeration A functional
device object (FDO) that is created by the driver, which is called a function driver, that the
PnP manager loads to manage a detected device.
21
Device Enumeration
22
Device Enumeration in devicemanager
23
Driver Installation
24
Adding a PnP Device to a Running System –step1
user plugin device ->bus driver enumerates device ->bus driver notifies ->pnp obtains
information via IRP_MN_QUERY_DEVICE_RELATIONS=>The function driver for the bus
device handles the IRP.
25