Queen's Computing Queen's CISC 324 Operating Systems Course Syllabus, Fall 2023 The course presents the basic concepts of multitasking systems and the foundations of operating systems. It covers different topics such as concurrent processes. Synchronization and communication. Concurrent algorithms. Scheduling. Deadlock. Memory management. Protection. File systems. Device management. Typical layers. Also, the course provides practical mapping (through labs) of some topics presented in the course lectures. In addition to the syllabus in this document, students must read the CISC "Common Syllabus Information" page at https://www.cs.queensu.ca/students/undergraduate/syllabus/. That document contains important administrative information that applies to all CISC courses, and in turn refers you to a few important pages on the Queen's website which are required reading. Please read all of those documents carefully. This information is essential for you as it clarifies your rights and responsibilities. It is a must that all students be familiar with all of this provided information. Instructor: Dr. Anwar Hossain, Robert Sutherland Hall 529, ahossain@queensu.ca Office hours: Posted on OnQ TA and TA office hours: OnQ Lecture (KINES & HLTH RM100): Tuesday: 09:30am - 10:30am Thursday: 08:30am - 9:30am Friday: 10:30am - 11:30am Instruction to contact the Instructor: For any email communication, please write "CISC 324" in the subject. Otherwise, your email might be overlooked. Learning Outcomes: By the end of this term, students will: 1. Describe the representation of processes and threads, and the concepts of inter-process communication and synchronization. 2. Describe the steps in a context switch: process control blocks, the role of interrupts, the ready queue, CPU scheduling algorithms. 3. Design, code and analyse concurrent programs using semaphores or monitors, with awareness of pitfalls such as race conditions, deadlock, and starvation. 4. Understand and apply memory management concepts including address spaces, sharing and protection, paging, segmentation, translation lookaside buffer, and page replacement algorithms.
5. Explain how a computer's hardware resources are managed by the Operating System. Lab Programming Language: In this course, you will be using a combination of C/C++ and/or Java/Python for your labs. Textbook: Operating System Concepts, Tenth Edition, by Silberschatz, Galvin and Gagne; published by Wiley. (Ninth editor also ok) Weekly schedule: Week Week 1 Introduction to OSs Week 2 Processes, Threads, Concurrency Week 3 Process Scheduling Lab1- Sept 22, Fri Week 4 Process Synchronization Week 5 Deadlocks Lab2- Oct. 6, Fri Week 6 READING WEEK- NO CLASS Week 7 Memory Allocation Week 8 Paging Week 9 Virtual Memory Week 10 Storage and I/O Management Week 11 I/O and File Management Week 12 Week 13 Review Topic Storage, I/O, and File Lab due date Lab3- Oct. 27, Fri Lab4- Nov. 10, Fri Exam3- Nov. 7, Tue Lab5- Nov. 24, Fri Mini exams (in- class) Exam1-Sept. 19, Tue Exam2- Oct. 17, Tue Exam4- Nov. 28, Tue Marking: There is no final exam for the course. Rather, your exam mark will consist of four 45-minutes long mini-exams contributing to the final exam grade for the course. Mini-Exams: 4 in-class mini examinations @ 12.5% each = 50 Labs: 5 labs in groups (group