Operating Systems (Fall 2022)

From Soma-notes

Course Outline

Here is the course outline for COMP 3000: Operating Systems.

Lectures & Tests

Lectures will be conducted via zoom; see Brightspace for details. Lecture recordings are available through the lecture notes pages.

Date

Topic

Sep. 8

Lecture 1

Sep. 13

Lecture 2

Sep. 15

Lecture 3

Sep. 20

Lecture 4

Sep. 22

Lecture 5

Sep. 27

Lecture 6

Sep. 29

Lecture 7
(Last day to withdraw with fee adjustment: Sep. 30)

Oct. 4

Lecture 8

Oct. 6

Lecture 9

Oct. 11

Lecture 10: Midterm Review

Oct. 13

Midterm (in class, online) (solutions)

Oct. 18

Lecture 11

Oct. 20

Lecture 12

Nov. 1

Lecture 13

Nov. 3

Lecture 14

Nov. 8

Lecture 15

Nov. 10

Lecture 16

Nov. 15

Lecture 17
(Last day to withdraw)

Nov. 17

Lecture 18

Nov. 22

Lecture 19

Nov. 24

No class (US Thanksgiving)

Nov. 29

Lecture 20

Dec. 1

Lecture 21

Dec. 6

Lecture 22

Dec. 8

Lecture 23

TBA

Final Exam

Tutorials

A1 (Friday @4 in UC 180 & online): Evelyn, Huzaifa, Ali, Nilofar
A2 (Monday @4 in UC 182 & online): Ayusha, Nareen, Nilofar, Marzi
A3 (Monday @2:30 in NI 4030 & online): Marzi, Nareen, Ali, Huzaifa

Date Available

Tutorials

Sep. 8

Tutorial 1

Sep. 15

Tutorial 2

Sep. 22

Tutorial 3

Sep. 29

Tutorial 4

Oct. 14

Tutorial 5

Oct. 21

Tutorial 6

Nov. 10

Tutorial 7

Nov. 17

Tutorial 8

Nov. 29

Tutorial 9

Assignments

Due Date

Assignments

Sep. 28

Assignment 1

Oct. 11, 11:30 AM

Assignment 2

Nov. 21

Assignment 3

Dec. 7

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.

Openstack

You should create a VM on the SCS openstack cluster at openstack.scs.carleton.ca and do your work there. Documentation on the cluster is here.

Make sure you have added the ssh-ping security group to your network interface and that you have associated a floating IP address with your instance. The 192.168.X.X IP addresses are private (and cannot be accessed outside of the openstack cluster), the 134.117.X.X floating IP addresses can be accessed from the Carleton network and will allow you to access the wider Internet.

Note that you must be on the Carleton network to use openstack. When you are off campus, connect using the Carleton VPN.

Create a VM using the latest COMP 3000 snapshot image. Please create a machine with two VCPUs. The user is student, default password is student. Please change your password after you first connect to your machine (using the passwd command).

Make sure you connect via ssh. DO NOT use the openstack web console, it is glitchy! Windows and MacOS have ssh clients available from their command lines, just type "ssh student@<IP address>" where the IP address is the floating IP address you assigned to your VM. PuTTY also works, and you can use x2go.

The image provides an "scs-backup" command that will backup the student user's directory to the SCS linux machines. So if your SCS username is janedoe, you can type

 scs-backup janedoe

and it will create a copy of everything in the student account in a directory called "COMP3000VM-backup" in your home directory. You can ssh/sftp to access.scs.carleton.ca in order to access this copy of your VM's files. You should do backups at the end of every session and before you do anything dangerous.

The scs-backup bash function is listed below. Feel free to adapt to your own needs; however, realize that rsync is a very powerful command that can delete arbitrary files at the specified destination (and in fact that is what the listed command does to the backup directory). If you are changing any arguments, be sure to test with the -n option so you can see what will happen!

Note that you cannot take snapshots of your VM, so please don't try (it will keep trying and never succeed).

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!