HỆ ĐIỀU HÀNH
(OPERATING SYSTEM CONCEPTS)
Wiley - Operating System
Concepts(Silberschatz).9th
Giới thiệu mơn học
Mục tiêu mơn học
Vai trị của HĐH
Nguyên lý hoạt động của HĐH đa nhiệm
Nội dung
Phần 1: Tổng quan (Overview)
Phần 2: Quản lý tiến trình (Process Management)
Phần 3: Quản lý bộ nhớ (Memory Management)
Phần 4: Quản lý I/O (I/O Management)
Phần 5: Quản lý hệ thống file (Storage Management)
1.2
I/O Management
CHƯƠNG 4:
QUẢN LÝ I/O
1.3
Nội dung
Căn bản về thiết bị I/O
Các dịch vụ I/O của hệ điều hành
1.4
Phần cứng nhập xuất
I/O Hardware
1.5
Phần cứng nhập xuất
I/O Hardware
Controller có một hay nhiều register 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)
1.6
Phần cứng nhập xuất
I/O Hardware
Giao tiếp giữa hardware và CPU :
Polling – thăm dò : CPU định kỳ sau một thời gian sẽ đọc bit trạng
thái để biết thiết bị đã hoàn tất thao tac nhập/xuất chưa .
Interrupt – ngắt: thiết bị sẽ thông báo cho CPU khi nó hồn tất thao
tác nhập/xuất.
DMA – truy suất bộ nhớ trực tiếp
1.7
Phần cứng nhập xuất
I/O Hardware
1.8
Phần cứng nhập xuất
I/O Hardware
Các thiết bị thông dụng : keyboards, displays, disks, mice, printers,
scanners,
Các thiết bi trên system board : timers, graphics chips, audio chips.
Có 2 dạng thiết bị IO
block devices
character devices
1.9
Phần cứng nhập xuất
I/O Hardware
các thiết bị dòng ký tự (character devices) chuyển từng byte một,
ngược lại thiết bị khối (block devices) chuyển đơn vị là khối byte.
Khối byte (block ) có kích thước cố định . Kích thước 1 block có thể
từ 512 byte đến 32768 byte . Các block được đánh số => do vậy có
thể truy suất lặp lại một khối data bằng việc chỉ định truy suất block
N
Đĩa từ và tape : là các thiết bị block . Đĩa từ truy suất ngẫu nhiên,
tape truy suất tuần tự.
1.10
Phần cứng nhập xuất
I/O Hardware
Character devices
Các thiết bị dạng này cung cấp truy suất unstructured . Không
địa chỉ
Bao gồm :
Traditional
character-stream devices, such as a terminal
multiplexer, modem, printer, scanner, or mouse.
1.11
Phần cứng nhập xuất
I/O Hardware
Với các terminal devices : xử lý input vào các thiết bị này bằng 1
trong 2 mode
Line mode (cooked) : các ký tự được đưa vào hệ thống như thể
chúng được chuyển từ một buffer cho đến khi nhận một ký tự
return . Khi đó một line đã sẵn sàng cho quá trình xử lý …
Raw mode : các ký tự ngay khi nhập vào là sẵn sàng cho quá
trình xử lý. Vd như mouse.
Với một terminal , mode này được sử dụng khi một trình soạn
thảo vb muốn xử lý các keystroke ngay khi nó được nhấn .
12
1.12
Phần cứng nhập xuất
I/O Hardware
1.13
Phần cứng nhập xuất
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 IO : 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”. 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 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 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