Midterm #2 (Spring 1998)
(20 points) Disks: consider
a disk with one surface and 100 tracks recorded evenly spaced between 0.5” to
3.5” from the center of the platter.
Assume that you have a disk that can store 20 sectors per 2π
inches of magnetic media that passes under the disk head, that the disk drive
can have a different number of sectors per track for each track, and fractional
sectors per track. What is the maximum capacity
of this disk in sectors?
Assume the disk can only record at a single density (i.e., the
sectors per track will be the same for each track), and the maximum density is
still 20 sectors per 2π inches, what is the capacity of the disk?
Synchronization: Recall that binary semaphore can only have values of 0 and 1,
and counting semaphores can have values from 0 to n. Using binary semaphores, show
how you can implement counting semaphores. Please indicate the binary semaphores
and variables used, and their initial values.
(20 Points) Consider a reference string 1,2,3,4,2,5,7,2,3,2,1,7,8
How many page faults would there be using FIFO replacement and
4 page frames?
How many faults with LRU and 4 page frames?
How many faults using an optimal algorithm and 4 page frames?
(20 points) Security
UNIX file protection is applied on a per file basis, but AFS
uses per-directory file protection, explain why AFS used per-directory file
protection even though it is based on UNIX.
A user has write privilege to a UNIX directory “goodStuff”,
but not to the file “protected” in the “goodStuff” directory, explain how the
user can still modify the file “protected”.
In an attempt to save storage space, someone suggests that
rather than storing the salt characters for the UNIX password in the password
file that we use the first two characters of the user’s name as the salt. Explain how this would impact the security
of accounts on a single machine and on multiple machines.
(20 points) File-systems
A UNIX system has just been rebooted (i.e., the file buffer and
name translation caches are empty). What is the minimum number of disk blocks
that must be read to get to the millionth byte of the file “/a/big/file”
assuming the file-system uses 4KB blocks, and 32-bit inode numbers?
Explain why a bit vector implementation of a free block list
can provide increased reliability and performance compared with keeping a list
of free blocks where the first few bytes of each free block provide the logical
sector number of the next free block.