Organization
of a Surface
Each disk surface is partitioned into a number of
concentric tracks.
Each track is partitioned into a number of sectors.
Each sector contains 512 bytes of data, plus control
information
(synchronization information to
position the disk heads and error correcting codes).
The File
Allocation Table
Physically the disk contains a large number of
sectors, each of which
contains either data or programs. The
term “cluster” will be defined in the next slide.
Logically the disk contains a large number of files,
also program and data.
The disk will have one or more index structures that
associate files with their sectors.
The two important structures are
the
disk directory associates
a file with its first sector
the
File Allocation Table maintains the
“linked list” of sectors for that file.
An example from the textbook shows the structure of
the FAT.
Here the disk directory indicates that the first
sector for a file is at address 121.
The FAT entry at 121 indicates that the next sector is
at address 124.
The FAT entry at 126 indicates that the next sector is
at address 122.
The FAT entry at 122 indicates that sector 122 is the
last for this file. Sector 125 is bad.
FAT–16 and Its
Consequences
The FAT–16 system was implemented by Microsoft for
early versions of MS–DOS.
This system used a 16–bit index into the FAT.
As there is one FAT entry per sector, this makes this
limits the sector count to 216.
The maximum disk size is thus 216· 512 = 216· 29 = 225 = 25· 220 = 32 MB.
In 1987, my brand–new PC/XT had a 20MB disk! FAT–16 worked very well.
What about a 40 MB disk? How about a 256 MB disk?
Few people in the late 1980’s contemplated disk drives
with capacities of over 100 GB,
but it was obvious that unmodified FAT–16 would not do the job.
We consider two short–term remedies to this problem,
one transient and
one with longer term consequences.
FAT–16 and
Its Consequences
Part 2: Disk Partitioning
The first solution was to partition a larger physical
disk drive
into two logical disk drives.
A 40 MB disk drive would support two logical disks,
each with its own
directory structure and File Allocation Table.
Drive C with capacity of 32 MB
Drive D with capacity of 8 MB.
As a short–term fix, this worked well. However, it just raised the limit to 64 MB.
This solution was obsolete by about 1992.
FAT–16 and
Its Consequences
Part 3: Disk Clusters
The main problem with the FAT–16 system arose from the
fact that each sector was individually addressable. With 216 addresses available, we
have a maximum
of 216 sectors or 32 MB.
The second solution was to remove the restriction that
each sector be addressable.
Sectors were grouped into clusters, and only clusters
could be addressed.
The number of sectors a cluster contained was
constrained to be a power of 2;
so we had 2, 4, 8, 16, etc. sectors per cluster. The effect on disk size is easy to see.
Sectors in Cluster |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
Bytes in Cluster |
512 |
1024 |
2048 |
4096 |
8192 |
16384 |
32768 |
Disk Size |
32 MB |
64 MB |
128 MB |
256 MB |
512 MB |
1 GB |
2 GB |
In
the early 1990’s, it seemed that this solution would work for a while.
Nobody back then envisioned multi–gigabyte disk drives
on personal computers.
There
is a problem associated with large clusters; it is called “internal fragmentation”.
FAT–16 and
Its Consequences
Part 4: Internal Fragmentation
This problem arises from the fact that files must
occupy an integer number of clusters.
Consider a data file having exactly 6,000 bytes of
data, with several cluster sizes.
Sectors in Cluster |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
Bytes in Cluster |
512 |
1024 |
2048 |
4096 |
8192 |
16384 |
32768 |
Clusters needed |
12 |
6 |
3 |
2 |
1 |
1 |
1 |
File size on disk |
6144 |
6144 |
6144 |
8192 |
8192 |
16384 |
32768 |
Disk efficiency |
97.7% |
97.7% |
97.7% |
73.2% |
73.2% |
36.6% |
18.3% |
There
is also the consideration of the time required to read a cluster.
Consider a disk for which the maximum data rate is 8
MB per second.
Here, we are saying that 8MB = 223 bytes. More on this later.
Sectors in Cluster |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
Bytes in Cluster |
29 |
210 |
211 |
212 |
213 |
214 |
215 |
Transfer time |
2-14 |
2-13 |
2-12 |
2-11 |
2-10 |
2-9 |
2-8 |
Time in msec. |
0.06 |
0.122 |
0.244 |
0.488 |
0.977 |
1.95 |
3.91 |
Marketing
Hype: Sizing Large Disk Drives
All large disk drives are sized in gigabytes.
Traditionally 1GB = 230 bytes = 1, 073,
741, 824 bytes.
Recent commercial practice uses 1GB = 109
bytes = 1, 000, 000 ,000 bytes.
Let’s look at some comparative sizes.
Size
in GB Size in
GB
with 1GB = 109 bytes with 1GB = 230 bytes
10 9.314
40 37.25
80 74.51
200 186.3
Some disk utilities will report free disk space using
both units.
This is the reason for the discrepancies.
Computing
Disk Capacities
The capacity of a disk drive is expressed in a number
of equivalent ways.
Disk Capacity =
(number of surfaces)·(bytes per surface)
=
(number of surfaces)·(tracks per surface)·(bytes per track)
=
(number of surfaces)·(tracks per surface)
· (sectors per track)·512
Data from
an earlier disk drive (now rather small).
8
surfaces
3196
tracks per surface
132
sectors per track
512
bytes per sector
Surface capacity = 3196·132·512 = 421872·512 = 210936·1024 bytes
=
210936 KB » 206.0 MB
Disk capacity = 8·210936 KB = 1,687,488 KB » 1.61 GB
Computing
Disk Maximum Transfer Rate
Disk rotation rates are given in RPM (Revolutions per
Minute).
Common values are 3,600 RPM, 7,200 RPM, and higher.
3,600 RPM is 60 revolutions per second. 7,200 PRM is 120 per second.
Disks can transfer at maximum rate while reading from
a single cylinder.
Moving to another cylinder takes time, called the
track–to–track seek time.
Consider our sample disk. Suppose it rotates at 7,200 RPM.
One revolution every (1/120) second.
One track contains 132·512 bytes = 66·1024 bytes = 66KB.
This track can be read in (1/120) of a second.
The maximum data rate is 66 KB in (1/120) of a second.
120
· 66 KB in one second.
7,920
KB per second = 7.73 MB per second.
Sustaining
the Maximum Data Transfer Rate
Recall the definition of a cylinder as a set of
tracks, one per surface.
The number of tracks per cylinder is always exactly
the same
as the number of surfaces in the disk drive.
Our sample drive has 8 surfaces; each cylinder has 8
tracks.
Each track can be read in one revolution of the disk
drive.
The data rate can be sustained for as long as it takes
to read all tracks from the cylinder.
In our sample drive, rotating at 7200 RPM or 120 per
second:
Each
track can be read in 1/120 second.
The
cylinder, containing 8 tracks, is read in 8/120 second or 1/15 second.
The maximum data transfer rate can be sustained for
1/15 second.
Modern Disk
Organization
Older disk drives divided the surface into a number of
equally sized tracks.
This facilitated design of the disk controller, but
made poor use of the disk surface,
as the inner tracks (with maximum linear density) determined the number of
sectors.
Modern disk drives divide the disk surface into a
number of zones.
Each zone has the same number of sectors per track.
This
gives only a modest increase in complexity of the controller.
Security
Issues: Erasing and Reformatting
Remember the disk directory and the FAT.
What happens when a file is erased from the disk? Are the file data removed?
Answer: No, the
file data are not removed. What actually
happens is:
1. The file name is removed from the disk
directory.
2. The FAT is modified to place all the sectors
(clusters) for that file
into a special file,
called the “Free List”.
3. Sectors do not have their data erased or
changed until they are allocated
to another file and that a
program writes data to that file.
For this reason, many companies sell utilities to
“Wipe the File” or “Shred the File”.
How
about reformatting the disk? Certainly,
that removes data.
Answer: No, the file data are not removed.
The directory structure and FAT are reinitialized.
The free list is built in an efficient form.
The sectors containing data are not overwritten.