Operating Systems (Winter 2019): Difference between revisions
Created page with "==Course Outline== Here is the course outline for COMP 3000: Operating Systems. ==Lectures, Tests, & Project== Note that th..." |
No edit summary |
||
Line 20: | Line 20: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 7 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 1|Lecture 1]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/intro.pdf Introduction] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 30: | Line 30: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 9 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 2|Lecture 2]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-api.pdf Process API] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 40: | Line 40: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 14 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 3|Lecture 3]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf Processes] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 50: | Line 50: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 16 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vmm-intro.pdf Virtual Machines] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 60: | Line 60: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 21 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 5|Lecture 5]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf Files and Directories] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 70: | Line 70: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 23 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 6|Lecture 6]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 80: | Line 80: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 28 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 7|Lecture 7]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 90: | Line 90: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 30 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 8|Lecture 8]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 100: | Line 100: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 4 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 9|Lecture 9]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf Concurrency & Threads], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks.pdf Locks], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf Semaphores] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 110: | Line 110: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 6 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 10|Lecture 10]] (via cuLearn/BigBlueButton) | ||
</p> | </p> | ||
</td> | </td> | ||
Line 120: | Line 120: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 11 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 11|Lecture 11]]: Test 1 review | ||
</p> | </p> | ||
</td> | </td> | ||
Line 130: | Line 130: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 13 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 140: | Line 140: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 25 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 12|Lecture 12]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 150: | Line 150: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 27 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 13|Lecture 13]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 160: | Line 160: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 4 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 14|Lecture 14]]: [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/vm-tlbs.pdf TLBs] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 170: | Line 170: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 6 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 15|Lecture 15]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 180: | Line 180: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 11 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 16|Lecture 16]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 190: | Line 190: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 13 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 17|Lecture 17]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 200: | Line 200: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 18 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 18|Lecture 18]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 210: | Line 210: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 20 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 19|Lecture 19]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 220: | Line 220: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 25 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 20|Lecture 20]]: Test 2 Review | ||
</p> | </p> | ||
</td> | </td> | ||
Line 230: | Line 230: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 27 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 240: | Line 240: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Apr. 1 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 21|Lecture 21]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 250: | Line 250: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Apr. 3 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W Lecture 22|Lecture 22]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 260: | Line 260: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Apr. 8 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p> | <p>[[Operating Systems 2019W Lecture 23|Lecture 23]] | ||
</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<p>TBD | |||
</p> | |||
</td> | |||
<td> | |||
<p>Final Exam | |||
</p> | </p> | ||
</td> | </td> | ||
Line 285: | Line 295: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 10,11 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 1|Processes and System Calls]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 295: | Line 305: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 17, 18 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 2|3000shell.c]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 305: | Line 315: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 24, 25 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 3|3000test.c]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 315: | Line 325: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 1, 2 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 4|3000pc.c]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 325: | Line 335: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 15, 16 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 5|Linux kernel modules]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 335: | Line 345: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 29, 30 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 6|Filesystems]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 345: | Line 355: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 5, 6 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 7|Kernel memory management]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 356: | Line 366: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 12, 13 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems | <p>[[Operating Systems 2019W: Tutorial 8|FUSE and kernel tracing]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 381: | Line 391: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Jan. 26 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 391: | Line 401: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Feb. 10 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 401: | Line 411: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p><del> | <p><del>Mar. 7 </del>Mar. 9 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 411: | Line 421: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 21 | ||
</p> | </p> | ||
</td> | </td> |
Revision as of 01:14, 2 January 2019
Course Outline
Here is the course outline for COMP 3000: Operating Systems.
Lectures, Tests, & Project
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.
Assigned readings are subject to change, please check this page each week.
Date |
Topic |
---|---|
Jan. 7 |
|
Jan. 9 |
|
Jan. 14 |
|
Jan. 16 |
|
Jan. 21 |
|
Jan. 23 |
|
Jan. 28 |
|
Jan. 30 |
|
Feb. 4 |
|
Feb. 6 |
Lecture 10 (via cuLearn/BigBlueButton) |
Feb. 11 |
Lecture 11: Test 1 review |
Feb. 13 |
Test 1 (solutions) |
Feb. 25 |
|
Feb. 27 |
|
Mar. 4 |
Lecture 14: Address Translation, Segmentation, Free Space Management, Paging, TLBs |
Mar. 6 |
|
Mar. 11 |
|
Mar. 13 |
|
Mar. 18 |
|
Mar. 20 |
|
Mar. 25 |
Lecture 20: Test 2 Review |
Mar. 27 |
Test 2 (solutions) |
Apr. 1 |
|
Apr. 3 |
|
Apr. 8 |
|
TBD |
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. Tutorials from before Test 1 should be completed by Test 1, and similarly tutorials for Test 2 should be completed before Test 2 (if you wish to receive credit).
Date |
Tutorials |
---|---|
Jan. 10,11 |
|
Jan. 17, 18 |
|
Jan. 24, 25 |
|
Feb. 1, 2 |
|
Feb. 15, 16 |
|
Feb. 29, 30 |
|
Mar. 5, 6 |
|
Mar. 12, 13 |
Assignments
Assignments are due before class on the due dates (2:30 PM).
Due Date |
Assignments |
---|---|
Jan. 26 |
|
Feb. 10 |
|
|
|
Mar. 21 |
Course Software
In this course we will primarily working with Ubuntu, a widely-used family of Linux distributions. We will be 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; there will be differences, however, in some aspects (such as installing software), particularly if you use a distribution not based on Ubuntu or Debian.
Online Resources
Other than the textbook, there are many, many other good online sources of information about operating systems. Here are a few that may be of interest:
- Jian Huang's Systems Programming notes
How to Succeed and How to Fail in COMP 3000
While the use of outside resources is acceptable, even encouraged, use them to achieve understanding rather than answers.
It is very possible to get full tutorial marks by doing little more than showing up, and assignments can be quickly finished (and you can even get most of the marks) by working with partners, looking at old assignments, and doing lots of online searches. If this is all you do, however, you will fail the tests and you won't get a very good grade in the course.
Successful students use the tutorials and assignments as learning opportunities. They look at the code and ask "what does that do?" - not just in a general sense, but by looking at every line and asking why it is there. They modify the code in order to better understand it, and when they are confused they ask questions until they get the answers they need. This sort of learning takes time, generally much more than the time allocated for lectures and tutorials. A tutorial is only "finished" when you understand essentially all the material in it - not when 80 minutes are up.
If you find you are confused about the concepts, make sure to read and review the textbook and the Linux man pages. They provide much deeper answers than most online resources. The tutorials are designed to help you ask the right questions - the textbook and manual pages (and the lectures) help provide the answers.
Take the tutorials seriously. Understand the answers for all the questions on the assignments. Use the textbook and manual pages. Ask questions.
Good luck!