Difference between revisions of "Operating Systems (Fall 2014)"

From Soma-notes
Jump to navigation Jump to search
Line 2: Line 2:


[[Operating Systems (Fall 2014) Course Outline|Here]] is the course outline for COMP 3000: Operating Systems.
[[Operating Systems (Fall 2014) Course Outline|Here]] is the course outline for COMP 3000: Operating Systems.
==Lectures==
The course will be using the textbook [http://pages.cs.wisc.edu/~remzi/OSTEP/ Operating Systems: Three Easy Pieces].  The chapters of this textbook are available for free online; you can also buy a full epub, PDF, or paper copy if you wish.


==Lectures and Exams==
==Lectures and Exams==


The course will be using the textbook [http://pages.cs.wisc.edu/~remzi/OSTEP/ Operating Systems: Three Easy Pieces]. The chapters of this textbook are available for free online; you can also buy a full epub, PDF, or paper copy if you wish.
Note that the topics below are primarily chapters from the class textbook, [http://pages.cs.wisc.edu/~remzi/OSTEP/ Operating Systems: Three Easy Pieces].
 


<table style="width: 100%;" border="1" cellpadding="4" cellspacing="0">
<table style="width: 100%;" border="1" cellpadding="4" cellspacing="0">
Line 23: Line 18:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 8
       <p>Sept. 5
      </p>
      </td>
      <td>
      <p>[[WebFund 2014W Lecture 1|Lecture 1]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Jan. 10
      </p>
      </td>
      <td>
      <p>[[WebFund 2014W Lecture 2|Lecture 2]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Jan. 15
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 3|Lecture 3]]
       <p>[[Operating Systems 2014F Lecture 1|Lecture 1]]
       </p>
       </p>
       </td>
       </td>
Line 53: Line 28:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 17
       <p>Sept. 10
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 4|Lecture 4]]
       <p>[[Operating Systems 2014F Lecture 2|Lecture 2]]
       </p>
       </p>
       </td>
       </td>
Line 63: Line 38:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 22
       <p>Sept. 12
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 5|Lecture 5]]
       <p>[[Operating Systems 2014F Lecture 3|Lecture 3]]
       </p>
       </p>
       </td>
       </td>
Line 73: Line 48:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 24
       <p>Sept. 17
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 6|Lecture 6]]
       <p>[[Operating Systems 2014F Lecture 4|Lecture 4]]
       </p>
       </p>
       </td>
       </td>
Line 83: Line 58:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 29
       <p>Sept. 19
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 7|Lecture 7]]
       <p>[[Operating Systems 2014F Lecture 5|Lecture 5]]
       </p>
       </p>
       </td>
       </td>
Line 93: Line 68:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 31
       <p>Sept. 24
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 8|Lecture 8]]
       <p>[[Operating Systems 2014F Lecture 6|Lecture 6]]
       </p>
       </p>
       </td>
       </td>
Line 103: Line 78:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 5
       <p>Sept. 26
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 9|Lecture 9]]
       <p>[[Operating Systems 2014F Lecture 7|Lecture 7]]
       </p>
       </p>
       </td>
       </td>
Line 113: Line 88:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 7
       <p>Oct. 1
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 10|Lecture 10]]
       <p>[[Operating Systems 2014F Lecture 8|Lecture 8]]
       </p>
       </p>
       </td>
       </td>
Line 123: Line 98:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 12
       <p>Oct. 3
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Midterm Review|Midterm Review]]
       <p>[[Operating Systems 2014F Lecture 9|Lecture 9]]
       </p>
       </p>
       </td>
       </td>
Line 133: Line 108:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 14
       <p>Oct. 8
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[http://homeostasis.scs.carleton.ca/~soma/webfund-2014w/comp2406-midterm-2014w-solutions.pdf Midterm (in class)]
       <p>[[Operating Systems 2014F Lecture 10|Lecture 10]]
       </p>
       </p>
       </td>
       </td>
Line 143: Line 118:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 26
       <p>Oct. 10
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 12|Lecture 12]]
       <p>[[Operating Systems 2014F Lecture 11|Lecture 11]]
       </p>
       </p>
       </td>
       </td>
Line 153: Line 128:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 28
       <p>Oct. 17
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 13|Lecture 13]]
       <p>[[Operating Systems 2014F Lecture 12|Lecture 12]]
       </p>
       </p>
       </td>
       </td>
Line 163: Line 138:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 5
       <p>Oct. 22
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 14|Lecture 14]]
       <p>Midterm (in class)
       </p>
       </p>
       </td>
       </td>
Line 173: Line 148:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 7
       <p>Nov. 5
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 15|Lecture 15]]
       <p>[[Operating Systems 2014F Lecture 13|Lecture 13]]
       </p>
       </p>
       </td>
       </td>
Line 183: Line 158:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 12
       <p>Nov. 7
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 16|Lecture 16]]
       <p>[[Operating Systems 2014F Lecture 14|Lecture 14]]
       </p>
       </p>
       </td>
       </td>
Line 193: Line 168:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 14
       <p>Nov. 12
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 17|Lecture 17]]
       <p>[[Operating Systems 2014F Lecture 15|Lecture 15]]
       </p>
       </p>
       </td>
       </td>
Line 203: Line 178:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 19
       <p>Nov. 14
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 18|Lecture 18]]
       <p>[[Operating Systems 2014F Lecture 16|Lecture 16]]
       </p>
       </p>
       </td>
       </td>
Line 213: Line 188:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 21
       <p>Nov. 19
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 19|Lecture 19]]
       <p>[[Operating Systems 2014F Lecture 17|Lecture 17]]
       </p>
       </p>
       </td>
       </td>
Line 223: Line 198:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 26
       <p>Nov. 21
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 20|Lecture 20]]
       <p>[[Operating Systems 2014F Lecture 18|Lecture 18]]
       </p>
       </p>
       </td>
       </td>
Line 233: Line 208:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 28
       <p>Nov. 26
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 21|Lecture 21]]
       <p>[[Operating Systems 2014F Lecture 19|Lecture 19]]
       </p>
       </p>
       </td>
       </td>
Line 243: Line 218:
     <tr>
     <tr>
       <td>
       <td>
       <p>Apr. 2
       <p>Nov. 28
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 22|Lecture 22]]
       <p>[[Operating Systems 2014F Lecture 20|Lecture 20]]
       </p>
       </p>
       </td>
       </td>
Line 253: Line 228:
     <tr>
     <tr>
       <td>
       <td>
       <p>Apr. 4
       <p>Dec. 3
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Lecture 23|Lecture 23]]
       <p>[[Operating Systems 2014F Lecture 21|Lecture 21]]
       </p>
       </p>
       </td>
       </td>
Line 263: Line 238:
     <tr>
     <tr>
       <td>
       <td>
       <p>April 21, 12-1:30 PM
       <p>Dec. 5
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W Final Exam Review|Exam Review, LA C164]]
       <p>[[Operating Systems 2014F Lecture 22|Lecture 22]]
       </p>
       </p>
       </td>
       </td>
Line 273: Line 248:
     <tr>
     <tr>
       <td>
       <td>
       <p>April 24, 9 AM
       <p>TBA
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>Final Exam, FH Rows 1-8 [http://homeostasis.scs.carleton.ca/~soma/webfund-2014w/final/comp2406-final-2014w-sol.pdf (solutions)]
       <p>Final Exam
       </p>
       </p>
       </td>
       </td>
Line 298: Line 273:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 9, 10, 13
       <p>Sept. 5,8
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 1|Setup VMs, Run node.js, JavaScript basics]]
       <p>[[Operating Systems 2014F: Tutorial 1|Processes, Job Control]]
       </p>
       </p>
       </td>
       </td>
Line 308: Line 283:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 16, 17, 20
       <p>Sept. 12, 15
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 2|Web Form demo]]
       <p>[[Operating Systems 2014F: Tutorial 2|Scheduler, Process Priorities]]
       </p>
       </p>
       </td>
       </td>
Line 318: Line 293:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 23, 24, 27
       <p>Sept. 19, 22
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 3|Session demo]]
       <p>[[Operating Systems 2014F: Tutorial 3|Virtual memory, /proc, ELF]]
       </p>
       </p>
       </td>
       </td>
Line 328: Line 303:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 30, 31, Feb. 3
       <p>Sept. 26, 29
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 4|Secure, Persistent Sessions]]
       <p>[[Operating Systems 2014F: Tutorial 4|Threads, Concurrency]]
       </p>
       </p>
       </td>
       </td>
Line 338: Line 313:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 6, 7, 10
       <p>Oct. 3, 6
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 5|Adventure Demo]]
       <p>[[Operating Systems 2014F: Tutorial 5|Character devices, kernel modules]]
       </p>
       </p>
       </td>
       </td>
Line 348: Line 323:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 27, 28, Mar. 3
       <p>Oct. 17, 20
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 6|AJAX Adventure]]
       <p>[[Operating Systems 2014F: Tutorial 6|Review]]
       </p>
       </p>
       </td>
       </td>
Line 358: Line 333:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 6, 7, 10
       <p>Nov. 7, 10
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 7|Adventure Editor]]
       <p>[[Operating Systems 2014F: Tutorial 7|Block devices, Filesystems]]
       </p>
       </p>
       </td>
       </td>
Line 369: Line 344:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 13, 14, 17
       <p>Nov. 14, 17
      </p>
      </td>
      <td>
      <p>[[WebFund 2014W: Tutorial 8|Letterpaint Demo]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Mar. 20, 21, 24
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 9|Tiny web server]]
       <p>[[Operating Systems 2014F: Tutorial 8|User-mode Filesystems]]
       </p>
       </p>
       </td>
       </td>
Line 389: Line 354:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 27, 28, 31
       <p>Nov. 21, 24
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Tutorial 10|Web Sockets]]
       <p>[[Operating Systems 2014F: Tutorial 9|Partitions and boot loaders]]
       </p>
       </p>
       </td>
       </td>
Line 399: Line 364:
     <tr>
     <tr>
       <td>
       <td>
       <p>Apr. 3, 4, 7
       <p>Nov. 28, Dec. 1
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>No Tutorial, office hours in lab
       <p>[[Operating Systems 2014F: Networking, Network Filesystems]]
       </p>
       </p>
       </td>
       </td>
Line 421: Line 386:
     <tr>
     <tr>
       <td>
       <td>
       <p>Jan. 30, 4 PM
       <p>Sept. 10
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2014F: Assignment 1|Assignment 1]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 17
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2014F: Assignment 2|Assignment 2]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 24
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2014F: Assignment 3|Assignment 3]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 1
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2014F: Assignment 4|Assignment 4]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 8
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2014F: Assignment 5|Assignment 5]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 16 (Thurs.)
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2014F: Assignment 6|Assignment 6]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 12
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Assignment 1|Assignment 1]]
       <p>[[Operating Systems 2014F: Assignment 7|Assignment 7]]
       </p>
       </p>
       </td>
       </td>
Line 431: Line 456:
     <tr>
     <tr>
       <td>
       <td>
       <p>Feb. 12
       <p>Nov. 19
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Assignment 2|Assignment 2]]
       <p>[[Operating Systems 2014F: Assignment 8|Assignment 8]]
       </p>
       </p>
       </td>
       </td>
Line 441: Line 466:
     <tr>
     <tr>
       <td>
       <td>
       <p>Mar. 22 (extended)
       <p>Nov. 26
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Assignment 3|Assignment 3]]
       <p>[[Operating Systems 2014F: Assignment 9|Assignment 9]]
       </p>
       </p>
       </td>
       </td>
Line 451: Line 476:
     <tr>
     <tr>
       <td>
       <td>
       <p>Apr. 4
       <p>Dec. 3
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[WebFund 2014W: Assignment 4|Assignment 4]]
       <p>[[Operating Systems 2014F: Assignment 10|Assignment 10]]
       </p>
       </p>
       </td>
       </td>

Revision as of 07:03, 5 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.

Date

Topic

Sept. 5

Lecture 1

Sept. 10

Lecture 2

Sept. 12

Lecture 3

Sept. 17

Lecture 4

Sept. 19

Lecture 5

Sept. 24

Lecture 6

Sept. 26

Lecture 7

Oct. 1

Lecture 8

Oct. 3

Lecture 9

Oct. 8

Lecture 10

Oct. 10

Lecture 11

Oct. 17

Lecture 12

Oct. 22

Midterm (in class)

Nov. 5

Lecture 13

Nov. 7

Lecture 14

Nov. 12

Lecture 15

Nov. 14

Lecture 16

Nov. 19

Lecture 17

Nov. 21

Lecture 18

Nov. 26

Lecture 19

Nov. 28

Lecture 20

Dec. 3

Lecture 21

Dec. 5

Lecture 22

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

Processes, Job Control

Sept. 12, 15

Scheduler, Process Priorities

Sept. 19, 22

Virtual memory, /proc, ELF

Sept. 26, 29

Threads, Concurrency

Oct. 3, 6

Character devices, kernel modules

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 <a href="http://support.microsoft.com/kb/889768">FCIV -sha1 COMP 2406-3000 Fall 2014.ova</a>. 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.