Operating Systems (Fall 2014): Difference between revisions

From Soma-notes
Line 173: Line 173:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 14|Lecture 14]]
       <p>[[Operating Systems 2014F Lecture 14|Lecture 14]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-events.pdf Event-based Concurrency]
       </p>
       </p>
       </td>
       </td>
Line 183: Line 183:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 15|Lecture 15]]
       <p>[[Operating Systems 2014F Lecture 15|Lecture 15]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-devices.pdf I/O Devices], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-disks.pdf Hard Disk Drives]
       </p>
       </p>
       </td>
       </td>
Line 193: Line 193:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 16|Lecture 16]]
       <p>[[Operating Systems 2014F Lecture 16|Lecture 16]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-raid.pdf RAID], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf File and Directories]
       </p>
       </p>
       </td>
       </td>
Line 203: Line 203:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 17|Lecture 17]]
       <p>[[Operating Systems 2014F Lecture 17|Lecture 17]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf File System Implementation], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-ffs.pdf FFS]
       </p>
       </p>
       </td>
       </td>
Line 213: Line 213:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 18|Lecture 18]]
       <p>[[Operating Systems 2014F Lecture 18|Lecture 18]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf FSCK and Journaling], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-lfs.pdf Log-structured FS]
       </p>
       </p>
       </td>
       </td>
Line 223: Line 223:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 19|Lecture 19]]
       <p>[[Operating Systems 2014F Lecture 19|Lecture 19]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-integrity.pdf Data Integrity and Protection]
       </p>
       </p>
       </td>
       </td>
Line 233: Line 233:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 20|Lecture 20]]
       <p>[[Operating Systems 2014F Lecture 20|Lecture 20]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-intro.pdf Distributed Systems]
       </p>
       </p>
       </td>
       </td>
Line 243: Line 243:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 21|Lecture 21]]
       <p>[[Operating Systems 2014F Lecture 21|Lecture 21]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-nfs.pdf NFS], [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf AFS]
       </p>
       </p>
       </td>
       </td>
Line 253: Line 253:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 22|Lecture 22]]
       <p>[[Operating Systems 2014F Lecture 22|Lecture 22]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vmm-intro.pdf Virtual Machines]
       </p>
       </p>
       </td>
       </td>
Line 263: Line 263:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F Lecture 23|Lecture 23]]
       <p>[[Operating Systems 2014F Lecture 23|Lecture 23]]: Class Summary and Review
       </p>
       </p>
       </td>
       </td>

Revision as of 18:04, 23 September 2014

Course Outline

Here is the course outline for COMP 3000: Operating Systems.

Lectures and Exams

Note that the topics below are primarily chapters from the class textbook, Operating Systems: Three Easy Pieces. Note that while introductory and summary dialogues are not linked below, they are worth reading for an informal take on the material.

Date

Topic

Sept. 5

Lecture 1: Introduction

Sept. 10

Lecture 2: Processes, Process API

Sept. 12

Lecture 3: Limited Direct Execution

Sept. 17

Lecture 4: CPU Scheduling, MLFQ

Sept. 19

Lecture 5: Lottery Scheduling, Multi-CPU scheduling

Sept. 24

Lecture 6: Address Spaces, Memory API

Sept. 26

Lecture 7: Address Translation, Segmentation

Oct. 1

Lecture 8: Free space management, Paging

Oct. 3

Lecture 9: TLBs, Smaller Tables

Oct. 8

Lecture 10: Concurrency and Threads, Thread API

Oct. 10

Lecture 11: Locks, Concurrent Data Structures

Oct. 15

Lecture 12: Condition Variables, Semaphores, Concurrency Problems

Oct. 17

Lecture 13: Swapping: Mechanisms, Swapping: Policies, VAX/VMS

Oct. 22

Midterm (in class)

Oct. 24

Midterm solutions

Nov. 5

Lecture 14: Event-based Concurrency

Nov. 7

Lecture 15: I/O Devices, Hard Disk Drives

Nov. 12

Lecture 16: RAID, File and Directories

Nov. 14

Lecture 17: File System Implementation, FFS

Nov. 19

Lecture 18: FSCK and Journaling, Log-structured FS

Nov. 21

Lecture 19: Data Integrity and Protection

Nov. 26

Lecture 20: Distributed Systems

Nov. 28

Lecture 21: NFS, AFS

Dec. 3

Lecture 22: Virtual Machines

Dec. 5

Lecture 23: Class Summary and Review

TBA

Final Exam

Tutorials

Each week you will get a progress grade from 0-4, given to you by a TA. If you are being diligent, you should be able to get 4's every week. The easiest way to get your grade is to come to tutorial and meet with your TA; alternately, you can meet a TA in their office hours or, at their discretion, discuss things with them online.

Date

Tutorials

Sept. 5,8

UNIX Introduction

Sept. 12, 15

Simple Shell

Sept. 19, 22

Scheduler, Process Priorities, /proc, ELF

Sept. 26, 29

Character devices, kernel modules

Oct. 3, 6

Threads, Concurrency

Oct. 17, 20

Review

Nov. 7, 10

Block devices, Filesystems

Nov. 14, 17

User-mode Filesystems

Nov. 21, 24

Partitions and boot loaders

Nov. 28, Dec. 1

Operating Systems 2014F: Networking, Network Filesystems

Assignments

Due Date

Assignments

Sept. 10

Assignment 1

Sept. 17

Assignment 2

Sept. 24

Assignment 3

Oct. 1

Assignment 4

Oct. 8

Assignment 5

Oct. 16 (Thurs.)

Assignment 6

Nov. 12

Assignment 7

Nov. 19

Assignment 8

Nov. 26

Assignment 9

Dec. 3

Assignment 10

Course Software

In this course we will primarily working with Lubuntu, a low-resource variant of Ubuntu Linux distribution. You may use other Linux distributions in the tutorials to complete the assigned work; there will be differences, however, in some aspects (such as installing software), particularly if you use a distribution not based on Ubuntu or Debian.

In the labs

In the SCS labs you should be able to run the course VM by starting Virtualbox (listed in the Applications menu) and selecting the COMP 2406/3000 virtual machine image. After the VM has fully booted you will be automatically logged into the student account; this account has admin privileges and its password is "tneduts!".

We highly recommend running your VM in full-screen mode (select from the menu, not by maximizing the window). Do all of your work inside of the VM; it should be fast enough and you won't have any issues with sharing files or with firewalls/network connectivity.

You can save the work you do from the course VM (in the student account) to your SCS account and restore it to any other copy of the class VM (on your machines or in the labs) by running using the following commands:

 save3000 <SCS username>
 restore3000 <SCS username>
 compare3000 <SCS username>

If you use these commands, use them consistently. That means run restore3000 when you first log in, and run save3000 just before logging out. If you don't do this, you will erase the work that you had done previously when you save.

If you forgot to restore and you want to save, try running this:

  rsync -a -v --progress ~/ <SCS username>@access.scs.carleton.ca:COMP3000/

This is the same as the save3000 command minus the options (--delete and --force) that deletes files in the destination that don't exist in the source. As a check, you may want to add the -n option to do a dry run.

Running the VM on your own machines

If you want to run the VM appliance on your own system (running essentially any desktop operating system you want), just download the virtual appliance file and import. The SHA1 hash of this file is:

 e5613881b28be41f49b82730282d40093388ee71  COMP 2406-3000 Fall 2014.ova

On Windows you can compute this hash for your downloaded file using the command FCIV -sha1 COMP 2406-3000 Fall 2014.ova. If the hash is different from above, your download has been corrupted.

If the application is not VirtualBox, you'll need to:

  • Have the VM platform ignore any errors in the structure of the appliance found during the import process;
  • Uninstall the VirtualBox guest additions by typing starting a terminal application and running
  sudo apt-get purge virtualbox-guest-x11 virtualbox-guest-utils
  • Install your platform's own Linux guest additions, if available.