ECE469 - Operating Systems Engineering / Spring 2024


Course Description

This course teaches how internals of modern operating systems are working with hardware/software stack. In the course, we will learn fundamental concepts of operating systems by building an operating system by our own hand. In particular, Labs are based on JOS, an educational OS project, and will build it starting from booting (lab1), to virtual memory (lab2), to process (lab3), to multi-tasking (lab4), and, finally File system, Spawn and Shell (lab5). We will also covers concurrency issues in systems by learning on how to implement locks and other synchronization mechanisms and how to resolve deadlock issues.

Text Book

Remzi and Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces

Grading and Evaluation

We will use the following distribution for grading:

  • Labs (Total: 70%).
    • Lab 1 (3%)
    • Lab 2 (8%)
    • Lab 3 (14%)
    • Lab 4 (20%)
    • Lab 5 (25%)
  • 10 Quizzes (Total (Maximum): 10%) --- 5 top scoring quizzes will be used for grading
    • Attempting a Quiz (1% each) --- Maximum 5%
    • Quiz score (1% each) --- Maximum 5% --- Only top 5 highest scores will be considered
  • Midterm (10%).
  • Final (10%).
  • Some extra credits in JOS Labs (1% or 2% each).
This is an implementation heavy and relatively tough course with more than one-third of the grade depends on the successful completion of the labs.

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.

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.

Prerequisites

This is going to be an implementation heavy course with following pre-requisites.

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

Learning Objectives

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.

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

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.

Use of ChatGPT and LLMs:

Using ChatGPT or GitHub Copilot is not recommended for your coding assignments. The labs are well-structured, and completing them helps you better understand OS concepts. However, if you do use it, please mention the prompt used in the comments. For instance, //LLMPROMPT: convert str to an integer. You will not be penalized for using ChatGPT or other LLMs.

Nondiscrimination Statement

Purdue University is committed to maintaining a community which recognizes and values the inherent worth and dignity of every person; fosters tolerance, sensitivity, understanding, and mutual respect among its members; and encourages each individual to strive to reach his or her own potential. In pursuit of its goal of academic excellence, the University seeks to develop and nurture diversity. The University believes that diversity among its many members strengthens the institution, stimulates creativity, promotes the exchange of ideas, and enriches campus life. Link to Purdue’s nondiscrimination policy statement.

Students with Disabilities

Purdue University strives to make learning experiences as accessible as possible. If you anticipate or experience physical or academic barriers based on disability, you are welcome to let me know so that we can discuss options. You are also encouraged to contact the Disability Resource Center at: drc@purdue.edu or by phone: 765-494-1247

Emergency Preparation

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 beyond the instructor’s control. Relevant changes to this course will be posted onto the course website or can be obtained by contacting the instructors or TAs via email or phone. You are expected to read your @purdue.edu email on a frequent basis.

Mental Health Statement

It is important to make sure that you maintain your mental health.

  • If you find yourself beginning to feel some stress, anxiety and/or feeling slightly overwhelmed, try WellTrack. Sign in and find information and tools at your fingertips, available to you at any time.
  • If you need support and information about options and resources, please see the Office of the Dean of Students for drop-in hours (M-F, 8 am- 5 pm).
  • If you’re struggling and need mental health services: Purdue University is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of mental health support, services are available. For help, such individuals should contact Counseling and Psychological Services (CAPS) at 765-494-6995 during and after hours, on weekends and holidays, or by going to the CAPS office of the second floor of the Purdue University Student Health Center (PUSH) during business hours.
  • TaskHuman offers private, real-time, on-demand, 1-on-1 video calls with wellness coaches covering over 800+ topics such as anxiety, mindfulness, reducing stress, clean eating, time management, in-home workouts, relationship tensions, financial issues, spiritual guidance and many more. You can access these wellness coaches from around the world 24/7. The College of Engineering has an exclusive agreement with TaskHuman which gives you FREE and UNLIMITED access to these resources. Over 3,200 calls have been made by College of Engineering students, staff, and faculty so far with an average satisfaction rating of 4.89/5. Learn more here: https://engineering.purdue.edu/ECE/TaskHuman.

Logistics

When: TTh 7:30 am - 8:45 am, Where: BHEE 129

Join our Piazza for course related collaborations!

Office hours and Lab hours Schedule

schedule2024

Refer Lab Hours Etiquette for what to expect and prepare for lab and office hours.


Instructors

Aravind Machiry

Office Hours: Friday (9:00 am - 12:00 pm)

Location: EE 333