CS 4375: Theory of Operating Systems

Quick links: Course description, Course objectives, Text & Email , Labs, Exams, TA, Instructor, Outline, Lecture notes, policy.

Course Description

Most students enjoy this course because it exposes so much of the "magic" of how programs are managed on modern computer systems. For example, a student enrolled in Theory of Operating Systems will learn

These functions of a modern operating system are all based on the application of a few fundamental concepts. This course teaches these key concepts and "makes them real" by engaging students in the creation of small programs that implement their key functionalties.

Operating systems design is an exciting area of computer systems that ties togther architecture, language, and real-world constraints. Many solutions to the problem of managing a systems explored in this course involve interesting tradeoffs between flexibility, performance, and reliability. In order that students gain a mature appreciation of these trade-offs, this course is conducted in a very interactive manner. Students are encouraged to dialoge with each other and the professor to discuss the implications of design options. An email list facilitates student/instructor interaction outside of class.

Since the design of operating systems requires a very practical understanding of computer architecture, algorithms, and software design, most students are not prepared for this course before their senior year.

Few programming languages are as well suited to the implementation of operating systems as "C". For this reason, most labs for this course must be written in C. Students with little experience in C are strongly encouraged to review it (some resorce links are listed below).

Course Objectives

Students enrolled in this course will:

Text & Email list

Instructor: Dr. Eric Freudenthal

Teaching assistant: Ryan Spring (PhD Candidate)

Course Objectives

Students enrolled in this course will:

Course Content

Examinations (in class, closed book, no notes permitted)

Labs

Labs must represent individual work and will contribute heavily to your final grade. Our TAs are very effective at detecting plagiarism, which will be reported to the Dean of Students (see section on academic honesty below).

Students are encouraged to discuss requirements of lab assignments, and are encouraged to share evaluation test sets. However, students should prepare their implementations without detailed knowledge of each others' implementations.

Under normal circumstances, labs must be submitted as tarballs (see "man tar") and mailed to the TA (Ryan Spring: rcspring@utep.edu).

Be sure to schedule sufficient time for cleaning up your code, testing, and the writing of documentation. Assignments written in an unprofessional style or lacking clear and useful documentation will suffer severe grading penalties. Students with weak written communication skills may wish to contact the UTEP Teaching & Learning center.

Accommodations for Students with Disabilities and Exceptional Circumstances

Individuals with disabilities have the right to equal access and opportunity. Please contact Dr. Freudenthal or the UTEP Office of Disabled Student Services (DSSO) if you have a special circumstance such that an accommodation would be helpful in permitting you to excel or demonstrate mastery of the material covered in this course.

Standards of Conduct and Academic Honesty

Course Grading Policy

  • Overall course grading: Grades will be determined from
  • All assignments are graded on a four-point scale as follows:

    Lab & exam grades have a large influence on final grade (typically 40% lab, 60% exams, where the exam component is max(final, 0.6*final + 0.4*midterm)). Good performance on quizzes and strong class participation can potentially raise a grade by 0.3.

    Class participation: This is a senior-level course, and credit is derived from professionalism exhibited by the questions asked and answers provided by students. "Professional quality" statements are concise, unambiguous, and correctly use technical terminology. Note that professionals who understand a lecture can provide answers to questions, and those who are having trouble following a lecture clearly indicate when and how they are confused. Thus, lack of interaction is assumed to indicate disengagement or a lack of understanding. Therefore, it is essential that each student interact verbally in class or in writing using the course email list at least once each week. In addition, class participation credit will be awarded to students whose assistance to others, in manners consistent with class policy, is documented by properly filed assistance reports.

    Expectations of UG/Grad Students

    Both graduate and undergraduate students will may attend this course. Graduate students are expected to demonstrate a higher level of technical competency, analytical maturity, and communication skills than undergraduates as demonstrated by (1) class participation, (2) exams and (3) lab assignments. Some laboratory assignments will have advanced sections that only graduate students will be required to submit. Finally, the official course outcomes specify a range of mastery levels of the topics covered in this course that must be demonstrated by students in order to earn high marks. In order to be assigned similarly high marks, MS candidates are expected to demonstrate higher levels of mastery.

    Playing with VMware

    Follow this link.