Quản lý xuất nhập
Operating systems
2
PTIT, 2012
2
Thiết bị xuất nhập
Thiết bị xuất nhập
Xuất nhập theo khối (Block devices)
Xuất nhập theo khối (Block devices)
Thông tin chứa trong các khối kích thước cố định
Thông tin chứa trong các khối kích thước cố định
512
512
-
-
32768
32768
bytes.
bytes.
Thao tác đọc / ghi thực hiện trên từng block
Thao tác đọc / ghi thực hiện trên từng block
Ví dụ: HDD, FDD, CDROM, …
Ví dụ: HDD, FDD, CDROM, …
Xuất nhập theo ký tự (Character
Xuất nhập theo ký tự (Character
devices)
devices)
Thao tác đọc / ghi thực hiện trên từng ký tự
Thao tác đọc / ghi thực hiện trên từng ký tự
Ví dụ: máy in, bàn phím, chuột, …
Ví dụ: máy in, bàn phím, chuột, …
Operating systems
3
PTIT, 2012
3
Tốc độ đọc / ghi của một số thiết bị điển hình
Tốc độ đọc / ghi của một số thiết bị điển hình
Operating systems
4
PTIT, 2012
4
Bộ điều khiển thiết bị
Bộ điều khiển thiết bị
Mỗi thiết bị xuất nhập điều có bộ điều khiển thiết bị riêng
Mỗi thiết bị xuất nhập điều có bộ điều khiển thiết bị riêng
System bus
CPU Memory
Controller Controller Controller
Disk
Motherboard
Operating systems
5
PTIT, 2012
5
Các cơ chế xuất nhập
Các cơ chế xuất nhập
Xuất nhập theo chương trình
Xuất nhập theo chương trình
Xuất nhập theo cơ chế ngắt
Xuất nhập theo cơ chế ngắt
Truy xuất bộ nhớ trực tiếp (DMA)
Truy xuất bộ nhớ trực tiếp (DMA)
Operating systems
6
PTIT, 2012
Các cơ chế xuất nhập
Operating systems
7
PTIT, 2012
7
Direct Memory Access (DMA)
Direct Memory Access (DMA)
Operating systems
8
PTIT, 2012
8
Hardware
Interrupt handlers
Device drivers
Device-independent
software
User space software
I/O request
I/O reply
I/O system calls (library)
Naming, protection, blocking,
buffering, allocation
Setup device registers; check status
Wakeup driver when I/O completed
Perform I/O operation
Phần mềm giao tiếp I/O
Phần mềm giao tiếp I/O
Operating systems
9
PTIT, 2012
9
Đĩa cứng
Đĩa cứng
Heads
Cylinder
Sector
Track
Operating systems
10
PTIT, 2012
10
Tham số đĩa cứng
Tham số đĩa cứng
Operating systems
11
PTIT, 2012
11
Các tham số hiệu suất đĩa
Các tham số hiệu suất đĩa
Seek time: Thời gian tìm track
Seek time: Thời gian tìm track
Rotational delay (rotational latency):
Rotational delay (rotational latency):
thời gian tìm sector
thời gian tìm sector
Seek Rotational
Delay
Data Transfer
Access time
Operating systems
12
PTIT, 2012
12
Công thức tính hiệu suất đĩa
Công thức tính hiệu suất đĩa
Seek time (T
Seek time (T
s
s
) =
) =
m * n + s
m * n + s
trong đó:
trong đó:
m
m
= hệ số đặc trưng của đĩa
= hệ số đặc trưng của đĩa
n
n
= số track đi qua
= số track đi qua
s
s
= thời gian khởi động đầu từ
= thời gian khởi động đầu từ
Rotational delay (T
Rotational delay (T
r
r
) = 1 / (2*
) = 1 / (2*
r
r
)
)
trong đó,
trong đó,
r
r
là tốc độ quay (vòng /s)
là tốc độ quay (vòng /s)
Transfer time (T
Transfer time (T
t
t
) =
) =
b
b
/ (
/ (
r*N
r*N
)
)
trong đó
trong đó
b
b
= số byte dữ liệu cần chuyển
= số byte dữ liệu cần chuyển
N
N
= số byte trên 1 track
= số byte trên 1 track
Average access time (T
Average access time (T
a
a
) = T
) = T
s
s
+ T
+ T
r
r
+
+
T
T
t
t
Operating systems
13
PTIT, 2012
13
Ví dụ
Ví dụ
Đọc 1 file có 256 sectors (8 tracks) từ
Đọc 1 file có 256 sectors (8 tracks) từ
một ổ đĩa với các thông số như sau:
một ổ đĩa với các thông số như sau:
Seek time = 20 msec
Seek time = 20 msec
Transfer rate = 1 MB/s
Transfer rate = 1 MB/s
Số bytes trên 1 sector = 512
Số bytes trên 1 sector = 512
Số sector trên 1 track = 32
Số sector trên 1 track = 32
Tố độ quay đĩa 3600 rpm
Tố độ quay đĩa 3600 rpm
Xét hai trường hợp:
Xét hai trường hợp:
Lưu trữ liên tục
Lưu trữ liên tục
Lưu trữ ngẫu nhiên
Lưu trữ ngẫu nhiên
Operating systems
14
PTIT, 2012
14
TH1: Lưu trữ liên tục
TH1: Lưu trữ liên tục
T
T
track đầu tiên
track đầu tiên
= Seek time + Delay +
= Seek time + Delay +
Transfer time (1 track)
Transfer time (1 track)
=
=
20 ms + 8.3 ms + 16.7 ms = 45 ms
20 ms + 8.3 ms + 16.7 ms = 45 ms
7 tracks còn lại có seek time = 0
7 tracks còn lại có seek time = 0
T
T
tổng cộng
tổng cộng
= T
= T
track đầu tiên
track đầu tiên
+ T
+ T
7 track còn lại
7 track còn lại
=
=
45 ms + 7 * (8.3+16.7) ms = 220 ms
45 ms + 7 * (8.3+16.7) ms = 220 ms
Operating systems
15
PTIT, 2012
15
TH2: lưu trữ ngẫu nhiên
TH2: lưu trữ ngẫu nhiên
T
T
sector
sector
=
=
seek + delay + data transfer (1
seek + delay + data transfer (1
sector)
sector)
=
=
20 ms + 8.3 ms + 0.5 ms = 28.8 ms
20 ms + 8.3 ms + 0.5 ms = 28.8 ms
T
T
Tổng cộng
Tổng cộng
= 256 * 28.8 = 7.37 seconds
= 256 * 28.8 = 7.37 seconds
Operating systems
16
PTIT, 2012
16
Thuật toán định thời đĩa
Thuật toán định thời đĩa
Xác định thứ tự di chuyển giữa các
Xác định thứ tự di chuyển giữa các
track trên đĩa một cách tối ưu
track trên đĩa một cách tối ưu
Các thuật toán điển hình:
Các thuật toán điển hình:
FIFO
FIFO
SSF (Shortest seek first)
SSF (Shortest seek first)
SCAN (Elevator algorithm)
SCAN (Elevator algorithm)
C-SCAN (One-way elevator)
C-SCAN (One-way elevator)
…
…
Operating systems
17
PTIT, 2012
17
First in, First out (FIFO)
First in, First out (FIFO)
Di chuyển theo thứ tự truy xuất, mỗi lần nhận
Di chuyển theo thứ tự truy xuất, mỗi lần nhận
1 thao tác riêng lẻ
1 thao tác riêng lẻ
Ví dụ: truy xuất 1, 36, 16, 34, 9, 12 và vị trí
Ví dụ: truy xuất 1, 36, 16, 34, 9, 12 và vị trí
hiện tại ở Cylinder 11 (Di chuyển trung bình =
hiện tại ở Cylinder 11 (Di chuyển trung bình =
18.5 cylinders)
18.5 cylinders)
111 12 16 3634
0 10 20 30 40
9
Operating systems
18
PTIT, 2012
18
Shortest Seek First (SSF)
Shortest Seek First (SSF)
Truy xuất nào có di chuyển ít nhất thì thực hiện trước
Truy xuất nào có di chuyển ít nhất thì thực hiện trước
Ví dụ: 1, 36, 16, 34, 9, 12 và vị trí hiện tại ở Cylinder
Ví dụ: 1, 36, 16, 34, 9, 12 và vị trí hiện tại ở Cylinder
11 : Di chuyển trung bình = 10.2 cylinders
11 : Di chuyển trung bình = 10.2 cylinders
111 12 16 3634
0 10 20 30 40
9
Operating systems
19
PTIT, 2012
19
SCAN (Elevator Algorithm)
SCAN (Elevator Algorithm)
Đầu đọc di chuyển theo 1 chiều, sau khi đọc
Đầu đọc di chuyển theo 1 chiều, sau khi đọc
xong mới quay lại
xong mới quay lại
Ví dụ: truy xuất 1, 36, 16, 34, 9, 12 và vị trí
Ví dụ: truy xuất 1, 36, 16, 34, 9, 12 và vị trí
hiện tại ở Cylinder 11 (Di chuyển trung bình =
hiện tại ở Cylinder 11 (Di chuyển trung bình =
cylinders)
cylinders)
111 12 16 3634
0 10 20 30 40
9
Operating systems
20
PTIT, 2012
20
C-SCAN (One-way Elevator)
C-SCAN (One-way Elevator)
Giống SCAN nhưng chỉ đi theo 1
Giống SCAN nhưng chỉ đi theo 1
hướng
hướng
Khi đến cylinder cuối cùng, đầu đọc
Khi đến cylinder cuối cùng, đầu đọc
quay về vị trí xuất phát
quay về vị trí xuất phát
Operating systems
21
PTIT, 2012
21
RAID (Redundant Array of
RAID (Redundant Array of
Inexpensive Disks)
Inexpensive Disks)
Cung cấp khả năng chịu lỗi
Cung cấp khả năng chịu lỗi
Tăng hiệu năng
Tăng hiệu năng
Nhiều mức RAID khác nhau
Nhiều mức RAID khác nhau
Operating systems
22
PTIT, 2012
22
RAID Level 0
RAID Level 0
File được ghi phân tán trên nhiều đĩa
File được ghi phân tán trên nhiều đĩa
Cho phép nhiều thao tác đọc và ghi
Cho phép nhiều thao tác đọc và ghi
đồng thời
đồng thời
Operating systems
23
PTIT, 2012
23
RAID 1 (Mirroring)
RAID 1 (Mirroring)
Dữ liệu được ghi nhân đôi lên 2 đĩa
Dữ liệu được ghi nhân đôi lên 2 đĩa
khác nhau
khác nhau
Operating systems
24
PTIT, 2012
24
RAID
RAID
2
2
File được ghi phân tán trên nhiều đĩa theo
File được ghi phân tán trên nhiều đĩa theo
từng bit, có dùng mã sửa sai (Hamming)
từng bit, có dùng mã sửa sai (Hamming)
Operating systems
25
PTIT, 2012
25
RAID
RAID
3
3
Như RAID 2, dùng riêng một đĩa chứa parity
Như RAID 2, dùng riêng một đĩa chứa parity