Difference between revisions of "Operating Systems (Winter 2019)"

From Soma-notes
Jump to navigation Jump to search
Line 54: Line 54:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2019W Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vmm-intro.pdf Virtual Machines]
       <p>[[Operating Systems 2019W Lecture 4|Lecture 4]]
       </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/file-intro.pdf Files and Directories]
       <p>[[Operating Systems 2019W Lecture 5|Lecture 5]]
       </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/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>[[Operating Systems 2019W Lecture 9|Lecture 9]]
       </p>
       </p>
       </td>
       </td>
Line 114: Line 114:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2019W Lecture 10|Lecture 10]] (via cuLearn/BigBlueButton)
       <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]]: Test 1 review
       <p>[[Operating Systems 2019W Lecture 11|Lecture 11]]: Midterm Review
       </p>
       </p>
       </td>
       </td>
Line 134: Line 134:
       </td>
       </td>
       <td>
       <td>
       <p>Test 1 [https://homeostasis.scs.carleton.ca/~soma/os-2018f/comp3000-test1-2018f-sol.pdf (solutions)]
       <p>Midterm Exam
       </p>
       </p>
       </td>
       </td>
Line 164: Line 164:
       </td>
       </td>
       <td>
       <td>
       <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>[[Operating Systems 2019W Lecture 14|Lecture 14]]
       </p>
       </p>
       </td>
       </td>
Line 224: Line 224:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2019W Lecture 20|Lecture 20]]: Test 2 Review
       <p>[[Operating Systems 2019W Lecture 20|Lecture 20]]
       </p>
       </p>
       </td>
       </td>
Line 234: Line 234:
       </td>
       </td>
       <td>
       <td>
       <p>Test 2 [https://homeostasis.scs.carleton.ca/~soma/os-2018f/comp3000-test2-2018f-sol.pdf (solutions)]
       <p>[[Operating Systems 2019W Lecture 21|Lecture 21]]
       </p>
       </p>
       </td>
       </td>
Line 244: Line 244:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2019W Lecture 21|Lecture 21]]
       <p>[[Operating Systems 2019W Lecture 22|Lecture 22]]
       </p>
       </p>
       </td>
       </td>
Line 254: Line 254:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2019W Lecture 22|Lecture 22]]
       <p>[[Operating Systems 2019W Lecture 23|Lecture 23]]
       </p>
       </p>
       </td>
       </td>
Line 264: Line 264:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2019W Lecture 23|Lecture 23]]
       <p>[[Operating Systems 2019W Lecture 24|Lecture 24]]
       </p>
       </p>
       </td>
       </td>

Revision as of 20:18, 1 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

Lecture 1: Introduction

Jan. 9

Lecture 2: Process API

Jan. 14

Lecture 3: Processes

Jan. 16

Lecture 4

Jan. 21

Lecture 5

Jan. 23

Lecture 6

Jan. 28

Lecture 7

Jan. 30

Lecture 8

Feb. 4

Lecture 9

Feb. 6

Lecture 10

Feb. 11

Lecture 11: Midterm Review

Feb. 13

Midterm Exam

Feb. 25

Lecture 12

Feb. 27

Lecture 13

Mar. 4

Lecture 14

Mar. 6

Lecture 15

Mar. 11

Lecture 16

Mar. 13

Lecture 17

Mar. 18

Lecture 18

Mar. 20

Lecture 19

Mar. 25

Lecture 20

Mar. 27

Lecture 21

Apr. 1

Lecture 22

Apr. 3

Lecture 23

Apr. 8

Lecture 24

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

Processes and System Calls

Jan. 17, 18

3000shell.c

Jan. 24, 25

3000test.c

Feb. 1, 2

3000pc.c

Feb. 15, 16

Linux kernel modules

Feb. 29, 30

Filesystems

Mar. 5, 6

Kernel memory management

Mar. 12, 13

FUSE and kernel tracing

Assignments

Assignments are due before class on the due dates (2:30 PM).

Due Date

Assignments

Jan. 26

Assignment 1

Feb. 10

Assignment 2

Mar. 7 Mar. 9

Assignment 3

Mar. 21

Assignment 4

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:

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!