Syllabus
CS 30200 / ECE 46810
Operating Systems
Spring, 2022

Professor Roger Kraft
Office: Classroom Office Building, Room 368
Phone: (219) 989-2273
Office hours: 12:30--2:30 TR, and by appointment.
E-mail: rlkraft@pnw.edu

Texts: Operating Systems: Three Easy Pieces
          The C Book (PDF)
          Programming in C (PDF)
          A C Primer for Java Programmers (PDF)
          C for Java Programmers
          C for Java Programmers: A Primer
          Beej's Guide to C Programming (PDF)
          An Introduction to C
          An Introduction to the C Programming Language (PDF)

This course is an introduction to computer operating systems. We want to learn what operating systems are, why we need them, how to work with them, how to program them, how they are designed, and how they are implemented. We will cover the general theory of modern operating systems and we will study two examples of currently popular operating systems, Linux and Microsoft Windows. We will also write "systems level" programs that interface with the Windows operating system.

In addition to the study of operating systems, three other subjects will be important in this course, the C programming language, the command-line interface (CLI), and the Intel 386 architecture and assembly language. All of the programming assignments will be done in C. And to really understand how operating systems, and C programs running on them, are implemented we need to understand how CPU architectures support operating systems and C runtimes systems. We will use the specific example of the Intel 386 architecture and see how it supports the Windows operating system and C programs.

Your grade for this course will be based on about five programming assignments and two exams in the following manner:

           50%    programming assignments,
           25%    1st exam,
           25%    2nd exam.

Tentative dates for the two exams are

           Exam 1   Wednesday, March 9 March 30
           Exam 2   Final exam week.

Students are expected take the exams at the scheduled times. Makeup exams will be given only for legitimate and verified emergencies.

You may work with a partner on the programming assignments for this course. Each of the programming assignments will have a due date. To receive full credit for an assignment, it must be turned in by the due date. All programs handed in late will be marked off 10% of the total points for each calendar day late up to a maximum of 50%. If an assignment is more than two weeks late, then I reserve the right not to accept it for credit. When you complete a programming assignment you (together with your partner, if you have one) will turn in the source code for your solution using the university's course management system. In this course web site there are detailed instructions on how assignments are to be turned in. You will be expected to follow the instructions. Also in this web site is information on the criteria used to grade your programming assignments.

You and your partner should turn in your own work for each programming assignment. Here is what that means: You may talk with your other classmates about the course material and the ideas behind each homework assignment but you and your partner should solve each problem on your own and write your own code for the solution. Turning in someone else's solution (or even a modified version of someone else's solution) is a breach of academic integrity. Similarly, giving a copy of your solution to someone else in the class is also a breach of academic integrity. If you need help with a homework assignment, come and ask me. You can ask me as many questions as you want! Please do not hesitate to ask me questions after class, in my office, in an e-mail message, over the phone, etc.

For the first three weeks of this semester, this class will meet using the Zoom application. We will meet Monday and Wednesday from 12:30 to 1:45 pm. Please click on the following invite link to join a class meeting.

For the first three weeks of this semester, we will also use Zoom for office hours. I will have office hours Tuesday and Thursday afternoon at 12:30. Please click on the following invite link to join an office hour meeting.

The final grades for this course will use a plus and minus grading system. The possible grades for this course, and a tentative grading scale for the grades, are given in the table below. The final grading scale that I use may not be quite the same as the one given below (the grade cutoffs might be lower, but they will not be any higher than what is given in this table).

A93 - 100
A-90 - 92
B+88 - 89
B83 - 87
B-80 - 82
C+78 - 79
C72 - 77
C-70 - 71
D+68 - 69
D62 - 67
D-60 - 61
F59 or less

In this web site you will find more information about this course. There are links to online help and documentation for C, Intel 386 architecture and assembly language, information about course reading assignments, and, very importantly, all of your homework assignments and their due dates will be posted on one of these web pages.

The objectives for this course are as follows.

  1. Students will be able to contrast kernel and user mode in an operating system.
  2. Students will be able to compare and contrast the common algorithms used for both preemptive and non-preemptive scheduling of tasks in operating systems
  3. Students will be able to explain the concept of virtual memory as applied to paging and segmentation, and explain how virtual memory is realized in hardware and software.
  4. Students will be able to compare and contrast different approaches to file organization, recognizing the strengths and weaknesses of each.
  5. Students will be able to summarize the various approaches to solving the problem of mutual exclusion in an operating system.
  6. Students will be able to write multithreaded code that makes use of various synchronization mechanisms such as mutexes, binary and counting semaphores, and monitors.

Academic Integrity Policy: Ethics are an integral part of being a student and a professional. Academic integrity is the hallmark of this University. Therefore, Purdue University Northwest does not tolerate academic dishonesty. If a student breaches integrity, the student risks sanctions in both the academic and conduct arenas. Academic dishonesty includes, but is not limited to, the unauthorized use of other's intellectual property (plagiarism), and lying to an instructor or any University employee. Such actions WILL result in a failing grade on the assignment with the strong possibility of referral to the Office of the Dean of Students for a conduct sanction (see the Purdue University Northwest Student Handbook available from the Dean of Students office).

Students with Disabilities: Students who may need accommodations to address barriers caused by documented disabilities under the Americans with Disabilities Act or Section 504 of the Rehabilitation Act need to register with the Disability Access Center (DAC) to receive accommodations. To request and receive accommodations, students schedule an appointment with the DAC to initiate review and approval of supporting documentation showing their disability, the barriers it causes, and the recommended accommodations. If documentation is approved, the DAC will email a letter to the student’s current semester faculty members outlining the accommodations needed to ensure accessibility. Accommodations will be provided from the date the letter originates from the DAC. It is important to register as soon as possible as accommodations are not retroactive. The DAC is located at the Hammond campus in the Student Union & Library Building (SUL) 341 and Westville in the Technology Building (TECH) 101. The DAC can be reached at (219) 989-2455 or emailing: dac@pnw.edu.

Course Engagement: Student engagement in coursework and class activities is essential for learning and student success. Additionally, to comply with federal mandates related to financial aid, the university is required to track attendance and engagement in course activities. Depending on the delivery format of your course, attendance and engagement in the course may be defined and tracked in different ways. Meaningful engagement in a course may include attending live class sessions (in person or remotely), engaging with learning materials, participating in learning activities, completing assessments, and interacting with classmates and/or the instructor. Logging into the course site in Brightspace alone does not constitute meaningful engagement in a course. You are expected to be actively engaged in the course activities as explained in the course syllabus.

Classroom Civility Policies: Students are expected to comply with University regulations regarding civility, attendance, and appropriate classroom behavior.

COVID-19 Preparedness: To keep our students, faculty, staff, and community safe, students are required by the University to follow the current face covering protocols and other COVID-related guidelines established by the Director of Public Safety. (Face coverings must cover both nose and mouth.) Students are required to follow these guidelines when on campus or participating in University-sponsored activities. These same protocols will be followed in the classroom environment. Because of the importance of these protocols to the safety of the University community, failure and refusal to comply with the protocols will be treated as “obstruction or disruption of a University activity” as defined in the Code of Conduct.

If you feel any symptoms, please stay at home. You will not be penalized for putting your health and those around you first, rather, such consideration is encouraged and praised.

If you test positive for COVID-19, please contact Colin Fewer, Dean of Students at (219) 989-4141 or through email at fewer@pnw.edu.

Emergency Preparedness: An information sheet, with instructions for various types of possible emergencies, is posted in each room on campus. These emergencies include criminal activity, severe weather, fire, medical emergencies, and noises sounding like gunshots. Students are strongly encouraged to review this instruction sheet carefully and acquaint themselves with these important guidelines. PNW will hold annual drills to prepare for emergencies such as severe weather, active shooter and fire. It is strongly encouraged that all students participate in these drills in an effort to strengthen our emergency preparedness efforts.

Student Mental Health and Wellbeing: Purdue University Northwest is committed to supporting and advancing the mental health and well-being of our PNW students. During the course of their academic careers, students often experience personal challenges that contribute to barriers in learning, such as drug/alcohol problems, strained relationships, chronic worrying, persistent sadness or loss of interest in enjoyable activities, family conflict, grief and loss, domestic violence, difficulty concentrating, problems with organization, procrastination and/or lack of motivation. Students also sometimes come to college with a history of learning difficulties (e.g., any form of special education), experience difficulties succeeding in a particular subject (e.g., math, reading), or have experienced some form of trauma be it emotional or physical (e.g., head injury).

These mental health concerns can lead to diminished academic performance and can interfere with daily life activities. If you or someone you know has a history of mental health concerns or if you are unsure and would like a consultation, a variety of confidential services are available. The Counseling Center is located in The Riley Center, 2250 173rd Street, Hammond campus and TECH 101 in Westville. You can also reach us at (219) 989-2366 or at https://pnw.edu/counseling/. The National Suicide Prevention Hotline is (800) 273-TALK or at suicidepreventionlifeline.org.

Non-Discrimination: Purdue University Northwest prohibits discrimination against any member of the University community on the basis of race, religion, color, sex, age, national origin or ancestry, genetic information, marital status, parental status, sexual orientation, gender identity and expression, disability, or status as a veteran. Any student who believes they have witnessed or experienced discrimination are encouraged to report the incident to the Office of Equity, Diversity & Inclusion in Lawshe 231, Hammond or call (219) 989-2337 or in Schwarz 25, Westville or call (219) 785-5545. Additional information can be found on the Diversity website.

Zoom Etiquette: The classroom civility policies apply to all class formats, including courses meeting synchronously via Zoom. When others are speaking, please mute your microphone. We encourage your active engagement in Zoom discussions and request that you use the “hand raise” function to allow the instructor to facilitate a respectful conversation. Please arrive to your Zoom sessions a few minutes early to allow the instructor time to get all members of the course admitted.