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.

TL;DR

For this reading assignment, you are to read about I/O devices and RAID, and submit your responses to the Reading 11 Quiz.

Reading

The readings for this week are:

  1. Operating Systems: Three Easy Pieces

Optional Reading

Quiz

Once you have done the readings, answer the following Reading 11 Quiz questions:

Program

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:

  1. What device is the root (ie. /) filesystem mounted on (ie. /dev/XXX)?

  2. What type of filesystem is /boot mounted on?

  3. What version of RAID does /home use (ie. raidX)?

  4. How large is the swap partition (in G units)?

  5. What is the inode number of /etc/hosts?

  6. 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;
}

Submission

To submit you work, follow the same process outlined in Reading 01:

$ git checkout master                 # Make sure we are in master branch
$ git pull --rebase                   # Make sure we are up-to-date with GitLab

$ git checkout -b reading11           # Create reading11 branch and check it out

$ cd reading11                        # Go into reading11 folder
$ $EDITOR answers.json                # Edit your answers.json file

$ ../.scripts/check.py                # Check reading11 quiz
Checking reading11 quiz ...
     Q01 0.50
     Q02 0.40
     Q03 0.80
     Q04 0.40
     Q05 0.20
     Q06 0.40
     Q07 0.30
   Score 3.00 / 3.00
  Status Success

$ git add answers.json                # Add answers.json to staging area
$ git commit -m "Reading 11: Quiz"    # Commit work

$ $EDITOR program.c                   # Edit your program.c file

$ make test-program                   # Check reading11 program
Testing reading11 program...
   Score 3.00 / 3.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 11: Code"    # Commit work

$ git push -u origin reading11        # Push branch to GitHub

Pull Request

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 11 TA List.