Everyone:
Next week, we will explore how an OS provides persistence by managing I/O devices such as hard disks. Likewise, we will also consider aggregation strategies such as RAID which provide an illusion of a large disk composed of multiple inexpensive disks.
For this reading assignment, you are to read about I/O devices and RAID, and submit your responses to the Reading 10 Quiz.
The readings for this week are:
Using Learn About from Google, have a conversation about I/O devices and RAID by asking the following questions:
- What is the memory hierarchy?
- How do operating systems provide persistence?
- What is the difference between a SSD and a HDD?
- What is RAID and why is it useful?
- What is the difference between RAID 0, RAID 1, RAID 5, and RAID 10?
As you explore, feel free to dive into the suggested related questions or to "simplify", "go deeper", and "get images".
Once you have done the readings, answer the following Reading 10 Quiz questions:
For this week, you are to explore the filesystems on
student10.cse.nd.edu by using df, lsblk, mount, stat, and
/proc/mdstat
to answer the following questions:
What device is the root (ie. /
) filesystem mounted on (ie. /dev/XXX
)?
What type of filesystem is /boot
mounted on?
What version of RAID does /home
use (ie. raidX
)?
How large is each swap partition (in G
units)?
What is the inode number of /etc/hosts
?
What is the file size (in bytes) of /bin/ls
)?
In your program.c
, simply use puts to print out the answers:
int main(int argc, char *argv[]) {
puts("/dev/...");
...
puts("1");
return 0;
}
To submit you work, follow the same process outlined in Reading 01:
$ git switch master # Make sure we are in master branch
$ git pull --rebase # Make sure we are up-to-date with GitLab
$ git checkout -b reading10 # Create reading10 branch and check it out
$ cd reading10 # Go into reading10 folder
$ $EDITOR answers.json # Edit your answers.json file
$ ../.scripts/check.py # Check reading10 quiz
Checking reading10 quiz ...
Q01 0.30
Q02 0.20
Q03 0.70
Q04 0.20
Q05 0.15
Q06 0.30
Q07 0.15
Score 2.00 / 2.00
Status Success
$ git add answers.json # Add answers.json to staging area
$ git commit -m "Reading 10: Quiz" # Commit work
$ $EDITOR program.c # Edit your program.c file
$ make test-program # Check reading10 program
Testing reading10 program...
Score 2.00 / 2.00
Status Success
$ git add Makefile # Add Makefile to staging area
$ git add program.c # Add program.c to staging area
$ git commit -m "Reading 10: Code" # Commit work
$ git push -u origin reading10 # Push branch to GitHub
Once you have committed your work and pushed it to GitHub, remember to create a pull request and assign it to the appropriate teaching assistant from the Reading 10 TA List.