CS 5340: Advanced Operating Systems
Students enrolled in this course will:
- Develop practical skills needed for & be able to apply toward
desigining/augmenting/configuring an os to be suitable for a
- Feel competent to design/augment/configure an OS, and understand
why it matters
- Acquire sufficient knowledge to be able to solve problems & know how
to learn additional relevant info when needed.
- Be able to use principles gained in this class to understand
problems in deployed systems.
To achieve these goals, students shall
- Review classical and research topics in operating systems.
- Pragmatically construct a relevant systems-related project.
Potential topics include (but are not limited to):
- Configuration of linux to support an embedded application
upon an ARM-based controller. Students who demonstrate mastery
at developing arm applications for this evaluation board may be
offered a TI-sponsored stipend and internship.
- Construction of a "my little planetlab" configuration at UTEP
and measurement of the
ability of Planetlab's virtualization mechanisms to faithfully
simulate dedicated resources.
- Development of infrastructure to support UTEP's new
virtualization-based network education lab.
- Background information: Tannenbaum's "Modern Operating Systems",
2nd Ed. (Students who already have another text from a
foundations/theory of OS course can check with the instructor to
determine if they need to purchase their own copy of Tannenbaum's book)
- Other reference books & articles will be announced and
discussed in class. A few potential references:
- Course meets Tuesdays and Thursdays 1:30-2:50 in CS 322.
- email: efreudenthal at utep.edu
- phone: 915 747 6954
- Office hours:
- Tuesdays & Thursdays: 3-4:30, 6-7:30
- I will leave at 6:10 if no students are present.
- or by appt (use email, please suggest convenient times)
- First half of semester: Review of basic operating systems concepts (see web page for CS4375 / Theory of Operating Systems for details).
- Second half: Advanced topics including
- Papers on current research in operating systems
(to be announced).
- Case studies
- OS for embedded systems (case study - Linux on ARM).
- Virtualization: hypervisors, planetlab, vmware,
- Security: DAC/MAC, separation kernels
- Student projects.
- Midterm: near end of survey
- Final: as scheduled by the university
- Quiz: About once each week.
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")
using web-ct. Should there be a problem with web-ct, labs may be
submitted as enclosures to email sent to the TA.
- Assignments (exact due dates announced in class and subsequently
- Short lab assignments from UG course:
Students are required to understand covered material even though
only a few of these labs will be assigned.
- C essentials: Lab 0 Due Wed, 8/30
- Memory allocator: due Monday, 9/11
- Tthreads: lab 3
Due, Monday, 2 October.
- Posix shell: lab 1
- Scheduler simulation: lab 2
- Individually selected significant project (to be
discussed in class).
- Reference material:
Your labs must satisfy assignment guidelines
and produce output as specified in the assignment.
Programming assignments are
graded on the following criteria
- Correctness: Your submission should include a test suite to
demonstrate that it functions correctly. Furthermore, the TA may
test your lab using other input.
- Documentation and programming style: Your code should be
documented and written in a
professional, consistent, understandable style.
Every assignment should include a "README" document or web
hierarchy that the TA can easily use to determine
- How to compile & run your program
- The general structure and any non-obvious aspects of your
- The testing strategy utilized for your program
- Any deficits in your program (you will lose less credit if a
problem is documented than if it is discovered by a TA.
- Late policy: Unless announced otherwise, lab grades will decay 20% each week
they are late. Labs will not be accepted after the last day of
classes unless special arrangements have been previously made.
- Grading rubric (general):
- 4 point scale:
- 0: irrelevant work
- 1: a tiny bit of understanding or mastery demonstrated
- 2: good try, shows some understanding, but wrong
- 3: mostly right (likely B)
- 4: perfect (likely A)
- 5: spectacular, extraordinary, shows professionalism well
beyond what is expected.
- separate scores for
- following instructions properly (submitted properly, solved
correct problem, used proper tools)
- functions correctly (programmed correctly)
- appropriate algorithm
- well documented, readable, easy to use
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
- Standards of Conduct:
Students are expected to conduct
themselves in a professional and
courteous manner, as prescribed by the Standards of Conduct:
Graded work should be unmistakably
your own. You may not transcribe or copy a solution taken from
another person, book, or other source ( e.g., a web page).
Copying other's work will
not be tolerated. Professors are required to report
academic dishonesty and any other
violation of the Standards of Conduct to the Dean of Students.
- Permitted collaboration:
Students may discuss requirements, background information, test sets,
and the output of their programs. However, implementations and
documentation must be prepared individually.
- If academic dishonesty is suspected:
receive an incomplete for the lab, and
your case will be referred to the Dean of Students for
adjudication. The Dean of Students has published a website with
complete details concerning the
UTEP Academic Honesty policy at the following arcane URL:
Overall course grading: Grades will be determined from
- Class participation (see below)
- Frequent in-class quizzes
- Lab assignments
Lab & exam grades have a large influence on final grade.
Quizzes & class participation have a lower influence.
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 provide answers, 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
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.