File Systems, File Implementation and Disk Scheduling

This class has been replaced, as agreed, by an essay.
The essay should be a structured text presenting and documenting the following topics

  • File Systems
  • File Implementation
  • Disk Scheduling

Chapter 10,11 and 12 of the book cover the requested topics.

The requirements for the essay can be found here.


Here follows a description of the notions that you should not forget in the essay.
Your essay should not be a listing of raw answers to all questions in the different following parts covering the topics.
Your essay should be a structured text (eventually including bullets and images).
The following notes are more intended as a double check once the report is ready.

File Systems

In this part, you will present concepts about files, directories properties and how to control access to them.

Files

What is in a file, except its contents? => Attributes
What can we do with a file? => Basic Operations on file ... other operations ... Locking a file ...

File types

What is a file type?
How do systems recognize a file type?
What do we expect from the command file?

File structure

What structure for what content?
How does an OS support file structure?

Access methods

Which ones? Advantages? Drawbacks?

Directories

What is a directory? Why do we need it?
Operations?
How do we organise files inside a given directory? What do we do with the file name?

Directory structure

How to organise directories altogether? for multiple users?
Advantages?
How do we find files now? Path?

Links

What is a link? Why do we need it?
Are there different types of links? Why/What for?
Special links?
Problems?

Mounting

What is it? What happens? Automatic?
Problems?

File Sharing & Protection

How?
When are changes visible to others?
Are all files modifiable? How to control sharing?
ACL?
Groups? Advantages and Drawbacks?
*nix implementation? Windows implementation ? Others?


File Systems Implementation

Once we know that we would need concepts of files, directories and protection in case they are shared, we can wonder
about how to implement all.

File Systems structure

How to organise things? Analogy with main memory? Difference from main memory?
File systems come in many flavors. Cite several of them. Is there a way to "unify" them?

Present the basic file structures: VCB, FCB, open-file table, file descriptor, inode...
How to operate those structures?

Directory implementation

What properties would we require?
How to implement them? Advantages? Drawbacks?

Disk space allocation

Present the allocation methods: Contiguous, Linked, Indexed.
with properties, advantages and drawbacks.
Performance?
Analogy with main memory?

Free Space management

Free-space list
Bit vector
Linked list


Disk management and Scheduling

On what type of media can we work?

Physical characteristics

Present the physical disk structure. Built of?
Addressing and positioning time?

Partitioning and formating

What are they? Why/what for?
Boot block, bad block, swap space

Disk scheduling

Present the different algorithm, with their purposes, properties, advantages, drawbacks.
(FCFS, SSTF, SCAN, C-SCAN, LOOK and C-LOOK)
Parallel with what we've seen before?
How to choose between them?

Error handling and efficiency

What happens if disk sectors break? Repair? Handed by ECC?
Reliability via Redundancy?
Performance via Parallelism?
RAID: What is it? Why/ What for? Advantages, drawbacks?