# Fall 2011 Course Outline

University of Waterloo : Faculty of Mathematics : School of Computer Science

## Lectures

Comp Sec Camp Loc Time Days/Date Bldg Room Instructor
LEC 001 UW U 11:30-12:50 TTh MC 4060 Ashraf Aboulnaga
LEC 002 UW U 10:00-11:20 TTh MC 4060 Ashraf Aboulnaga
LEC 003 UW U 08:30-09:50 TTh MC 4040 Borzoo Bonakdarpour

## Online Discussion Forum

• We will be using a system for class-related discussions called Piazza.
• The Piazza link for this course is: http://piazza.com/class#fall2011/cs350
• You will need to get addded as a student to this course in Piazza before being able to access the above link. Students who are enrolled in the course when classes start will receive an e-mail inviting them to Piazza. If you do not receive this e-mail, or if you enroll after classes start, you can add yourself as a student to the course using your Waterloo e-mail.

## Course Personnel and Office Hours

• Office hours will be held in the MC 2061 lab.
• Watch Piazza for changes to office hours.
 Name Email Office Hours Ashraf Aboulnaga (Instructor) ashraf@cs.uwaterloo.ca (Include CS350 in subject line) Tue 2:00-3:00 Borzoo Bonakdarpour (Instructor) borzoo@cs.uwaterloo.ca (Include CS350 in subject line) Thu 3:00-4:00 James Summers (Instructional Apprentice) cs350@student.cs.uwaterloo.ca Wed 3:00-4:00

First, component marks will be determined as follows:

ComponentDescription

Then, we will apply the following algorithm to determine your final course grade:

```Normal  = (0.02*A0 + 0.08*A1 + 0.125*A2 + 0.125*A3) + 0.20*M + 0.45*F
Exam    = (0.20*M + 0.45*F ) / 0.65

if ( Exam < 50% ) {
Course Grade = min (Normal, Exam)
} else {
}
```
Note in particular that you must pass the exams in order to pass the course.

## Instructional Support Coordinator

 Name Office Location Contact Fenglian Qiu DC 3109 f2qiu@uwaterloo.ca, x32753

## Course Description

An introduction to the fundamentals of operating system function, design, and implementation. Topics include concurrency, synchronization, processes, threads, scheduling, memory management, file systems, device management, and security.

## Course Objectives:

Provides an introduction to operating systems: what they do, how they are used, and how they are implemented.

## Course Overview:

• Operating System Introduction (2 hours)
The roles of an operating system. Historical overview of operating system development. Operating system architectures.
• Multi-Programming (5 hours)
Processes and threads, system calls, context switching. Managing processor time. Types of scheduling, scheduling algorithm.
• Concurrency (6 hours)
Principles of concurrency. Mutual exclusion and semaphores. Deadlock detection and prevention.
• Memory Management (8 hours)
• Device Management (3 hours)
Physical structure and properties of devices, device control and interaction, blocking, buffering, disk scheduling, DMA.
• File Systems (5 hours)
File naming, types and logical organization. Space allocation and management. File system interfaces. Implementation strategies. Case studies.
• Interprocess Communication (5 hours)
Terminology and issues, message passing functionality, pipes, sockets, signals, shared memory, and other communication mechanisms.

## Required text:

Operating System Concepts, 8th Edition (Updated). Silberschatz, Galvin, and Gagne. John Wiley and Sons, 2012 (6th, 7th, and 8th editions are also acceptable).

## Required Course Notes:

You are required to either buy or print the course notes and to bring them with you to class. Class attendance is required.

## Assignments

All the assignments should be submitted electronically. Submission instructions are found in the assignment specifications.

Marked assignments can be picked up during the IA's office hours, during the first two weeks after they have been marked. After two weeks they can be picked up from the instructor's office until the end of the term. Unclaimed assignments will be shredded at the end of the term.

Assignment marking reappraisal requests:
If there is a problem with the marking your assignment, you may request that your assignment be reappraised. To do this:

• Print and fill out a reappraisal form, on which you should describe (briefly) what the problem is.
• Drop your form off with the course instructor after lecture or during office hours.
For each assignment there will be a deadline for reappraisal requests.

## Slip Days Policies

Each assignment has a due date and a due time, which will be posted on the course web page. For some assignments we will use a system of "slip days" to give you some flexibility with the assignment deadlines. Each person starts the term with five slip days, which can be used to push back assignment deadlines. Slip days work as follows:

• Pushing an assignment deadline back by one day (24 hours) costs each person in a group one of their slip days. If one or more group members don't have enough slip days left, then the group can't slip.
• An assignment deadline can be pushed back at most 3 days.
• Partial slip days are not allowed, e.g., it is not possible to use part of a slip day to push a deadline back by 6 hours.
• Slip days are not transferable from one student to another.
Assignments that are submitted late (with no slip days to cover them) will not be accepted and will receive a mark of 0%.

## Group Policies

The following policies pertain to CS350 groups:
• After a group is formed, only one break-up is allowed during the term.
• After a break-up, new groups cannot be formed.
• After a break-up, each individual gets a copy of the original group's project work. This includes any source code and documentation.
• The one break-up that is allowed can only occur after the deadline of the current assignment
( within 1 week of the actual deadline of the assignment, without including any slip days ).
• All requests for break-ups should be in written form and should occur on the request for reappraisal form.