Bài tập ôn tập HĐH
HỆ THỐNG TẬP TIN
Bài 1
• Đĩa mềm 1.44 MB, có 2 head, 80 track / head, 18 sector /
track
• Đổi sector vật lý sang logic:
– (10, 2, 1); (18, 70, 0); (18, 79, 1); (5, 5, 1); (2, 0, 0);
• Đổi sector logic sang vật lý:
– 90, 8,1080, 2000, 1
• Cho biết dãy cyclinder cần truy xuất lần lượt là: 9, 15, 21, 2,
25, 6, 12. Với vị trí hiện hành của đầu đọc đang đứng tại
cyclinder 10, Hãy cho biết thứ tự truy xuất các cyclinder trên
nếu dùng các thuật toán lần lượt là: FCFS – SSTF – SCAN – CSCAN – LOOK – C-LOOK
l = t*side*st + h*st + s - 1
Vật lý Logic
• (10, 2, 1): s=10, t=2, h=1
l = 2*2*18 + 1*18 + 10 – 1 = 99
st= số sectors / track = 18
th= số tracks / head = 80
side= số lượng head = 2
• (18, 70, 0): s=18, t=70, h=0
l = 70*2*18 + 0*18 + 18 – 1 = 2537
l= sector logic
• (18, 79, 1): s=18, t=79, h=1
l = 79*2*18 + 1*18 + 18 – 1 = 2879
h: giá trị head
t: giá trị track
s: giá trị sector
• (5, 5, 1): s=5, t=5, h=1
l = 5*2*18 + 1*18 + 5 – 1 = 202
• (2, 0, 0): s=2, t=0, h=0
l = 0*2*18 + 0*18 + 2 – 1 = 1
s = (l mod st) + 1
t = l div (st * side)
h = (l div st) mod side
•
•
•
•
•
l = 90 (1, 2, 1)
l = 8 (9, 0, 0)
l = 1080 (1, 30, 0)
l = 2000 (3, 55, 1)
l = 1 (2, 0, 0)
st= số sectors / track = 18
th= số tracks / head = 80
side= số lượng head = 2
l= sector logic
h: giá trị head
t: giá trị track
s: giá trị sector
•
•
•
•
•
•
FCFS: 10, 9, 15, 21, 2, 25, 6, 12
SSTF: 10, 9, 6, 2, 12, 15, 21, 25
SCAN: 10, 12, 15, 21, 25, [P], 9, 6, 2
C-SCAN: 10, 12, 15, 21, 25, [P], [T], 2, 6, 9
LOOK: 10, 12, 15, 21, 25, 9, 6, 2
C-LOOK: 10, 12, 15, 21, 25, 2, 6, 9
BOOT SECTOR
STT
1
2
3
4
5
6
7
8
9
10
11
Nội dung
Loại FAT
Số byte cho 1 sector
Số sector cho 1 cluster
Số sector dành riêng (số sector vùng
Bootsector)
Số bảng FAT
Số sector cho bảng RDET
Tổng số sector trên đĩa
Số sector cho 1 bảng FAT
Sector đầu tiên của bảng FAT1
Sector đầu tiên của bảng RDET
Sector đầu tiên của vùng Data
Giá trị
6
BOOT SECTOR
STT
1
Nội dung
Giá trị
2
Loại FAT
Số byte cho 1 sector
FAT 32
3
Số sector cho 1 cluster
4
Số sector dành riêng (số sector vùng Bootsector)
5
Số bảng FAT
6
Tổng số sector trên đĩa
7
Số sector cho 1 bảng FAT
8
Sector đầu tiên của bảng FAT1
32
9
Sector đầu tiên của bảng RDET
1302
10
Sector đầu tiên của vùng Data
1302
512
1
32
2
81888
635
7
FAT
• Cho dãy byte trên đĩa như sau:
Byte
Giá trị
Byte
Giá trị
0
1
2
3
4
5
6
7
8
9
E3
F1
FF
07
80
00
EC
64
01
00
10
11
12
13
14
15
66
55
90
A0
00
04
….
….
• Cho biết trong FAT12, hãy xác định giá trị tại
các ô trong bảng FAT có thứ tự lần lượt là:
Entry
Giá trị
0
1
2
3
4
5
6
7
8
9
FAT
• Cho dạy byte trên đĩa như sau:
Byte
Giá trị
Byte
Giá trị
0
1
2
3
4
5
6
7
8
9
E3
F1
FF
07
80
00
EC
64
01
00
10
11
12
13
14
15
66
55
90
A0
00
04
….
….
• Cho biết trong FAT12, hãy xác định giá trị tại
các ô trong bảng FAT có thứ tự lần lượt là:
Entry
Giá trị
0
1
2
3
4
5
6
7
8
9
1E3
FFF
007
008
4EC
016
600
556
090
00A
Data
• Cho đĩa USB có các thông số sau:
– Sc = 4
– SB = 1
– NF = 2
– SF = 9
– NRDET = 224
• Hãy cho biết các cluster sau trong vùng Data
tương ứng chiếm những sector logic nào trên
đĩa: 5, 2, 10, 20
i = SB + NF*SF + SRDET + (k- 2)*SC
SRDET = NRDET*32/512
• Từ giả thuyết ta suy ra
SRDET = NRDET*32/512 = 224*32/512 = 14 (sector)
• K = 5 i = 1 + 2*9 + 14 + (5-2)*4 = 45
Cluster 5 trong Data chiếm 4 sector logic là 45, 46, 47, 48
• K = 2 i = 1 + 2*9 + 14 + (2-2)*4 = 33
Cluster 2 trong Data chiếm 4 sector logic là 33, 34, 35, 36
• K = 10 i = 1 + 2*9 + 14 + (10-2)*4 = 65
Cluster 10 trong Data chiếm 4 sector logic là 65, 66, 67, 68
• K = 20 i = 1 + 2*9 + 14 + (20-2)*4 = 105
Cluster 20 trong Data chiếm 4 sector logic là 105, 106, 107, 108
Sc = 4
SB = 1
NF = 2
SF = 9
NRDET = 224
FAT
• USB 127MB có 112 entry trên bảng thư mục
gốc, cluster chiếm 8 sector, boot sector chiếm 8
sector và 2 bảng FAT.
Cần sử dụng hệ thống FAT nào (FAT12/16/32)
cho đĩa mềm này ?
Kích thước bảng FAT ? (Cần dùng bao nhiêu
sector để lưu bảng FAT)
12
•
Ta có:
– SB = 8 (theo giả thiết).
– NF = 2 (theo giả thiết)
•
•
SV = 127 MB = 127*1024*2 (sector) = 260096 (sector)
Bảng thư mục gốc chiếm 112 entry = (112*32) / 512 = 7 (sector)
•
Thay các giá trị đã có vào đẳng thức: SB + NF*SF +SR + SD = SV
8 + 2SF + 7 + SD = 260096, hay 2SF + SD = 260081 (sector) (*)
SD ~ 260081/8 = 32510.125 (vì Sc = 8 sector)
Do FAT12 chỉ có thể quản lý tối đa 4096 cluster ~ 4096*4 = 16384 sector nên vol này không thể định dạng theo
FAT12 được. Do đó, vol sẽ được định dạng theo FAT16
•
Giả sử SF = 1 (sector): (*) SD = 260081 - 2SF = 260079 (sector) = 32509.875 (cluster)
Vùng dữ liệu có 32510 cluster, nên bảng FAT phải có 32510 + 2 = 32512 phần tử, do đó S F = (32512 * 2) / 512 =
127 (sector)
SF = 127 sector. Mâu thuẫn với giả thiết SF = 1. Vậy kích thước bảng FAT của vol này không thể là 1 sector
•
Giả sử SF = 127 (sector): (*) SD = 260081 - 2SF = 259827 (sector) = 32478.375 (cluster)
Vùng dữ liệu có 32479 cluster, nên bảng FAT phải có 32479 + 2 = 32481 phần tử, do đó S F = (32481 * 2) / 512 =
126.x (sector)
SF = 127 sector. Phù hợp với giả thiết SF = 127
Vậy kích thước bảng FAT của vol này là 127 sector
13
Cách 2
•
Gọi: x là số phần tử FAT - y là số cluster vùng Data.
(*) 2SF + SD = 260081 (sector) 2*(x*2) / 512 + y*8 = 260081 (**)
•
Do số phần tử FAT và số cluster cùng Data xấp xỉ nhau nên ta có thể giả sử x = y
(**) 2*(x*2) / 512 + x*8 = 260081 x = 32478.40
SF = (2 * 32478.40) / 512 = 126.9
•
Nếu SF = 126, tính được:
- Số phần tử FAT x = 512*126/2 = 32256
- Số cluster y: (**) 260081 = 2*126 + y*8 y = 32479
Phí: 32479 – 32256 = 223 cluster = 223*8 = 1784 sector
•
Nếu SF = 127, tương tự trên tính được:
- Số phần tử FAT x = 512*127/2 = 32512
- Số cluster y: (**) 260081 = 2*127 + y*8 y = 32479
Phí 32512 – 32479 = 33 cluster = 33*8 = 264 sector
Vậy kích thước bảng FAT của vol này là 127 sector
14
FAT 2
•
Xét đĩa mềm 1.44MB (có 2880 sector), để các tập tin trên vol có thể truy
xuất nhanh & an toàn hơn ta giả sử cho
– SC = 4 (sector)
– SB = 1 (sector)
– SR = 32 (entry) = 32 * 32 (byte) = 1024 (byte) = 2 (sector)
– NF = 2
Cần sử dụng hệ thống FAT nào (FAT12/16/32) cho đĩa mềm này
Kích thước bảng FAT ? (Cần dùng bao nhiêu sector để lưu bảng FAT)
15
•
Thay các giá trị trên vào đẳng thức SB + NF*SF + SR + SD = SV ta được
1 + 2SF +2 + SD = 2880 (sector), hay 2SF + SD = 2877 (sector) (*)
03/2009
SD < 2877 (sector) = 719.25 (cluster) (vì SC = 4 sector).
Loại FAT tối ưu nhất (về kích thước) là FAT12, vì SD < 4079 (cluster)
•
Giả sử SF = 1 (sector): (*) SD = 2875 (sector) = 718.75 (cluster)
BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM
Vùng dữ liệu có 719 cluster, nên bảng FAT phải có 719 + 2 = 721 phần tử, do đó SF = (721*1.5)/512 =
2.1x (sector)
Bảng FAT phải chiếm 3 sector – mâu thuẫn với giả thiết SF = 1. Vậy kích thước bảng FAT của vol này
không thể là 1 sector
•
Giả sử SF = 2 (sector): tương tự, ta vẫn thấy mâu thuẫn, tức kích thước bảng FAT phải lớn hơn 2
sector.
•
Giả sử SF = 3 (sector): (*) SD = 2871 (sector) = 717.75 (cluster).
Vùng dữ liệu có 718 cluster, nên bảng FAT phải có 718 + 2 = 720 phần tử, do đó SF = (720*1.5)/512 =
2.1x (sector)
Bảng FAT phải chiếm 3 sector – phù hợp với giả thiết SF = 3.
Vậy kích thước bảng FAT của vol này là 3 sector.
16
03/2009
FAT 2
BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM
• USB 127MB có 112 entry trên bảng thư mục
gốc, cluster chiếm 8 sector, boot sector chiếm 8
sector và 2 bảng FAT.
Cần sử dụng hệ thống FAT nào (FAT12/16/32)
cho đĩa mềm này ?
Kích thước bảng FAT ? (Cần dùng bao nhiêu
sector để lưu bảng FAT)
17
•
Ta có:
– SB = 8 (theo giả thiết).
– NF = 2 (theo giả thiết)
•
•
SV = 127 MB = 127*1024*2 (sector) = 260096 (sector)
Bảng thư mục gốc chiếm 112 entry = (112*32) / 512 = 7 (sector)
•
Thay các giá trị đã có vào đẳng thức: SB + NF*SF +SR + SD = SV
8 + 2SF + 7 + SD = 260096, hay 2SF + SD = 260081 (sector) (*)
SD ~ 260081/8 = 32510.125 (vì Sc = 8 sector)
Do FAT12 chỉ có thể quản lý tối đa 4096 cluster ~ 4096*4 = 16384 sector nên vol này không thể định dạng theo
FAT12 được. Do đó, vol sẽ được định dạng theo FAT16
•
Giả sử SF = 1 (sector): (*) SD = 260081 - 2SF = 260079 (sector) = 32509.875 (cluster)
Vùng dữ liệu có 32510 cluster, nên bảng FAT phải có 32510 + 2 = 32512 phần tử, do đó S F = (32512 * 2) / 512 =
127 (sector)
SF = 127 sector. Mâu thuẫn với giả thiết SF = 1. Vậy kích thước bảng FAT của vol này không thể là 1 sector
•
Giả sử SF = 127 (sector): (*) SD = 260081 - 2SF = 259827 (sector) = 32478.375 (cluster)
Vùng dữ liệu có 32479 cluster, nên bảng FAT phải có 32479 + 2 = 32481 phần tử, do đó S F = (32481 * 2) / 512 =
126.x (sector)
SF = 127 sector. Phù hợp với giả thiết SF = 127
Vậy kích thước bảng FAT của vol này là 127 sector
18
FAT 3
• Xét đĩa USB có dung lượng 256 MB, kèm các thông số trên đĩa:
– SC = 4 (sector)
– SB = 4 (sector)
– NRDET = 256 (entry)
– NF = 2
Cần sử dụng hệ thống FAT nào (FAT12/16/32) cho USB này
Kích thước bảng FAT ? (Cần dùng bao nhiêu sector để lưu
bảng FAT)
•
Ta có:
– SB = 4 (theo giả thiết).
– NF = 2 (theo giả thiết)
•
•
SV = 256 MB = (256*1024*1024) / 512 (sector) = 524288 (sector)
Bảng thư mục gốc chiếm NRDET = 256 entry SRDET = (256 * 32) / 512 = 16 (sector)
Thay các giá trị đã có vào đẳng thức: SB + NF*SF +SR + SD = SV
4 + 2SF + 16 + SD = 524288, hay 2SF + SD = 524268 (sector) (*)
SD < 524268 (sector) / 4 = 131 067 (cluster) (vì Sc = 4 sector)
Do 216 < 131 067 (cluster) < 232
Do đó, vol sẽ được định dạng theo FAT32
•
• Giả sử SF = 1 (sector): (*) SD = 524268 - 2SF = 524266 (sector) = 131066.5 (cluster)
Vùng dữ liệu có 131067 cluster, nên bảng FAT phải có 131067 + 2 = 131069 phần tử, do đó SF =
(131069 * 4) / 512 = 1023.9 (sector)
SF = 1024 sector. Mâu thuẫn với giả thiết SF = 1. Vậy kích thước bảng FAT của vol này không thể là 1
sector
Giả sử SF = 1024 (sector): (*) SD = 524268 - 2SF = 522220 (sector) = 130555 (cluster)
Vùng dữ liệu có 130555 cluster, nên bảng FAT phải có 130555 + 2 = 130557 phần tử, do đó SF =
(130557 * 4) / 512 = 1019.9 (sector)
SF = 1020 sector. Trái với giả thiết SF = 1024
•
• Giả sử SF = 1020 (sector): (*) SD = 524268 - 2SF =
522228 (sector) = 130557 (cluster)
Vùng dữ liệu có 130557 cluster, nên bảng FAT phải có
130557 + 2 = 130559 phần tử, do đó SF = (130559 *
4) / 512 = 1019.9 (sector)
SF = 1020 sector. Đúng với giả thiết SF = 1020
Vậy dung lượng bảng FAT là 1020 sector