Operating Systems (Winter 2019): Difference between revisions
(32 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
[[Operating Systems (Winter 2019) Course Outline|Here]] is the course outline for COMP 3000: Operating Systems. | [[Operating Systems (Winter 2019) Course Outline|Here]] is the course outline for COMP 3000: Operating Systems. | ||
==Lectures | ==Lectures & Tests== | ||
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. | 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. | ||
Line 54: | Line 54: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/ | <p>[[Operating Systems 2019W Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf Files] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 64: | Line 64: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture 5|Lecture 5]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/ | <p>[[Operating Systems 2019W Lecture 5|Lecture 5]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf Address Spaces] [http://pages.cs.wisc.edu/~remzi/OSTEP/dialogue-vm.pdf (Dialogue)] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 104: | Line 104: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture 9|Lecture 9]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/ | <p>[[Operating Systems 2019W Lecture 9|Lecture 9]]: [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], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf Filesystem implementation], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf FSCK and Journaling] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 114: | Line 114: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture 10|Lecture 10]] | <p>[[Operating Systems 2019W Lecture 10|Lecture 10]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 124: | Line 124: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture 11|Lecture 11]]: | <p>[[Operating Systems 2019W Lecture 11|Lecture 11]]: Midterm Review | ||
</p> | </p> | ||
</td> | </td> | ||
Line 134: | Line 134: | ||
</td> | </td> | ||
<td> | <td> | ||
<p> | <p><del>Midterm Exam</del> No class, snow | ||
</p> | </p> | ||
</td> | </td> | ||
Line 144: | Line 144: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[ | <p>Midterm Exam [https://homeostasis.scs.carleton.ca/~soma/os-2019w/comp3000-midterm-2019w-sol.pdf (solutions)] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 154: | Line 154: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 12|Lecture 12]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 164: | Line 164: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 13|Lecture 13]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 174: | Line 174: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 14|Lecture 14]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 184: | Line 184: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 15|Lecture 15]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 194: | Line 194: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 16|Lecture 16]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 204: | Line 204: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 17|Lecture 17]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 214: | Line 214: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 18|Lecture 18]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 224: | Line 224: | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W Lecture | <p>[[Operating Systems 2019W Lecture 19|Lecture 19]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 234: | Line 234: | ||
</td> | </td> | ||
<td> | <td> | ||
<p> | <p>[[Operating Systems 2019W Lecture 20|Lecture 20]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 270: | Line 270: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Apr. 10 | ||
</p> | |||
</td> | |||
<td> | |||
<p>[[Operating Systems 2019W Lecture 24|Lecture 24]] | |||
</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<p>Apr. 15 | |||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>Final Exam | <p>Final Exam (7-9 PM, AH rows 1-13) [https://homeostasis.scs.carleton.ca/~soma/os-2019w/comp3000-final-2019w-sol.pdf (solutions)] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 281: | Line 291: | ||
==Tutorials== | ==Tutorials== | ||
<table style="width: 100%;" border="1" cellpadding="4" cellspacing="0"> | <table style="width: 100%;" border="1" cellpadding="4" cellspacing="0"> | ||
Line 295: | Line 303: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Jan. | <p>Jan. 14-16 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial 1|Processes | <p>[[Operating Systems 2019W: Tutorial 1|Processes]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 305: | Line 313: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Jan. | <p>Jan. 21-23 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial 2|3000shell | <p>[[Operating Systems 2019W: Tutorial 2|3000shell]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 315: | Line 323: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Jan. | <p>Jan. 28-30 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial 3|3000test | <p>[[Operating Systems 2019W: Tutorial 3|3000test]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 325: | Line 333: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Feb. | <p>Feb. 4-6 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial 4| | <p>[[Operating Systems 2019W: Tutorial 4|Filesystems]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 335: | Line 343: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 4-6 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial 5| | <p>[[Operating Systems 2019W: Tutorial 5|Kernel modules]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 345: | Line 353: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Mar. 11-13 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial 6| | <p>[[Operating Systems 2019W: Tutorial 6|Kernel memory management]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 355: | Line 363: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Mar. | <p>Mar. 18-20 | ||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial 7| | <p>[[Operating Systems 2019W: Tutorial 7|EBPF: bcc tools]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 366: | Line 374: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Mar. | <p>Mar. 25-27 | ||
</p> | |||
</td> | |||
<td> | |||
<p>[[Operating Systems 2019W: Tutorial 8|3000pc]] | |||
</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<p>Apr. 1-3 | |||
</p> | </p> | ||
</td> | </td> | ||
<td> | <td> | ||
<p>[[Operating Systems 2019W: Tutorial | <p>[[Operating Systems 2019W: Tutorial 9|TOCTTOU]] | ||
</p> | </p> | ||
</td> | </td> | ||
Line 391: | Line 409: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Jan. | <p>Jan. 29 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 401: | Line 419: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p>Feb. | <p>Feb. 11, 4 PM | ||
</p> | </p> | ||
</td> | </td> | ||
Line 411: | Line 429: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p><del>Mar. | <p><del>Mar. 24</del> Mar. 26 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 421: | Line 439: | ||
<tr> | <tr> | ||
<td> | <td> | ||
<p> | <p>Apr. 10 | ||
</p> | </p> | ||
</td> | </td> | ||
Line 442: | Line 460: | ||
* Jian Huang's [http://web.eecs.utk.edu/~huangj/cs360/lecture_notes.html Systems Programming notes] | * Jian Huang's [http://web.eecs.utk.edu/~huangj/cs360/lecture_notes.html Systems Programming notes] | ||
==Tutorial Grading== | |||
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 the Midterm must be completed by the Midterm, and Tutorials after the Midterm must be completed by the last day of classes (if you wish to receive credit). | |||
Tutorial grades will be given out as follows: | |||
* 2: student attended the tutorial (50%) | |||
* 3: student worked on most of the tutorial material (75%) | |||
* 4: student is learning the material in a way that should lead to success on assignment and the exams (100%) | |||
It should be easy to get a 3 if you show up and attempt the material. To get a 4, however, you need to be demonstrating that you are conducting experiments and actively engaging with the material in a way that is likely to lead to success. | |||
It is possible to upgrade your grade on a tutorial at any time before the midterm (for the first four tutorials) or before the last day of classes (for the last five tutorials). | |||
==How to Succeed and How to Fail in COMP 3000== | ==How to Succeed and How to Fail in COMP 3000== |
Latest revision as of 21:12, 28 June 2019
Course Outline
Here is the course outline for COMP 3000: Operating Systems.
Lectures & Tests
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 |
Lecture 9: I/O Devices, Hard disk drives, Filesystem implementation, FSCK and Journaling |
Feb. 6 |
|
Feb. 11 |
Lecture 11: Midterm Review |
Feb. 13 |
|
Feb. 25 |
Midterm Exam (solutions) |
Feb. 27 |
|
Mar. 4 |
|
Mar. 6 |
|
Mar. 11 |
|
Mar. 13 |
|
Mar. 18 |
|
Mar. 20 |
|
Mar. 25 |
|
Mar. 27 |
|
Apr. 1 |
|
Apr. 3 |
|
Apr. 8 |
|
Apr. 10 |
|
Apr. 15 |
Final Exam (7-9 PM, AH rows 1-13) (solutions) |
Tutorials
Date |
Tutorials |
---|---|
Jan. 14-16 |
|
Jan. 21-23 |
|
Jan. 28-30 |
|
Feb. 4-6 |
|
Mar. 4-6 |
|
Mar. 11-13 |
|
Mar. 18-20 |
|
Mar. 25-27 |
|
Apr. 1-3 |
Assignments
Assignments are due before class on the due dates (2:30 PM).
Due Date |
Assignments |
---|---|
Jan. 29 |
|
Feb. 11, 4 PM |
|
|
|
Apr. 10 |
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
Tutorial Grading
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 the Midterm must be completed by the Midterm, and Tutorials after the Midterm must be completed by the last day of classes (if you wish to receive credit).
Tutorial grades will be given out as follows:
- 2: student attended the tutorial (50%)
- 3: student worked on most of the tutorial material (75%)
- 4: student is learning the material in a way that should lead to success on assignment and the exams (100%)
It should be easy to get a 3 if you show up and attempt the material. To get a 4, however, you need to be demonstrating that you are conducting experiments and actively engaging with the material in a way that is likely to lead to success.
It is possible to upgrade your grade on a tutorial at any time before the midterm (for the first four tutorials) or before the last day of classes (for the last five tutorials).
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!