SE350


Operating Systems

Details


Time & location

Lectures: M, W 11:30 - 12:50, STC 0060

Tutorials: W 14:30 - 15:20, STC 0020

Teaching team
Prof. Seyed Majid Zahedi

Instructor

Prof. Seyed Majid Zahedi

Book appointments here

Michael Cooper-Stachowsky

Lab instructor

Michael Cooper-Stachowsky

Andy Li

GTA

Andy Li

Zhiheng Zhou

GTA

Zhiheng Zhou

Description
This course is an introduction to the fundamentals of operating systems design and implementation. Topics include processes, threads, concurrency, synchronization, scheduling, memory management, file systems, device management, and security.
Prereq
CS240, (CS246 or CS247), ECE222; Software Engineering students only
Antireq
CS350, ECE254, ECE354, MTE241
Readings

Optional references

Evaluation
Coursework will include the following components.
  • Midterm (20%)
  • Lab Projects (40%)
  • Final (40%)

Announcements


Jan 5
Please sign up for the course on Piazza.

Schedule (tentative)


Week Dates Topics Lectures Events

1

Jan 5 - Jan 9

introduction

computer architecture

L01: slides, notes

L02: slides, notes

2

Jan 12 - Jan 16

file systems

processes

UNIX processes

L03: slides, notes

L04: slides, notes

L05: slides, notes

3

Jan 19 - Jan 23

inter-process communication

L06: slides, notes

4

Jan 26 - Jan 30

sockets

network communication

L07: slides, notes

L08: slides, notes

5

Feb 2 - Feb 6

pipes

threads

concurrency

L09: slides, notes

L10: slides, notes

L11: slides, notes

Feb 6: Lab1 deadline

6

Feb 9 - Feb 13

synchronization

semaphores

synch. patterns

monitors

L12: slides, notes

L13: slides, notes

L14: slides, notes

L15: slides, notes

7

Feb 16 - Feb 20

READING WEEK

8

Feb 23 - Feb 27

producer-consumer

readers-writers

L16: slides, notes

L17: slides, notes

Feb 27: Midterm (18:30-20:00, EXP 1689)

9

Mar 2 - Mar 6

deadlock

deadlock avoidance

deadlock detection and recovery

memory

L18: slides, notes

L19: slides, notes

L20: slides, notes

L21: slides, notes

Mar 6: Lab 2 deadline

10

Mar 9 - Mar 13

dynamic memory allocation

memory segmentation

caching

L22: notes, video

L23: slides, notes

L24: slides, notes

11

Mar 16 - Mar 20

virtual memory

virtual memory II

uniprocessor scheduling

L25: slides, notes

L26: slides, notes

L27: slides, notes

12

Mar 23 - Mar 27

scheduling algorithms

scheduling algorithms II

real-time scheduling

L28: slides, notes

L29: slides, notes

L30: slides, notes

13

Mar 30 - Apr 3

scheduling in Linux

I/O devices

disk scheduling

file system

L31: slides, notes

L32: slides, notes

L33: slides, notes

L34: slides, notes

Apr 3: Lab 3 deadline

14

Apr 6

file allocation methods

consistency and journaling

virtualization and containers

final exam review (time-permitting)

L35: slides, notes

L36: slides, notes

L37: slides, notes

Resources


Slides

Slides are uploaded on github.

Sample exams

Waterloo SE350 W22

Waterloo SE350 W20

Waterloo SE350 W19

Berkeley CS162

Policies


Lateness

Late lab submissions will not be accepted.

Illness

Accommodations such as due date extensions and re-weighting of deliverables will be considered in accordance with existing department-level, faculty-level, and university-level policies. Missed deliverables due to prolonged illness will normally be replaced with the final exam grade.

Students with chronic health problems that affect their ability to complete coursework should register with AccessAbility Services.

Collaboration and group work

Assignments will be completed individually, and labs in groups as specified in the lab manual. Lightweight discussions between individuals and lab groups are permitted, but solutions should be developed independently.

Copying material from other groups, from other courses, or from online sources is forbidden except for materials authorized explicitly by the teaching team.

Code should never be shared electronically with classmates except among members of the same lab group, or with the instructor's permission.

Unauthorized collaboration and copying of material constitute academic offences under Policy 71.

Your code may be checked for plagiarism using MOSS or Turnitin.

Piazza

Please be respectful and polite when posting in Piazza. Feel free to ask for clarification regarding the requirements for a coursework deliverable, or ask general technical questions, but do not post information (e.g., code fragments) that gives away a substantial part of the solution.

Re-marking

If you believe that your grade on an assignment is incorrect, you may ask that it be re-marked. To request that a question be re-marked, you will need to submit your request in writing via e-mail to the instructor. Requests for re-marking may be submitted any time before the final exam. When you submit your request, it should include the following: (1) Your name and student ID number; (2) a clear indication of which question or part of the deliverable is to be re-marked; and (3) an explanation of why you believe the grade assigned was incorrect. Be forewarned, when a deliverable is being re-marked, your grade could go up, it could stay the same, or it could go down. You will be notified in writing of the outcome.

Academic integrity

In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. Check the Office of Academic Integrity for more information.

Grievance

A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt, please be certain to contact the department's administrative assistant who will provide further assistance.

Discipline

A student is expected to know what constitutes academic integrity to avoid committing an academic offense, and to take responsibility for his/her actions. Check the Office of Academic Integrity for more information.

A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about "rules" for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean.

For information on categories of offenses and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.

Appeals

A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.

Automatic system to detect plagiarism

Moss (Measure Of Software Similarity) or Turnitin may be used to screen each project in this course. Students' submissions are stored on a U.S. server, therefore students will be given an alternative if they are concerned about their privacy and/or security. It is the responsibility of the student to notify the instructor in the first week of the term if they wish to submit an alternative assignment. Students will be given due notice about arrangements and alternatives for the use of Moss or Turnitin in this course.