Uploaded by Edwin Mongare

Course Syllabus Fall 2021 CS332 OperatingSystems

Mathematics & Computer Science Department
Course Syllabus
Fall 2021
Dr. Charles Edeki
Email: charles.edeki@rutgers.edu
Office Hours: By appointment (Preferable time: An hour before class or immediate after class).
Class Hours: Tuesdays and Thursdays, 4:00 pm – 5:20 pm in room HIL-103.
In order to protect the health and well-being of all members of the Rutgers-Newark community, masks must be
worn by all persons inside campus buildings when in the presence of others, and in buildings in non-private
enclosed settings (e.g., common workspaces, workstations, meeting rooms, classrooms, etc.). Masks should
securely cover the nose and mouth. Masks must be worn during class meetings. Each day before you arrive on
campus or leave your residence hall, you must complete the brief survey on the My Campus Pass symptom
checker self-screening app found at: myRutgers Portal.
Course Description
This course presents the functions of a computer operating system and its implementation. Topics include
process management, memory management, storage management and file systems. In addition to the conceptual
foundations, students acquire practical experience by developing a systems program that illustrates key
operating system concepts.
Learning Goals/ Outcomes
Upon completion of this course, student should be able to understand:
• What operating systems do and computer system organization
• Computer System architecture and system boot
• Operating System structure and operations
• Process management, Memory management and Storage management
• Protection and Security
• Operating System Services
• Distributed system and Special-purpose systems
• User - Operating System interface
• Operating system design and implementation and Virtual machines
Successfully learning operating systems means understanding computer science theory, algorithms, data
structures and system-level programming. This operating systems course will include activities to support all of
these. As a computer scientist or a computer engineer, this course will be extremely beneficial, but will also be a
lot of work. Students should be prepared to spend several hours a week outside of class studying and working
on assignments.
Data Structures & Algorithm Design (21:198:335)
Operating Systems: Internals and Design Principles 9th Edition Pearson, 2018 by William Stallings
ISBN-13: 9780134670959
Silberschatz, Galvin and Gagne, Operating System Concepts, 9th Edition, Wiley ISBN: 978-1-118-06333-0
DEPARTMENT WEB SITE: http://www.ncas.rutgers.edu/mat
Learning strategy:
Learning strategy is based on the instructor led lectures and practical work in the computer lab. Scheduled
lectures/practical work will take place in every class session. Quizzes and exams will be administered during
regular class time. Participation scores will be determined by attendance to both class and laboratory and your
enthusiasm for learning during those times.
Course Grading:
Graded Activities
Percent of Final Grade
Active class participation/lab work
4 Quizzes
Homework Assignments
Midterm Exams
Final Exams
Makeup Exam Policy:
If a student missed an exam.quiz, a makeup will be given with a valid reason and documentation.
Students are required to attend all classroom and laboratory sessions. Students are expected to arrive at classes
on time. It is the responsibility of the student to notify the instructor if they will miss class with a valid reason
(must have documentation to support).
Late work policy:
Late homework programming assignments have points deducted (5% deduction per day). Late assignments are
not accepted a week after the due date.
Electronic Devices: Items such as cellular phones, PDA’s, iPod’s, mp3 players, or any such devices must be
turned off before coming to class. Anyone caught using any of these devices during an exam will receive a
grade of zero for the exam.
Topics Outline
NOTE: Topics and sequence may change as circumstances require.
Class Topic/Description/Textbook Chapter
Week 1
Chapter 1
Computer System Overview
HW 1
1.1. Basic Elements
1.2. Evolution of the Microprocessor
1.3. Instruction Execution
1.4. Interrupts
1.5. The Memory Hierarchy
1.6. Cache Memory
1.7. Direct Memory Access
1.8. Multiprocessor and Multicore Organization
Week 2
Operating System Overview
Chapter 2
2.1. Operating System Objectives and Functions
HW 2
2.2. The Evolution of Operating Systems
2.3. Major Achievements
2.4. Developments Leading to Modern Operating Systems
2.5. Fault Tolerance
2.6. Os Design Considerations for Multiprocessor and Multicore
2.7. Microsoft Windows Overview
2.8. Traditional Unix Systems
2.9. Modern Unix Systems
2.10. Linux and 2.11. Android
Week 3 - 4
Chapter 3
Process Description and Control
3.1. What is a Process?
HW 3
3.2. Process States
Quiz 1
3.3. Process Description
3.4. Process Control
3.5. Execution of the Operating System
3.6. Unix Svr4 Process Management
Week 5 - 6
Chapter 4
HW 4
4.1. Processes and Threads
Quiz 2
4.2. Types of Threads
4.3. Multicore and Multithreading
4.4. Windows Process and Thread Management
4.5. Solaris Thread and Smp Management
4.6. Linux Process and Thread Management
4.7. Android Process and Thread Management
4.8. Mac OS X Grand Central Dispatch
Week 7-8
Chapter 5
Concurrency: Mutual Exclusion and Synchronization
HW 5
5.1. Mutual Exclusion: Software Approaches
5.2. Principles of Concurrency
5.3. Mutual Exclusion: Hardware Support
5.4. Semaphores
5.5. Monitors
5.6. Message Passing
5.7. Readers/Writers Problem
Week 9-10
Chapter 6
Concurrency: Deadlock and Starvation
HW 6
6.1. Principles of Deadlock
6.2. Deadlock Prevention
6.3. Deadlock Avoidance
6.4. Deadlock Detection
6.5. An Integrated Deadlock Strategy
6.6. Dining Philosophers Problem
6.7. Unix Concurrency Mechanisms
6.8. Linux Kernel Concurrency Mechanisms
6.9. Solaris Thread Synchronization Primitives
6.10. Windows Concurrency Mechanisms
6.11. Android Interprocess Communication
Week 11- 12
Chapter 7
Memory Management
7.1. Memory Management Requirements
7.2. Memory Partitioning
7.3. Paging
7.4. Segmentation
Virtual Memory
8.1. Hardware and Control Structures
8.2. Operating System Software
8.3. Unix and Solaris Memory Management
8.4. Linux Memory Management
8.5. Windows Memory Management
Chapter 8
HW 7
Quiz 3
8.6. Android Memory Management
Week 13 -14
Quiz 4
9. Uniprocessor Scheduling
9.1. Types of Processor Scheduling
9.2. Scheduling Algorithms
9.3. Traditional Unix Scheduling
Multiprocessor, Multicore, and Real-Time Scheduling
10.1. Multiprocessor and Multicore Scheduling
10.2. Real-Time Scheduling
10.3. Linux Scheduling
10.4. Unix Svr4 Scheduling
10.5. Unix Freebsd Scheduling
10.6. Windows Scheduling
Week 15
Final Exam Review / Final Exam
Chapter 9
Chapter 10