UNIVERSITY OF WISCONSIN-MADISON
Computer Sciences Department
CS 537
Spring 2000
A. Arpaci-Dusseau
Quiz #10: Wednesday, May 3

Name: Student ID #:

Problem 1: File Allocation (40 points)

a) Similarities exist between policies for allocating blocks on disk to files and policies for allocating physical memory to processes. Match the file allocation policy with the most similar memory allocation policy; note that each memory allocation policy may be used more than once.
____ Linked                              a.  Base and Bounds
____ Indexed                             b.  Paging
____ Contiguous                          c.  Segmentation
____ Extent-based                        d.  None of the above
____ FAT
____ Multi-level Indexed
The remaining questions in this section are multiple-choice. In each case, circle the best answer and briefly explain your answer. Without your explanation, we will not give credit for an answer. Unless otherwise note, you should only circle one answer.

b) The FAT approach is an optimization of which other approach? What optimization does it perform?

    a) Linked
    b) Indexed
    c) Contiguous
    d) Extent-based
    e) Multi-level Indexed

c) Extent-based allocations allow files to grow more easily than which other allocation policy? Why?

    a) Linked
    b) Contiguous
    c) FAT
    d) Multi-level Indexed

d) Which approach has the worst support for reading/writing files with a random-access pattern? Why?

    a) Linked
    b) Indexed
    c) Contiguous
    d) Extent-based
    e) FAT
    f) Multi-level Indexed



e) Which allocation schemes suffer from internal fragmentation? Circle all that apply and explain why.

    a) Linked
    b) Indexed
    c) Contiguous
    d) Extent-based
    e) FAT
    f) Multi-level Indexed

f) Which allocation schemes may limit the maximum size of a file to less than that of the entire disk even when this is the only file on the disk? Circle all that apply and briefly explain why.

    a) Linked
    b) Contiguous
    c) Extent-based
    d) FAT
    e) Multi-level Indexed

Problem 2: Berkeley Fast File System (40 points)

a) Consider the following bitmap of free fragments in FFS. Assume that each fragment is 1KB and each block is 4KB. The letter A denotes a fragment allocated to file A, the letter B a fragment allocated to file B, and 0 a free fragment. (Note that in the real system, an allocated fragment would just be marked with a 1, not an A or B; we are simply showing the corresponding file for clarity in this question.)

Bitmap of Free Fragments
Imagine that a new fragment is allocated to file A (e.g., a new fragment is written to the end of file A). How will the allocation of fragments on the disk change? Which new disk fragment(s) will be allocated to file A? To be clear, you may want to redraw the bitmap of fragments.








b)On a disk with 4096-byte blocks, the data blocks for a large file are allocated to a new cylinder group after 48KB. What can you infer about the structure of the FFS i-node from this 48KB value?











c) FFS was not designed with modern disk technology, such as multi-zone disks, in mind. Imagine that you have been asked to modify/optimize FFS to have better performance when run on multi-zone disks.

What would you suggest should be allocated on the outer cylinders of the disk? Circle only the one best answer and explain why.

    a)  I-nodes for files in the same directory
    b)  Data blocks for large files
    c)  Data blocks for files in the same directory
    d)  Data blocks for directories




d) Assume that you have been given a bizarre prototype disk for which you must optimize FFS. (Forget about multi-zone disks.) On this prototype disk, it is very expensive to switch between disk heads, but seek time is negligible.

To help performance, FFS associated workload locality with a disk organizational structure called cylinder groups. On the bizarre prototype disk, which sectors should be grouped together? Very briefly, explain why.

    a)  Sectors in nearby cylinders
    b)  Sectors on the same platter
    c)  Sectors on nearby platters
    d)  Sectors on the same surface
    e)  Sectors on nearby surfaces




Problem 3: Disk Scheduling (20 points)

a) The disk scheduling algorithms that we have examined all try to minimize one component of the time required to transfer a block to (or from) disk. What is this component (or performance metric)?


b) Assume that this performance metric has been optimized for a given workload (i.e., the metric is as small as possible). Given a modern disk, is it possible for the total block transfer time to be less with a different disk scheduling algorithm? Clearly explain why or why not. (Drawing a picture or giving an example may help your explanation.)