Operating Systems (Fall 2015): Difference between revisions
Line 53: | Line 53: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/ | <p>[[Operating Systems 2015F Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf Address Spaces], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-api.pdf Memory API] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 63: | Line 63: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 5|Lecture 5]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/ | <p>[[Operating Systems 2015F Lecture 5|Lecture 5]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-disks.pdf Hard Disk Drives], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf File and Directories] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 73: | Line 73: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 6|Lecture 6]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/ | <p>[[Operating Systems 2015F Lecture 6|Lecture 6]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-devices.pdf I/O Devices], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf FSCK and Journaling] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 83: | Line 83: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 7|Lecture 7]]: | <p>[[Operating Systems 2015F Lecture 7|Lecture 7]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 112: | Line 112: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 10|Lecture 10]]: | <p>[[Operating Systems 2015F Lecture 10|Lecture 10]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 122: | Line 122: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 11|Lecture 11]]: | <p>[[Operating Systems 2015F Lecture 11|Lecture 11]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 132: | Line 132: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 12|Lecture 12]]: | <p>[[Operating Systems 2015F Lecture 12|Lecture 12]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 142: | Line 142: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 13|Lecture 13]]: | <p>[[Operating Systems 2015F Lecture 13|Lecture 13]]: TBA</p> | ||
</td> | </td> | ||
</tr> | </tr> | ||
Line 160: | Line 160: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 15|Lecture 15]]: | <p>[[Operating Systems 2015F Lecture 15|Lecture 15]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 171: | Line 170: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 16|Lecture 16]]: | <p>[[Operating Systems 2015F Lecture 16|Lecture 16]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 181: | Line 180: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 17|Lecture 17]]: | <p>[[Operating Systems 2015F Lecture 17|Lecture 17]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 191: | Line 190: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 18|Lecture 18]]: | <p>[[Operating Systems 2015F Lecture 18|Lecture 18]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 221: | Line 220: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 20|Lecture 20]]: | <p>[[Operating Systems 2015F Lecture 20|Lecture 20]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 231: | Line 230: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2015F Lecture 21|Lecture 21]]: | <p>[[Operating Systems 2015F Lecture 21|Lecture 21]]: TBA | ||
</p> | </p> | ||
</td> | </td> | ||
Line 257: | Line 256: | ||
</table> | </table> | ||
Other chapters: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-lottery.pdf Lottery Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-multi.pdf Multi-CPU scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf Address Translation], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf Segmentation], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-freespace.pdf Free space management], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-paging.pdf Paging], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf Concurrency and Threads], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks.pdf Locks], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks-usage.pdf Concurrent Data Structures], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-api.pdf Thread API], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-cv.pdf Condition Variables], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf Semaphores], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-bugs.pdf Concurrency Problems], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf TLBs], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-smalltables.pdf Smaller Tables], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf File System Implementation], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-ffs.pdf FFS], [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-intro.pdf Distributed Systems], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys.pdf Swapping: Mechanisms], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys-policy.pdf Swapping: Policies], [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-nfs.pdf NFS], [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf AFS] | |||
==Tutorials== | ==Tutorials== |
Revision as of 21:29, 23 September 2015
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.
Note assigned readings are subject to change, please check this page each week.
Date |
Topic |
---|---|
Sept. 2 |
|
Sept. 9 |
Lecture 2: (Video only) Processes, Process API |
Sept. 16 |
|
Sept. 18 |
|
Sept. 23 |
|
Sept. 25 |
|
Sept. 30 |
Lecture 7: TBA |
Oct. 2 |
Lecture 8: TBA |
Oct. 7 |
Lecture 9 (first half), Test 1 (in class) |
Oct. 9 |
Lecture 10: TBA |
Oct. 14 |
Lecture 11: TBA |
Oct. 16 |
Lecture 12: TBA |
Oct. 21 |
Lecture 13: TBA |
Oct. 23 |
Lecture 14: TBA |
Nov. 4 |
Lecture 15: TBA |
Nov. 6 |
Lecture 16: TBA |
Nov. 11 |
Lecture 17: TBA |
Nov. 13 |
Lecture 18: TBA |
Nov. 18 |
Lecture 19: Test 2 Review |
Nov. 20 |
Test 2 (in class) |
Nov. 25 |
Lecture 20: TBA |
Nov. 27 |
Lecture 21: TBA |
Dec. 2 |
Lecture 22: TBA |
Dec. 4 |
Lecture 23: TBA |
Other chapters: Lottery Scheduling, Multi-CPU scheduling, Address Translation, Segmentation, Free space management, Paging, Concurrency and Threads, Locks, Concurrent Data Structures, Thread API, Condition Variables, Semaphores, Concurrency Problems, TLBs, Smaller Tables, File System Implementation, FFS, Distributed Systems, Swapping: Mechanisms, Swapping: Policies, NFS, AFS
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. 18,22 |
|
Sept. 25, 29 |
|
Oct. 2, 6 |
|
Oct. 9, 13 |
|
Oct. 16, 20 |
|
Oct. 23, Nov. 3 |
|
Nov. 6, 10 |
|
Nov. 13, 17 |
|
Nov. 20, 24 |
|
Nov. 27, Dec. 1 |
|
Dec. 4, 8 |
Assignments
Due Date |
Assignments |
---|---|
Sept. 23 |
|
Sept. 30 |
|
Oct. 7 |
|
Oct. 14 |
|
Oct. 21 |
|
Nov. 4 |
|
Nov. 11 |
|
Nov. 18 |
|
Nov. 25 |
Course Software
In this course we will primarily working with Ubuntu, a widely-used family of Linux distributions. We will be using its Lubuntu variant in Virtualbox earlier in the term; later on we will transition to using Ubuntu Server on the SCS's Openstack installation (accessible only from the Carleton network).
You may use other Linux distributions to complete the assigned work and do your project; there will be differences, however, in some aspects (such as installing software), particularly if you use a distribution not based on Ubuntu or Debian.
Using Virtualbox 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 Virtualbox 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:
a8a70ec2e1b49699f4de29c872ecec7cee21888f COMP 2406 & 3000, Fall 2015.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.