ECE 469: Operating Systems Engineering

Spring 2021 Syllabus


Instructor

Prof. Aravind Machiry, amachiry@, EE 333.

Office Hours

Thursday 10:15am-11:15am, and by appointment (please use email).

Teaching Assistant

See the landing page of the course.

Questions and Answers

Technical questions should be posted publicly on Piazza (the OP can choose to be anonymous). If they are sent as emails or private Piazza questions, responses may be delayed.


Course Description

The design and construction of operating systems for both individual computers and distributed (networked) systems. Basic concepts and methods for managing processor, main memory, block-structured storage, and network resources are covered. Detailed examples are taken from a number of operating systems, emphasizing the techniques used in networked versions of UNIX. These techniques are then applied to design improvements to portions of networked UNIX-based operating system; the improvements are then implemented in the associated laboratory course and performance is evaluated. For the first time, the course will be provided in a hybrid format with all the lecture videos available online. The in-person sessions will be primarily used for recitation and enable students to ask any questions related to the course.

Course Objective

The student will, upon completion of this course, understand basic operating system concepts. In particular, the student should become familiar with the techniques used within UNIX-derived operating systems. The associated laboratory experience augments this conceptual understanding of operating system design and construction by giving the student "hands-on" experience. Projects will be implemented using networked personal computers running Linux, a "freeware" version of POSIX-complaint UNIX.  

Course Learning Objectives

A student who successfully fulfills the course requirements will be able to

  1. understand basic concepts of processes, process control, synchronization, scheduling (1,a)
  2. understand concepts and technologies in memory management, secondary and tertiary storage management, file system, and distributed and networked operating systems. (1,3,a)
  3. model and analyze the performance of OS components (1, 2, 4, a, b)
  4. design and modify components of an operating system (1, 4, 3, a, b, c, e, k)

Prerequisites

ECE368 (Data Structures) and [Optional] ECE437 (Introduction to Digital Computer Design and Prototyping). Programming proficiency in C is absolutely required.

Work

Work for this class comes in a few large chunks. Start early on the project assignments.


Textbook

Silberschatz, Galvin, and Gagne, Operating System Concepts, eighth (or seventh, or sixth) edition, John Wiley & Sons.

or

Remzi and Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, http://www.ostep.org

Lecture Notes

If available, notes for the lectures will be made available on the Web at engineering.purdue.edu/~ee469/lectures. These notes are not necessarily self-contained, complete, or coherent. They are provided to aid you in your own note-taking. They are certainly not a substitute for attending class.

Course Topics and Tentative Schedule

Weeks

Topic

Book Chapters  

1

Introduction to OS

1-2

2  

Processes and Threads  

3-4

3-5  

Process Synchronization  

6

6  

CPU Scheduling  

5

7  

Deadlocks  

7

8-11/12  

Memory Management  

8-9

10  

Spring Break

 

12-15  

File Systems

10-13

16  

Course Review

 


Laboratory Structure

The project in this course is to build an operating system for a simulated architecture using Linux machines (Linux is a POSIX-compliant version of UNIX which runs on x86 architectures). There will be four assignments, corresponding to the following phases of the project: process synchronization, multiprogramming, virtual memory, and file system. The project is to be done in groups of two students, but you have the option to work independently.

Remote Laboratory Sessions

The laboratory sessions will be remote. We provide all the necessary instructions to access lab resources remotely. We recognize the challenges raised by remote lab sessions and provide additional video guides and live Q&A sessions.

Examinations

There will be two exams: midterm and final. They will cover the material discussed during the first and second half of the class, respectively, (i.e., they are not cumulative), including material from lectures, required readings, and the lab projects.

The midterm exam will be given in the evening of the Thursday in the week after Spring break. Both the midterm and the final exams will be online and can be be taken any time within the period of 22 hours. Make-up exams will only be given when a student is prevented from taking the exam due to unforeseen circumstances (e.g., sickness), and formal proof will be required to prove the prevailing circumstance.


Academic Integrity Policy

As a student at Purdue you are subject to the Purdue University Student Code of Conduct, which enjoins you to respect the highest standards of honesty and integrity. All work that you submit in this course must be your own; unauthorized group efforts are considered academic dishonesty. See the online brochure Academic Integrity: A Guide for Students for definitions and sanctions. Academic dishonesty is a serious offense which may result in suspension or expulsion from the University. In addition to any other action taken, such as suspension or expulsion, a grade of F will normally be recorded on the transcripts of students found responsible for acts of academic dishonesty. Students are encouraged to report academic dishonesty to the instructor directly, or to the Office of the Dean of Students.

Exams

Exams will be conducted online. You must solve the exam problems yourself, without any help (knowing or unknowing) from any other student. You must not seek any knowledge in advance of the test questions (beyond that given in class), and must report any advance knowledge of the test questions by any student that you are aware of. You must not allow any other student access to your solutions during an exam. If the seating situation makes this difficult, please inform the instructor or the TAs.

Programming Assignments

Students are encouraged to talk to the TAs or the instructor on programming assignments.

You may discuss assignments in a general way with other students, for example, via the class mailing list, but you must not consult any one else's written work. No discussion of or sharing of specific code or written answers is allowed, and each team of students must write their own solution to the problem. Any sources used outside of the class textbook/handouts/lectures must be explicitly acknowledged at the top of the assignment affected.

Note this policy requires you to protect your files against electronic copying using UNIX file protection, to not place your work on any publicly accessible site, and to exercise care in the disposal of any printouts of your work.

Automatic tools will be used to compare your programming solutions to those of every other current or past student.

The first case of cheating on an assignment will result in a zero for the particular assignment and reporting the student to the university administration for disciplinary action. The second case of cheating will result in an immediate F grade for the course.


Grading

Grades will be assigned on the basis of accumulated points. The weighting is as follows:

Grading Policy

Problems regarding grading of assignments and the midterm exam must be resolved within one week after the graded work has been returned to you. It is your responsibility to pick up the graded work on time. The grades will not be modified after the one week period.

Normally, the TAs make the final decisions on assigning the grade for each assignment and each exam question. Therefore, any issues with grading should normally be resolved with the TAs. However, if a student believes the TA's solution is wrong for a certain problem, he or she can ask the instructor for clarification.

Late policy and extensions

Each group is allowed to request an extension for up to 2 days for all labs, i.e., you have two days of extension that you can use for labs. However, each day extension comes with a penalty of 10% on the grade of the corresponding lab. For example, if a group requests 1 day extension for a lab, then the total grade for that lab would be 90% of the achieved grade. Similarly, a 2-day extension results in 80% of the total grade. Please email a TA to request an extension for a lab.

Make-Up Exam Policy

A make-up exam is given only in the most extreme circumstances and requires certification for such circumstances: e.g. medical doctor's statement certifying that the student is unable to attend the scheduled exam. Any personal travels, load from work or from other classes, failed alarm clocks, or simply not being able to make it to the exam will not be grounds for a make-up. If you have any recurring medical problems that may unexpectedly prevent you from making it to class or exams, please obtain a doctor's statement certifying your circumstances.


COVID-19 Preparedness

Attendance Policy

Students are encouraged to attend in-person classes unless they are ill or otherwise unable to attend class. If they feel ill, have any symptoms associated with COVID-19, or suspect they have been exposed to the virus, students should stay home and contact the Protect Purdue Health Center (496-INFO).

Only the instructor can excuse a student from a course requirement or responsibility. When conflicts can be anticipated, such as for many University-sponsored activities and religious observations, the student should inform the instructor of the situation as far in advance as possible. For unanticipated or emergency conflicts, when advance notification to an instructor is not possible, the student should contact the instructor/instructional team as soon as possible by email, through Brightspace, or by phone. In cases of bereavement, quarantine, or isolation, the student or the studentís representative should contact the Office of the Dean of Students via email or phone at 765-494-1747.

Quarantine/Isolation Guidance

If you must quarantine or isolate at any point in time during the semester, please reach out to me via email so that we can communicate about how you can continue to learn remotely. Work with the Protect Purdue Health Center (PPHC) to get documentation and support, including access to an Academic Case Manager who can provide you with general guidelines/resources around communicating with your instructors, be available for academic support, and offer suggestions for how to be successful when learning remotely. Your Academic Case Manager can be reached at acmq@purdue.edu. Importantly, if you find yourself too sick to progress in the course, notify your academic case manager and notify me via email. We will make arrangements based on your particular situation.

Classroom Guidance

The Protect Purdue Plan, which includes the Protect Purdue Pledge, is campus policy and as such all members of the Purdue community must comply with the required health and safety guidelines. Required behaviors in this class include: staying home and contacting the Protect Purdue Health Center (496-INFO) if you feel ill or know you have been exposed to the virus, properly wearing a mask in classrooms and campus building, at all times (e.g., mask covers nose and mouth, no eating/drinking in the classroom), disinfecting desk/workspace before and after use, maintaining appropriate social distancing with peers and instructors (including when entering/exiting classrooms), refraining from moving furniture, avoiding shared use of personal items, maintaining robust hygiene (e.g., handwashing, disposal of tissues) prior to, during and after class, and following all safety directions from the instructor.

Students who are not engaging in these behaviors (e.g., wearing a mask) will be offered the opportunity to comply. If non-compliance continues, possible results include instructors asking the student to leave class and instructors dismissing the whole class. Students who do not comply with the required health behaviors are violating the University Code of Conduct and will be reported to the Dean of Students Office with sanctions ranging from educational requirements to dismissal from the university.

Any student who has substantial reason to believe that another person in a campus room (e.g., classroom) is threatening the safety of others by not complying (e.g., not properly wearing a mask) may leave the room without consequence. The student is encouraged to report the behavior to and discuss the next steps with their instructor. Students also have the option of reporting the behavior to the Office of the Student Rights and Responsibilities. See also Purdue University Bill of Student Rights.


Campus Interruptions

In the event of a major campus emergency, course requirements, deadlines and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. In such an event, information will be provided through the course website and email.

Students with Disabilities

Any student with disability requiring accommodations in this class is encouraged to contact the instructor.