Queen's University, Kingston, ON, Canada

CISC 324: Operating Systems

Winter 2021

Course Syllabus

The course presents the basic concepts of multitasking systems and the foundations of operating systems. It covers different topics such as process and thread management, interrupts handling, process synchronization, memory management, and a little bit of operating system security. Also, the course provides practical mapping (through labs) of what is presented in the course lectures. The labs are completely focused on process synchronization.

You are also invited to read the common syllabus elements related to accommodations, considerations, final exam dates, and academic integrity.

Instructor

Dr. Karim Lounis (Postdorcoral fellow),
Email address: karim.lounis@queensu.ca,
Personal website:https://lounis.weebly.com/,
Lab: Queen's Reliable Software Technology,
Office: Goodwin 631,
Department: School of Computing.

Teaching Assistants

The teaching assistants answer questions by email and/or during dedicated live sessions (upon request):

Guoliang Zhao (Ph.D. student),
g.zhao@queensu.ca

Michael Wrana (Master's student),
16mmw@queensu.ca

Anshul Pattoo (Undergraduate student),
anshul.pattoo@queensu.ca

Course Textbook

Operating System Concepts, Ninth Edition (or newer), by Silberschatz, Galvin and Gagne, published by John Wiley. The eighth edition of this textbook is acceptable as well. The publisher provides various resources on the textbook website: click on the image of the textbook to find C/Java source code, a study guide, solutions to practice exercises, review questions, etc.

Course Workload

The course consists of 11 weeks of lectures (online sides + live sessions), 6 assignments (Q&As), 6 labs (Coding), and 2 term exams. The course grade distribution is presented in the last section of this page (see bottom).

Course Schedule

Weeks Dates Topics Slides Textbook Sections
1 Jan 11, 13, 14.

Course started on Jan 11th

Course info: Introduction, motivation, overview, and review.
- Operating system overview: features and provided services.
- Review computer architecture (Von Neumann model).
- Single-processor system Vs multiprocessor system.
- Review of instruction execution cycle.
- Process management: processes, process states, and PCB (Process Control Block).
- Interrupt system: software and hardware interrupts.
- Context switching, interrupts with and without context switching.
- Concurrent processes: fake concurrency and real concurrency.
- Notion of threads: threads, threads vs processes, and user-level and kernel-level threads.
- Direct Memory Access (DMA), device controllers, and drivers.
Lecture_01

Lecture_02

Lecture_03

Lecture_04

Lecture_05

Lecture_06
1, 2, and 3.1-3.3.
2 Jan 18, 20, 21.
3 Jan 25, 27, 28.

Assignment 1, Lab 1, and Lab 2 [due Friday, Jan 22nd at 9:00PM].

Process synchronization.
- Data race problem: Shared data corruption in concurrent programming.
- The critical section problem.
- Synchronization mechanisms: mutex and semaphores.
- Busy waiting and queue-based implementations for semaphores.
- Semaphores for process ordering and mutual exclusion.
- Binary and counting semaphores.
- Peterson's Algorithm for critical section problem.
- Classical synchronization problems: Readers/Writers, Dinning philosophers, and Producer/Consumer.
- Brief introduction on deadlock handling techniques.
- Resource allocation graphs.
Lecture_07

Lecture_08

Lecture_09

Lecture_10

Lecture_11

Lecture_12
5 and 7
4 Feb 01, 03, 04.
5 Feb 08, 10, 11.

Assignment 2 [due Friday, Feb 5th at 9:00PM].

- Deadlock prevention using static rules.
- Deadlock avoidance using Banker's algorithm.
- Deadlock detection and recovery.

Assignment 3 [due Friday, Feb 12th at 9:00PM].


Lecture_13

Lecture_14

Lecture_15

7, 8 and 9.
---  Feb 15, 17, 18.
Family Day + Reading Week, No Class
   
Feb 22, 24, 25.

Term Exam 1 (Feb 22nd) [90 minutes within a 12-hour timespan]

Memory management.
- Memory pyramid, memory types, and backup memories.
- Review program processing cycle (Compile, Linking, Loading and executing).
- Dynamic linking and dynamic loading.
- Logical and physical addresses.
- Address binding: Compile time, load time, and runtime address binding.

Lab 3 [due Friday, Feb 26th at 9:00PM].

Lecture_16

Lecture_17

Lecture_18

 
7 Mar 01, 03, 04 - Memory allocation strategies (contiguous and noncontiguous).
- Single-level paging memory management scheme.
- Virtual address translation in paging.
- Translation Look-aside Buffer: TLB-hit and TLB-miss.
- Multilevel paging memory management system.

Lab 4 [due Friday, Mar 5th at 9:00PM].

- Segmentation memory management scheme.
- Segmentation with paging.
- Page fault and segmentation fault

Assignment 4 [due Friday, Mar 12th at 9:00PM].

- Virtual memory.
- Page fault handling.
- Page replacement algorithms
- Thrashing and prevention techniques (working set and PFF)

Process synchronization (Con't)
- Monitors for process synchronization
- CPU scheduling algorithms: FCFS, RR, PRIORITY, SJF, SRTF, MLQ, and MLFQ.

Assignment 5 [due Friday, Mar 19th at 9:00PM].

Lecture_19

Lecture_20

Lecture_21

Lecture_22

Lecture_23

Lecture_24

Lecture_25

Lecture_26

Lecture_27

8 and 9
8 Mar 8, 10, 11
9 Mar 15, 17, 18
10 Mar 22, 24, 25. Interprocess Communication
- Message passing for process communication and synchronization, Sockets, and RPCs.

Hard Disk Drive scheduling
- Disk space allocation.
- HDD scheduling algorithms.

Security in Operating systems
- Security threats and aspects.
- Security services in OS: authentication, confidentiality, integrity, availability, and non-repudiation.
- OS security threats
- OS security tools: Anti-virus, anti-spyware, IDS, IPS, firewall, and honypots.
- Some OS attacks: Buffer overflow on the stack, overflow on the heap, and integer overflow.

Lab 5 and Assignment 6 [due Friday, Mar 26th at 9:00PM].

Lecture_28

Lecture_29

Lecture_30
3, 6, 14, and 15
11 Mar 29, 31, Apr 1.

Term Exam 2 (Apr 1st) [90 minutes within a 12-hour timespan]

Lab 6 [due Friday, Apr 9th at 9:00PM].


Assignments

Assignment general directions:

Assignment documents:

Labs

Labs general directions:

Lab Instructions and Files: