This class has been replaced, as agreed, by an essay.
The essay should be a structured text presenting and documenting the following topics
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.
In this part, you will present concepts about files, directories properties and how to control access to them.
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 ...
What is a file type?
How do systems recognize a file type?
What do we expect from the command file?
What structure for what content?
How does an OS support file structure?
Which ones? Advantages? Drawbacks?
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?
How to organise directories altogether? for multiple users?
Advantages?
How do we find files now? Path?
What is a link? Why do we need it?
Are there different types of links? Why/What for?
Special links?
Problems?
What is it? What happens? Automatic?
Problems?
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?
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.
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?
What properties would we require?
How to implement them? Advantages? Drawbacks?
Present the allocation methods: Contiguous, Linked, Indexed.
with properties, advantages and drawbacks.
Performance?
Analogy with main memory?
Free-space list
Bit vector
Linked list
On what type of media can we work?
Present the physical disk structure. Built of?
Addressing and positioning time?
What are they? Why/what for?
Boot block, bad block, swap space
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?
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?