CMP 426-H81/CMP 697-H81
Operating Systems
Fall 2021 Syllabus

Course Information
Course Section Lecture Hours Location
CMP 426/CMP 697 - Operating Systems Tuesdays & Thursdays 6:00 pm - 7:40 pm Online-Synchronous using Zoom ) (Sometimes in person in Carman Hall, Room B08 (Please refer to the weekly schedule below for details
Contact Information
Instructor: Steven Fulakeza Email: steven.fulakeza(at)lehman.cuny.edu
Phone: NA Office Location: GI 232
Office Hours: Mon and Wed 1:40 pm to 3:40 pm
Instructor Availability: I reply to students' emails regularly but please note that I do not typically check email or Slack messages during late hours on weekdays, and I do not check these at all on the weekends in order to devote time to family, rest, and religious observances. Messages received during these times will receive attention once I am back online.



Hybrid Instruction

With the reopening of the campus for hybrid instruction, some classes will be held on campus, but most classes will be held online for the Fall 2021 Semester.

We will start the semester online and then we will designate specific dates when we can meet on campus in Carman Hall, room B08.

You can find all the details about the schedule of classes below.


CMP 426 Course Description: 4 hours, 4 credits

Operating systems and their role in various types of computer systems; the principles of multiprogramming; algorithms for resource allocation; multiple-computer systems. PREREQ: CMP 334 and CMP 338.

CMP 697 Course Description: 4 hours, 4 credits

A study of the functions and implementation of operating systems for various sizes and types of computers. Processor, storage, and device management. Paging algorithms, thrashing. File systems, concurrency, deadlocking, semaphores, and synchronization.

Course Objectives:

At the end of the course, students should be able to:

  1. use the command line to interact with the operating system
  2. explain operating systems and their role in various types of computer systems
  3. describe the basic structure of an operating system and its components
  4. describe the concept of a process, threads and how processes deal with scheduling, cooperation, and communication with other processes
  5. describe CPU scheduling algorithms and be able to compare them
  6. explain the classical problems in process synchronization and know several different ways to solve such problems, including semaphores, critical regions, and monitors
  7. explain how to characterize and handle deadlocks, including prevention, avoidance, detection, and recovery
  8. understand main memory and virtual memory and describe several different schemes for managing main memory, including swapping, virtual memory, paging, and segmentation
  9. describe file/storage management
  10. discuss how disks are structured and how their space is managed by the operating system

Textbook:

A. Silberschatz, P. Galvin, and G. Gagne, Operating System Concepts, 10 th Edition, Wiley, 2018. ISBN 978-1-119-29967-7

Grade Policy:

Your grades will be computed based on the following:

CMP 426:

Activity Percentages
Homework Assignments and Blackboard Quizzes 30%
Projects 10%
Midterm Exam 30%
Final Exam 30%

CMP 697:

Activity Percentages
Homework Assignments and Blackboard Quizzes 30%
Projects 10%
Midterm Exam 25%
Final Exam 25%
Research Paper and Presentation (for graduate students only) 10%

The exams will consist of two parts:

  • A multiple-choice part that will be completed on Blackboard
  • A written part. This exam may be done in person or online depending on COVID-19 cases.

Exam Schedule:

  • Multiple Choice Midterm Exam (open on Blackboard on 10/25/2021 at 12:00 am and close on 10/26/2021 at 11:59 pm)
  • Midterm Written Exam Date: 10/26/2021 6:00 pm - 7:40 pm
  • Multiple Choice Final Exam: (open on Blackboard on 12/20/2021 at 12:00 am and close on 12/21/2021 at 11:59pm)
  • Final Exam Written Exam Date: 12/21/2021 6:15 pm - 8:15 pm

There are no make-up exams. However, makeup exam might be given only if when a student's absence is unavoidable. In such a case, the student must file formal written request with substantial evidence.

Homework Assignments and Submission

Several homework assignments are given during lectures. Students need to work on the homework for preparing exams but may not need to submit the homework assignments to the instructor. Some selected homework problems will be assigned as formal assignments to be submitted for grading.

Students must work in their own assignments unless I state otherwise. No late assignments will be accepted.

Homework assignments will include the following areas and more:

  • Process creations/executions based on Linux/UNIX API and Win API
  • Message based communications based on Linux/UNIX API
  • Shared memory-based communications between processes based on Linux/UNIX API and WIN API
  • Multithreading based on POSIX API, Win API, Java threads
  • Java nexus IO (memory mapped IO), Windows memory mapped IO
  • Synchronization based on UNIX System V API, POSIX API, Win API
  • Linux kernel module programming/driver programming

Graduate Students Research Paper:

For Graduate Students Only (CMP 697): Research Paper (12 - 15 pages double space in 12 fonts) in various contemporary research areas such as:

  • Threading issues in Linux kernels
  • Fast mutual exclusions
  • Virtualization and cloud computing
  • File systems in solid state devices
  • In-memory file systems
  • in memory DBMS
  • Operating System Support for Mobile Applications

Some details about research paper writing and presentation will be discussed during office hours. Research Paper Proposal Due: November 04, 2021 (2-3 pages of extended abstract with at least 5 academic research papers as references)

Research Paper Due Date: December 16, 2021

Survey Research Paper Structure

  1. Title, name, date, course number
  2. Abstract: This is a brief summary that describes your entire paper. Your abstract should contain 150 - 300 words. You have to write this last.
  3. Introduction: Your introduction should provide the background problem you are researching.
  4. Body of the paper and discussion
  5. Conclusion that summarizes the paper and describes future work for the research
  6. Acknowledgement (If necessary)
  7. References: ACM = Association of Computing Machinery

Honor Code

Students are encouraged to study together. However, you must do your own work for all your homework assignments, projects and exams. You should never copy code or antwork from the internet or another student. You are responsible for knowing and following Lehman's academic integrity code (available from the Undergraduate Bulletin, Graduate Bulletin, or the Office of Academic Standards and Evaluations). All incidents of cheating will be reported to the Vice President of Student Affairs.

Expectations

Students are expected to learn both the material covered in class and the material in the textbook and other assigned reading. Completing homework is an essential part of the learning experience. Students should review topics from prior courses as needed using old notes and books.

Blackboard & Communication

I will be communicating with you on a regular basis throughout the semester using the email address listed on Blackboard for this course. You are required to make sure that the email address on Blackboard is your current Lehman email address and you must check it on a regular basis. There will be no acceptable excuse for missing an email announcement.

Accommodating Disabilities:

Lehman College is committed to providing access to all programs and curricula to all students. Students with disabilities who may need classroom accommodations are encouraged to register with the Office of Student Disability Services. For more info, please contact the Office of Student Disability Services, Shuster Hall, Room 238.
Phone number: 718-960-8441
Email: disability.services@lehman.cuny.edu
Webpage: http://www.lehman.edu/student-disability-services

Recording of Remote Classes:

Students who participate in this class with their camera on or use a profile image are agreeing to have their video or image recorded solely for the purpose of creating a record for students enrolled in the class to refer to, including those enrolled students who are unable to attend live. If you are unwilling to consent to have your profile or video image recorded, be sure to keep your camera off and do not use a profile image. Likewise, students who un-mute during class and participate orally are agreeing to have their voices recorded. If you are not willing to consent to have your voice recorded during class, you will need to keep your mute button activated and communicate exclusively using the "chat" feature, which allows students to type questions and comments live.

All classes that are conducted online will be recorded.The link for the recordings will be made available in Blackboard. Classes done in person will not be recorded.


Tentative Schedule:

Week Day Date Topic Reading Materials Meeting Location
1108/26/2021Introduction, Syllabus, Chapter 1Syllabus & Chapter 1 Online
1208/31/2021Chapter 1Chapter 1Online
2309/02/2021Chapter 2 - OS Structures: OS Services, User and OS Interface, Shell, Kernel, System callsChapter 2On Campus - Carman Hall, room B08
2X09/07/2021No classes scheduled Chapter 2No class
3409/09/2021Chapter 2 - OS Structures: System calls, System Services, Linkers and Loaders Chapter 2Online
3509/14/2021Chapter 2 - OS Structures: Operating-System Design and Implementation, Operating-System StructureChapter 2Online
4X09/16/2021No classes scheduled Chapter 3No class
4609/21/2021Chapter 3 - Processes: Process concept, Process state, process control block, Process scheduling, Operations on ProcessesChapter 3Online
5709/23/2021Chapter 3 - Processes: Write a program to create and execute a process using the fork() system callChapter 3Online
5809/28/2021Chapter 3 - Processes: Interprocess Communication, Asynchronous, Synchronous communicationChapter 3Online
6909/30/2021Chapter 3 - Processes: Sockets, PipesChapter 3Online
61010/05/2021Chapter 4 - Threads & Concurrency: Threads, relationship to processes, creation/terminationChapter 4Online
71110/07/2021Chapter 4 - Threads & ConcurrencyChapter 4Online
71210/12/2021Chapter 5 - CPU SchedulingChapter 5Online
81310/14/2021Chapter 5 - CPU SchedulingChapter 5On Campus - Carman Hall, room B08
81410/19/2021Chapter 5 - CPU SchedulingChapter 5Online
91510/21/2021Chapter 6 - Synchronization Tools: Critical sections, Peterson's, Atomic hardware solutions, Exam ReviewChapter 6Online
91610/26/2021Midterm examRead & Review Chapters 1 through 6.3Online
101710/28/2021Chapter 6 - Synchronization Tools: Mutexes, spinlocks, SemaphoresChapter 6On Campus - Carman Hall, room B08
101811/02/2021Chapter 7 - Synchronization Examples: Producer-Consumer, Readers-Writers, Dining PhilosophersChapter 7Online
111911/04/2021Chapter 7 - Synchronization Examples: MonitorsChapter 7On Campus - Carman Hall, room B08
112011/09/2021Chapter 8 - Deadlocks: Deadlocks, Deadlock detection, AlgorithmsChapter 8Online
122111/11/2021Chapter 9 - Memory Management - Contiguous memory allocationChapter 9Online
122211/16/2021Chapter 9 - Memory Management - Contiguous memory allocationChapter 9Online
132311/18/2021Chapter 9 - Memory Management - Relocation and Paging, Hierarchical PagingChapter 9Online
132411/23/2021Chapter 9 - Memory Management - SwappingChapter 9Online
14X11/25/2021No classes scheduled - Thanksgiving HolidayChapter 10
142511/30/2021Chapter 10 - Virtual Memory - Demand Paging, COWChapter 10Online
152612/02/2021Chapter 10 - Virtual Memory - Page Replacement, Thrashing, Working setChapter 10Online
152712/07/2021Chapter 11 - Storage Management - HDD Scheduling and RAID StructureChapter 11Online
162812/09/2021Chapter 11 - Storage Management - HDD Scheduling and RAID Structure and Exam ReviewChapter 11Online
162912/14/2021Reading DayChapters 1-11On Campus - Carman Hall, room B08
173012/16/2021Continue Reading...
173112/21/2021Final ExamTBA

Homework Assigments:

Assignment Release Date Due Date
Blackboard Chapter 1 Multiple Choice Quiz 1 09/03/2021 09/10/2021 by 11:59 pm
Blackboard Chapter 2 Multiple Choice Quiz 2 10/22/2021 10/01/2021 by 11:59 pm
Programming Homework Assignment 1 10/07/2021 10/15/2021 by 11:59 pm
Homework Assignment 2 10/18/2021 10/25/2021 by 11:59 pm
Blackboard Chapter 3 Multiple Choice Quiz 3 11/29/2021 12/05/2021 by 11:59 pm
Homework Assignment 3 12/06/2021 12/13/2021 by 11:59 pm

Projects:

Project Release Date Due Date
Project 11/03/2021 11/17/2021 by 11: 59 pm

Operating System Examples

  • UNIX
  • Linux
  • MacOS
  • Windows
  • Android