System Programming
[email protected]
Course Code: CS609
Lecture # 38 Following slide shows how the chain of clusters is maintained in a FAT32 based system.
File Organization 32 – bit 0 R R 1 2 3 7 4 5 0 6 11 7 9
FCB
Start Cluster #
Cont… 8 9 10
6
11
EOF
2^28
Virtual University of Pakistan
48
System Programming
[email protected]
Course Code: CS609
Fat32 Entry • Each entry is of 32-bits size but only lower 28-bits are used. • Higher 4-bits are not tempered. • While reading higher 4-bits are ignored. • While writing higher 4-bits are not changed.
FCB in FAT32 system has an enhanced meaning as shown by the slide below.
Virtual University of Pakistan
49
System Programming
[email protected]
Course Code: CS609
Anatomy of FAT32 based system differs from FAT16 based systems significantly as explained by the slide below.
Fat32 File System FAT1
FAT2
Clust2 Clust3 -----------
Reserved Blocks
• No fixed space reserved for root directory. • FCB of root directory are saved in a cluster and the cluster # for root directory is saved in BPB as discussed earlier.
In reflection of the anatomy of FAT32 based system the method used to translate the cluster # into LSN also varies. The following formula is used for this purpose.
Starting Sector # for a Cluster Starting Sector = Reserved Sect. + FatSize * FatCopies + (cluster # - 2) * size of cluster
Virtual University of Pakistan
50
System Programming
[email protected]
Course Code: CS609
Now we determine all the parameters in the above slide for a certain volume to translate a cluster number into LSN.
0000 0008 0010 0018 0020 0028 0030 0038 0040 0048 0050 0058 0060 0068 0070 0078 0080 0088 0090 0098
EB 34 02 3F 41 00 01 00 80 4F 20 20 7B 88 CD F1 B6 CD C9 83
58 2E 00 00 29 00 00 00 01 20 20 20 8E 4E 13 66 D1 C0 66 7E
90 31 00 F0 54 00 06 00 29 4E 46 33 C1 02 73 0F 80 ED F7 16
4D 00 00 00 02 00 00 00 F1 41 41 C9 8E 8A 05 B6 E2 06 E1 00
Reserved Blocks
53 02 00 3F 3E 02 00 00 17 4D 54 8E D9 56 B9 C6 3F 41 66 75
57 20 F8 00 25 00 00 00 79 45 33 D1 BD 40 FF 40 F7 66 89 38
49 24 00 00 00 00 00 00 2D 20 32 BC 00 B4 FF 66 E2 0F 46 83
4E 00 00 00 00 00 00 00 4E 20 20 F4 7C 08 8A 0F 86 B7 F8 7E
. 4 . ? A . . . . O
X . . . ) . . . .
{ . . . . . . .
. N . f . . f ~
. 1 . . T . . . ) N F 3 . . s . . . . .
M . . . . . . . . A A . . . . . . . . .
S . . ? > . . . . M T . . V . . ? A f u
W I $ . . . . . . -
N . . . . . . . N
2 . . . . f . . F .
. | . . . . . . ~
. . % . . . y E 3 . . @ . @ . f . 8
235 52 2 63 65 0 1 0 128 79 32 32 123 136 205 241 182 205 201 131
88 46 0 0 41 0 0 0 1 32 32 32 142 78 19 102 209 192 102 126
144 49 0 240 84 0 6 0 41 78 70 51 193 2 115 15 128 237 247 22
77 0 0 0 2 0 0 0 241 65 65 201 142 138 5 182 226 6 225 0
83 2 0 63 62 2 0 0 23 77 84 142 217 86 185 198 63 65 102 117
87 32 248 0 37 0 0 0 121 69 51 209 189 64 255 64 247 102 137 56
73 36 0 0 0 0 0 0 45 32 50 188 0 180 255 102 226 15 70 131
78 0 0 0 0 0 0 0 78 32 32 244 124 8 138 15 134 183 248 126
73 36 0 0 0 0 0 0 45 32 50 188 0 180 255 102 226 15 70 131
78 0 0 0 0 0 0 0 78 32 32 244 124 8 138 15 134 183 248 126
Offset 14 = 0x0E = Reserved Sect. = 0x0024
0000 0008 0010 0018 0020 0028 0030 0038 0040 0048 0050 0058 0060 0068 0070 0078 0080 0088 0090 0098
EB 34 02 3F 41 00 01 00 80 4F 20 20 7B 88 CD F1 B6 CD C9 83
58 2E 00 00 29 00 00 00 01 20 20 20 8E 4E 13 66 D1 C0 66 7E
90 31 00 F0 54 00 06 00 29 4E 46 33 C1 02 73 0F 80 ED F7 16
4D 00 00 00 02 00 00 00 F1 41 41 C9 8E 8A 05 B6 E2 06 E1 00
53 02 00 3F 3E 02 00 00 17 4D 54 8E D9 56 B9 C6 3F 41 66 75
Copies of FAT
57 20 F8 00 25 00 00 00 79 45 33 D1 BD 40 FF 40 F7 66 89 38
49 24 00 00 00 00 00 00 2D 20 32 BC 00 B4 FF 66 E2 0F 46 83
4E 00 00 00 00 00 00 00 4E 20 20 F4 7C 08 8A 0F 86 B7 F8 7E
. 4 . ? A . . . . O
X . . . ) . . . .
{ . . . . . . .
. N . f . . f ~
. 1 . . T . . . ) N F 3 . . s . . . . .
M . . . . . . . . A A . . . . . . . . .
S . . ? > . . . . M T . . V . . ? A f u
W I $ . . . . . . -
N . . . . . . . N
2 . . . . f . . F .
. | . . . . . . ~
. . % . . . y E 3 . . @ . @ . f . 8
235 52 2 63 65 0 1 0 128 79 32 32 123 136 205 241 182 205 201 131
88 46 0 0 41 0 0 0 1 32 32 32 142 78 19 102 209 192 102 126
144 49 0 240 84 0 6 0 41 78 70 51 193 2 115 15 128 237 247 22
77 0 0 0 2 0 0 0 241 65 65 201 142 138 5 182 226 6 225 0
83 2 0 63 62 2 0 0 23 77 84 142 217 86 185 198 63 65 102 117
87 32 248 0 37 0 0 0 121 69 51 209 189 64 255 64 247 102 137 56
Offset 16 = 0x10 = Count of FAT’S = 0x0002
Virtual University of Pakistan
51
System Programming
[email protected]
Course Code: CS609
0000 0008 0010 0018 0020 0028 0030 0038 0040 0048 0050 0058 0060 0068 0070 0078 0080 0088 0090 0098
EB 34 02 3F 41 00 01 00 80 4F 20 20 7B 88 CD F1 B6 CD C9 83
58 2E 00 00 29 00 00 00 01 20 20 20 8E 4E 13 66 D1 C0 66 7E
90 31 00 F0 54 00 06 00 29 4E 46 33 C1 02 73 0F 80 ED F7 16
Sector per FAT copy 4D 00 00 00 02 00 00 00 F1 41 41 C9 8E 8A 05 B6 E2 06 E1 00
53 02 00 3F 3E 02 00 00 17 4D 54 8E D9 56 B9 C6 3F 41 66 75
57 20 F8 00 25 00 00 00 79 45 33 D1 BD 40 FF 40 F7 66 89 38
49 24 00 00 00 00 00 00 2D 20 32 BC 00 B4 FF 66 E2 0F 46 83
4E 00 00 00 00 00 00 00 4E 20 20 F4 7C 08 8A 0F 86 B7 F8 7E
. 4 . ? A . . . . O
X . . . ) . . . .
{ . . . . . . .
. N . f . . f ~
. 1 . . T . . . ) N F 3 . . s . . . . .
M . . . . . . . . A A . . . . . . . . .
S . . ? > . . . . M T . . V . . ? A f u
W I $ . . . . . . -
N . . . . . . . N
2 . . . . f . . F .
. | . . . . . . ~
. . % . . . y E 3 . . @ . @ . f . 8
235 52 2 63 65 0 1 0 128 79 32 32 123 136 205 241 182 205 201 131
88 46 0 0 41 0 0 0 1 32 32 32 142 78 19 102 209 192 102 126
144 49 0 240 84 0 6 0 41 78 70 51 193 2 115 15 128 237 247 22
77 0 0 0 2 0 0 0 241 65 65 201 142 138 5 182 226 6 225 0
83 2 0 63 62 2 0 0 23 77 84 142 217 86 185 198 63 65 102 117
87 32 248 0 37 0 0 0 121 69 51 209 189 64 255 64 247 102 137 56
73 36 0 0 0 0 0 0 45 32 50 188 0 180 255 102 226 15 70 131
78 0 0 0 0 0 0 0 78 32 32 244 124 8 138 15 134 183 248 126
Offset 36 = 0x24 = Sectors occupied by single FAT = 0x0000253E
0000 0008 0010 0018 0020 0028 0030 0038 0040 0048 0050 0058 0060 0068 0070 0078 0080 0088 0090 0098
Cluster # for Root Directory EB 34 02 3F 41 00 01 00 80 4F 20 20 7B 88 CD F1 B6 CD C9 83
58 2E 00 00 29 00 00 00 01 20 20 20 8E 4E 13 66 D1 C0 66 7E
90 31 00 F0 54 00 06 00 29 4E 46 33 C1 02 73 0F 80 ED F7 16
4D 00 00 00 02 00 00 00 F1 41 41 C9 8E 8A 05 B6 E2 06 E1 00
53 02 00 3F 3E 02 00 00 17 4D 54 8E D9 56 B9 C6 3F 41 66 75
57 20 F8 00 25 00 00 00 79 45 33 D1 BD 40 FF 40 F7 66 89 38
49 24 00 00 00 00 00 00 2D 20 32 BC 00 B4 FF 66 E2 0F 46 83
4E 00 00 00 00 00 00 00 4E 20 20 F4 7C 08 8A 0F 86 B7 F8 7E
. 4 . ? A . . . . O
X . . . ) . . . .
{ . . . . . . .
. N . f . . f ~
. 1 . . T . . . ) N F 3 . . s . . . . .
M . . . . . . . . A A . . . . . . . . .
S . . ? > . . . . M T . . V . . ? A f u
W I $ . . . . . . -
N . . . . . . . N
2 . . . . f . . F .
. | . . . . . . ~
. . % . . . y E 3 . . @ . @ . f . 8
235 52 2 63 65 0 1 0 128 79 32 32 123 136 205 241 182 205 201 131
88 46 0 0 41 0 0 0 1 32 32 32 142 78 19 102 209 192 102 126
144 49 0 240 84 0 6 0 41 78 70 51 193 2 115 15 128 237 247 22
77 0 0 0 2 0 0 0 241 65 65 201 142 138 5 182 226 6 225 0
83 2 0 63 62 2 0 0 23 77 84 142 217 86 185 198 63 65 102 117
87 32 248 0 37 0 0 0 121 69 51 209 189 64 255 64 247 102 137 56
73 36 0 0 0 0 0 0 45 32 50 188 0 180 255 102 226 15 70 131
78 0 0 0 0 0 0 0 78 32 32 244 124 8 138 15 134 183 248 126
Offset 44 = 0x2C = 0x0000 0002
Virtual University of Pakistan
52
System Programming
[email protected]
Course Code: CS609
0000 0008 0010 0018 0020 0028 0030 0038 0040 0048 0050 0058 0060 0068 0070 0078 0080 0088 0090 0098
EB 34 02 3F 41 00 01 00 80 4F 20 20 7B 88 CD F1 B6 CD C9 83
Size of Cluster in Sectors 58 2E 00 00 29 00 00 00 01 20 20 20 8E 4E 13 66 D1 C0 66 7E
90 31 00 F0 54 00 06 00 29 4E 46 33 C1 02 73 0F 80 ED F7 16
4D 00 00 00 02 00 00 00 F1 41 41 C9 8E 8A 05 B6 E2 06 E1 00
53 02 00 3F 3E 02 00 00 17 4D 54 8E D9 56 B9 C6 3F 41 66 75
57 20 F8 00 25 00 00 00 79 45 33 D1 BD 40 FF 40 F7 66 89 38
49 24 00 00 00 00 00 00 2D 20 32 BC 00 B4 FF 66 E2 0F 46 83
4E 00 00 00 00 00 00 00 4E 20 20 F4 7C 08 8A 0F 86 B7 F8 7E
. 4 . ? A . . . . O
X . . . ) . . . .
{ . . . . . . .
. N . f . . f ~
. 1 . . T . . . ) N F 3 . . s . . . . .
M . . . . . . . . A A . . . . . . . . .
S . . ? > . . . . M T . . V . . ? A f u
W I $ . . . . . . -
N . . . . . . . N
2 . . . . f . . F .
. | . . . . . . ~
. . % . . . y E 3 . . @ . @ . f . 8
235 52 2 63 65 0 1 0 128 79 32 32 123 136 205 241 182 205 201 131
88 46 0 0 41 0 0 0 1 32 32 32 142 78 19 102 209 192 102 126
144 49 0 240 84 0 6 0 41 78 70 51 193 2 115 15 128 237 247 22
77 0 0 0 2 0 0 0 241 65 65 201 142 138 5 182 226 6 225 0
83 2 0 63 62 2 0 0 23 77 84 142 217 86 185 198 63 65 102 117
87 32 248 0 37 0 0 0 121 69 51 209 189 64 255 64 247 102 137 56
73 36 0 0 0 0 0 0 45 32 50 188 0 180 255 102 226 15 70 131
78 0 0 0 0 0 0 0 78 32 32 244 124 8 138 15 134 183 248 126
Offset 13 = 0x0D = 0x20 = 32 blocks
So using all this information we calculate the LSN for cluster number 2 as shown the slide below for this particular volume.
Starting Sector for Cluster # 2 Starting Sector = Reserved Sect. + FatSize * FatCopies + (cluster # - 2) * size of cluster = 0x0024 + 0x0000 253E * 0x0002 + (2 – 2) * 0x20 = 0x4AA0 = 19104D
Virtual University of Pakistan
53
System Programming
[email protected]
Course Code: CS609
To examine the contents of a file first a file is created whose contents are also shown in the slide.
Creation of a File on Root Directory
and is stored as myfile.txt on the root directory.
Creation of a File on Root Directory
Now we examine the contents of cluster number 2 which contains the root directory as already seen in the previous slides.
Virtual University of Pakistan
54
System Programming
[email protected]
Course Code: CS609
Cluster # 2 000000000000 000000000010 000000000020 000000000030 000000000040 000000000050 000000000060 000000000070 000000000080 000000000090 0000000000A0 0000000000B0 0000000000C0
0000 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0
E5 A8 57 A8 4E 03 4E 03 42 A8 42 6E 01
41 32 49 32 54 31 54 31 4F 32 20 00 44
47 84 4E 21 4C A8 44 A8 4F 21 00 67 00
45 33 44 34 44 32 45 32 54 34 53 00 6F
46 00 4F 00 52 00 54 00 20 0E 00 73 00
49 00 57 00 20 00 45 00 20 00 65 00 63
4C 53 53 A3 20 71 43 D1 20 5C 00 00 00
45 4E 20 31 20 A7 54 A4 20 33 74 00 75
53 84 20 A8 20 03 43 03 49 A8 00 FF 00
59 33 20 32 20 31 4F 31 4E 32 74 FF 6D
53 03 20 03 20 85 4D 9E 49 F0 00 00 00
26 00 10 0A 27 8E 27 8F 06 AD 0F 00 0F
00 00 00 00 08 B0 00 CC 18 D3 00 FF 00
3B 60 4C 00 00 D0 00 B9 30 00 4A FF 4A
A2 01 A2 00 71 03 D1 00 25 00 69 FF 65
31 00 31 00 A7 00 A4 00 32 00 00 FF 00
.AGEFILESYS&.;.1 .2.3..SN.3...`.. WINDOWS ..L.1 .2!4...1.2...... NTLDR '..q. .1.2..q..1...... NTDETECTCOM'.... .1.2.....1...... BOOT INI..0%2 .2!4..\3.2...... B .S.e.t.t...Ji. n.g.s........... .D.o.c.u.m...Je.
0000000034E0 0000000034F0 000000003500 000000003510 000000003520 000000003530
34E0 34F0 3500 3510 3520 3530
E5 21 4D 21 00 00
59 34 59 34 00 00
46 21 46 21 00 00
49 34 49 34 00 00
4C 00 4C 09 00 00
45 00 45 00 00 00
20 CD 20 CD 00 00
20 16 20 16 00 00
54 21 54 21 00 00
58 34 58 34 00 00
54 00 54 C9 00 00
20 00 20 29 00 00
18 00 18 29 00 00
67 00 67 00 00 00
CC 00 CC 00 00 00
16 00 16 00 00 00
.YFILE TXT .g.. !4!4....!4...... MYFILE TXT .g.. !4!4....!4.))... ................ ................
From the information from above slides the low and high words of the first cluster number is obtained and is shown in the slide below. The higher 4 bits of the cluster number should be ignored as discussed earlier.
Virtual University of Pakistan
55
System Programming
[email protected]
Course Code: CS609
Cluster # within FCB Cluster # Low Word = 29C9 Cluster # Hi Word = 0009H 0009 29C9 & 0FFF FFFF = 009 29C9
Using the cluster number above the LSN for this cluster is determined as shown in the slide below.
File Data Sectors Starting Sector = Reserved Sect. + FatSize * FatCopies + (cluster # - 2) * size of cluster = 0024 + 253E * 2 + (929C9 – 2) * 0x20 = 4AA0 + 12538E0 = 1258380 = 19235712
The blocks within the cluster are read and their contents can be seen in the slide below.
Virtual University of Pakistan
56
System Programming
[email protected]
Course Code: CS609
File Data Dump of LSN 19235712 0000 0008 0010 0018 0020 0028 0030 0038 0040 0048 0050 0058 0060 0068
74 66 74 33 73 65 00 00 00 00 00 00 00 00
68 69 65 32 74 00 00 00 00 00 00 00 00 00
69 6C 73 20 72 00 00 00 00 00 00 00 00 00
0070 0078
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0080 0088
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0090
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
0
0098 00A0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00A8 00B0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
0
0120 0128
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0130 0138
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
0
01B8 01C0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
01C8 01D0
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
00 00
00 00
0 000
0000
..
.
. .
.
..
0
0
0
0
0
0
0
h i e 2 t . . . . . . . . .
i s l e s t f r u . . . . . . . . . . . . . . . . . .
i c . . . . . . . . .
i t F l t . . . . . . . . .
s o A e u . . . . . . . . .
T r . . . . . . . . .
116 102 116 51 115 101 0 0 0 0 0 0 0 0
104 105 101 50 116 0 0 0 0 0 0 0 0 0
105 108 115 32 114 0 0 0 0 0 0 0 0 0
115 32 105 101 32 116 116 32 70 102 105 108 117 99 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
115 32 111 32 65 84 101 32 117 114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
01A0 01A8 01B0
01D8
t f t 3 s e . . . . . . . .
0 0
0178 0180 0188 0190 0198
20 20 54 20 72 00 00 00 00 00 00 00 00 00
0 0
0150 0158 0160 0168 0170
73 6F 41 65 75 00 00 00 00 00 00 00 00 00
0 0
0108 0110 0118
0140 0148
69 74 46 6C 74 00 00 00 00 00 00 00 00 00
0 0
00E0 00E8 00F0 00F8 0100
20 20 20 69 63 00 00 00 00 00 00 00 00 00
0 0
00B8 00C0 00C8 00D0 00D8
73 65 74 66 75 00 00 00 00 00 00 00 00 00
0
01E0 01E8
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
01F0 01F8
00 00 00 00
00 00 00 00
0 000 0 000
0000 0000
.. ..
. .
. . . .
. .
.. ..
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
In the FAT32 there is another special reserved block called FSInfo sector. The block contains some information required by the operating system while cluster allocation/deallocation to files. This information is also critical for FAT16 based systems. But in FAT12 and 16 this information is calculated when ever required. This calculation at the time of allocation is not feasible in FAT32 as the size of FAT32 is very large and such calculations will consume a lots of time, so to save time this information is stored in the FSInfo block and is updated at the time of allocation/deallocation.
Virtual University of Pakistan
57
System Programming
[email protected]
Virtual University of Pakistan
Course Code: CS609
58