Operating Systems (Fall 2014): Difference between revisions
(35 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
==Lectures and Exams== | ==Lectures and Exams== | ||
Note that the topics below are primarily chapters from the class textbook, [http://pages.cs.wisc.edu/~remzi/OSTEP/ Operating Systems: Three Easy Pieces]. | Note that the topics below are primarily chapters from the class textbook, [http://pages.cs.wisc.edu/~remzi/OSTEP/ 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. | ||
<table style="width: 100%;" border="1" cellpadding="4" cellspacing="0"> | <table style="width: 100%;" border="1" cellpadding="4" cellspacing="0"> | ||
Line 22: | Line 22: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 1|Lecture 1]] | <p>[[Operating Systems 2014F Lecture 1|Lecture 1]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/intro.pdf Introduction] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 32: | Line 32: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 2|Lecture 2]] | <p>[[Operating Systems 2014F Lecture 2|Lecture 2]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf Processes], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-api.pdf Process API] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 42: | Line 42: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 3|Lecture 3]] | <p>[[Operating Systems 2014F Lecture 3|Lecture 3]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-mechanisms.pdf Limited Direct Execution] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 52: | Line 52: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 4|Lecture 4]] | <p>[[Operating Systems 2014F Lecture 4|Lecture 4]]: | ||
[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf CPU Scheduling], | |||
[http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf MLFQ] </p> | |||
</td> | </td> | ||
</tr> | </tr> | ||
Line 62: | Line 63: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 5|Lecture 5]] | <p>[[Operating Systems 2014F Lecture 5|Lecture 5]]: [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] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 72: | Line 73: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 6|Lecture 6]] | <p>[[Operating Systems 2014F Lecture 6|Lecture 6]]: [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 82: | Line 83: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 7|Lecture 7]] | <p>[[Operating Systems 2014F Lecture 7|Lecture 7]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf Address Translation], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf Segmentation] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 92: | Line 93: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 8|Lecture 8]] | <p>[[Operating Systems 2014F Lecture 8|Lecture 8]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-freespace.pdf Free space management], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-paging.pdf Paging] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 102: | Line 103: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 9|Lecture 9]] | <p>[[Operating Systems 2014F Lecture 9|Lecture 9]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf Concurrency and Threads], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks.pdf Locks] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 112: | Line 113: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 10|Lecture 10]] | <p>[[Operating Systems 2014F Lecture 10|Lecture 10]]: [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] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 122: | Line 123: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture 11|Lecture 11]] | <p>[[Operating Systems 2014F Lecture 11|Lecture 11]]: [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] | ||
</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<p>Oct. 15 | |||
</p> | |||
</td> | |||
<td> | |||
<p>[[Operating Systems 2014F Lecture 12|Lecture 12]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf TLBs], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-smalltables.pdf Smaller Tables] | |||
</p> | </p> | ||
</td> | </td> | ||
Line 132: | Line 143: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 13|Lecture 13]]: Midterm Review | ||
</p> | </p> | ||
</td> | </td> | ||
Line 152: | Line 163: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>Midterm solutions | <p>[[Operating Systems 2014F Midterm solutions|Midterm solutions]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 162: | Line 173: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 14|Lecture 14]]: [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 172: | Line 184: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 15|Lecture 15]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf FSCK and Journaling] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 182: | Line 194: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 16|Lecture 16]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-devices.pdf I/O Devices] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 192: | Line 204: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <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 202: | Line 214: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 18|Lecture 18]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-raid.pdf RAID], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-lfs.pdf Log-structured FS] (optional readings) | ||
</p> | </p> | ||
</td> | </td> | ||
Line 212: | Line 224: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <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 222: | Line 234: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 20|Lecture 20]]: [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] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 232: | Line 245: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <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] (optional readings) | ||
</p> | </p> | ||
</td> | </td> | ||
Line 242: | Line 255: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 22|Lecture 22]]: Assignment Solutions 1 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 252: | Line 265: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F Lecture | <p>[[Operating Systems 2014F Lecture 23|Lecture 23]]: Assignment Solutions 2 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 258: | Line 271: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Dec. 9, 1 PM | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>Final Exam | <p>[[Operating Systems 2014F Final Exam Review|Review Session]] in ME 3275 | ||
</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<p>Dec. 14, 2 PM | |||
</p> | |||
</td> | |||
<td> | |||
<p>Final Exam in FH rows 20-25 ([http://homeostasis.scs.carleton.ca/~soma/os-2014f/solutions/comp3000-final-2014F-sol.pdf solutions]) | |||
</p> | </p> | ||
</td> | </td> | ||
Line 287: | Line 310: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial 1| | <p>[[Operating Systems 2014F: Tutorial 1|UNIX Introduction]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 297: | Line 320: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial 2| | <p>[[Operating Systems 2014F: Tutorial 2|Simple Shell]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 307: | Line 330: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial 3| | <p>[[Operating Systems 2014F: Tutorial 3|Scheduler]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 317: | Line 340: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial 4| | <p>[[Operating Systems 2014F: Tutorial 4|ELF, dynamic libraries]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 327: | Line 350: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial 5| | <p>[[Operating Systems 2014F: Tutorial 5|Paging, Threads, Concurrency]] | ||
</p> | </p> | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td> | |||
<p>Oct. 10 | |||
</p> | |||
</td> | |||
<td> | |||
<p>(Optional) Continue Tutorial 5 and help with Assignment 5 | |||
</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | <td> | ||
<p>Oct. 17, 20 | <p>Oct. 17, 20 | ||
Line 337: | Line 370: | ||
</td> | </td> | ||
<td> | <td> | ||
<p> | <p>Review | ||
</p> | </p> | ||
</td> | </td> | ||
Line 347: | Line 380: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial | <p>[[Operating Systems 2014F: Tutorial 6|Block devices, Filesystems]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 358: | Line 391: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial | <p>[[Operating Systems 2014F: Tutorial 7|Devices and Modules]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 368: | Line 401: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Tutorial | <p>[[Operating Systems 2014F: Tutorial 8|User-mode Filesystems]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 378: | Line 411: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Networking, Network Filesystems]] | <p>[[Operating Systems 2014F: Tutorial 9|Networking, Network Filesystems]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 426: | Line 459: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Oct. | <p>'''Oct. 4''' (extended) | ||
</p> | </p> | ||
</td> | </td> | ||
Line 436: | Line 469: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Oct. | <p>Oct. 16 (Thurs.) | ||
</p> | </p> | ||
</td> | </td> | ||
Line 446: | Line 479: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Nov. 12 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 456: | Line 489: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Nov. | <p>Nov. 20 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 466: | Line 499: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Nov. | <p>Nov. 27 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 476: | Line 509: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Dec. 4 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2014F: Assignment 9|Assignment 9]] | <p>[[Operating Systems 2014F: Assignment 9|Assignment 9]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 526: | Line 549: | ||
e5613881b28be41f49b82730282d40093388ee71 [http://homeostasis.scs.carleton.ca/~soma/VMs/COMP%202406-3000%20Fall%202014.ova COMP 2406-3000 Fall 2014.ova] | e5613881b28be41f49b82730282d40093388ee71 [http://homeostasis.scs.carleton.ca/~soma/VMs/COMP%202406-3000%20Fall%202014.ova COMP 2406-3000 Fall 2014.ova] | ||
On Windows you can compute this hash for your downloaded file using the command | On Windows you can compute this hash for your downloaded file using the command [http://support.microsoft.com/kb/889768 <tt>FCIV -sha1 COMP 2406-3000 Fall 2014.ova</tt>]. If the hash is different from above, your download has been corrupted. | ||
If the application is not VirtualBox, you'll need to: | If the application is not VirtualBox, you'll need to: |
Latest revision as of 17:09, 16 December 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 |
|
Sept. 10 |
|
Sept. 12 |
|
Sept. 17 |
|
Sept. 19 |
|
Sept. 24 |
|
Sept. 26 |
|
Oct. 1 |
|
Oct. 3 |
|
Oct. 8 |
|
Oct. 10 |
Lecture 11: Condition Variables, Semaphores, Concurrency Problems |
Oct. 15 |
|
Oct. 17 |
Lecture 13: Midterm Review |
Oct. 22 |
Midterm (in class) |
Oct. 24 |
|
Nov. 5 |
|
Nov. 7 |
|
Nov. 12 |
|
Nov. 14 |
|
Nov. 19 |
Lecture 18: RAID, Log-structured FS (optional readings) |
Nov. 21 |
|
Nov. 26 |
Lecture 20: Distributed Systems, Swapping: Mechanisms, Swapping: Policies |
Nov. 28 |
Lecture 21: NFS, AFS (optional readings) |
Dec. 3 |
Lecture 22: Assignment Solutions 1 |
Dec. 5 |
Lecture 23: Assignment Solutions 2 |
Dec. 9, 1 PM |
Review Session in ME 3275 |
Dec. 14, 2 PM |
Final Exam in FH rows 20-25 (solutions) |
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 |
|
Sept. 12, 15 |
|
Sept. 19, 22 |
|
Sept. 26, 29 |
|
Oct. 3, 6 |
|
Oct. 10 |
(Optional) Continue Tutorial 5 and help with Assignment 5 |
Oct. 17, 20 |
Review |
Nov. 7, 10 |
|
Nov. 14, 17 |
|
Nov. 21, 24 |
|
Nov. 28, Dec. 1 |
Assignments
Due Date |
Assignments |
---|---|
Sept. 10 |
|
Sept. 17 |
|
Sept. 24 |
|
Oct. 4 (extended) |
|
Oct. 16 (Thurs.) |
|
Nov. 12 |
|
Nov. 20 |
|
Nov. 27 |
|
Dec. 4 |
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.