CIS381 - Operating Systems Lab Course

Fall 2008

 
Announcements:
  • The second project is now available. It is due December 5th at 6pm. See below for project 2 resources.

 

Co-Instructors

  • Sandy Clark
    saender[at]seas.upenn.edu
  • Micah Sherr
    msherr[at]cis.upenn.edu

Teaching Assistants

  • Adam Aviv
    aviv[at]cis.upenn.edu
  • Elizabeth Schmutter
    eschmutt[at]seas.upenn.edu
  • Gaurav Shah
    gauravsh[at]cis.upenn.edu
  • For office hours, see the CIS380 page.

    For fastest response, please direct your emails to cse381@seas.upenn.edu.

     

    Time and Place

    Recitations are held every Tuesday from 6-7pm in Towne 321.

     

    Course Description

    This course is the lab component of CIS380 (Operating Systems), taught by Prof. Matt Blaze. This course consists of two large projects to design and implement your own operating system. Typical components include a process management system, a command interpreter, and a file management system.

    Throughout the semester, we will hold regularly scheduled lectures/tutorials relating to topics discussed in CIS380. We will cover tools and techniques that will be invaluable for completing the assignments. A brief outline of the tutorials is presented below.

     

    Course Resources

    We will periodically post messages to this webpage and to the class listserv. These messages may contain crucial information (e.g., clarifications, explanations, changes, etc.). Students are expected to check these resources to keep up-to-date.

    Recommended text: Advanced Programming in the UNIX Environment, Second Edition by W. Richard Stevens and Stephen A. Rago. We will assign weekly readings from this text. The book is available for online browsing at the above link, but we recommend a hardcopy, as this book will be an invaluable resource in your future career as an OS developer.

    Unlike prior years, we will not be using a class newsgroup. Instead, we will use an email listserv to which you will be subscribed. This will likely be a very high volume listserv (particularly when close to project deadlines), so you may want to set up some mail filters. You are expected to read all messages posted to the listserv. In particular, we will make announcements to the class listserv. The listserv is a very important resource for you. We encourage (and expect) you to post comments, requests for clarifications, etc. to the listserv.

    Please direct course-related emails to cse381@seas.upenn.edu. Emails sent to this address will reach the entire teaching staff, and will increase your chances of getting a fast response.

    We require that students complete their assignments on seas.upenn.edu. seas (formly eniac-l) is a cluster of computers running the Linux operating system. We will not accept code written specifically for SunOS (the operating system that powers eniac-s.seas.upenn.edu). Please contact CETS if you do not already have access to the eniac cluster.

     

    Cheating Policy

    Cheating will not be tolerated. All students at Penn are bound by the University's Code of Academic Integrity. The Code reads as follows:

    Activities, that have the effect or intention of interfering with education, pursuit of knowledge, or fair evaluation of a student's performance are prohibited. Examples of such activities include but are not limited to the following definitions:

    A. Cheating: using or attempting to use unauthorized assistance, material, or study aids in examinations or other academic work or preventing, or attempting to prevent, another from using authorized assistance, material, or study aids. Example: using a cheat sheet in a quiz or exam, altering a graded exam and resubmitting it for a better grade, etc.

    B. Plagiarism: using the ideas, data, or language of another without specific or proper acknowledgment. Example: copying another person's paper, article, or computer work and submitting it for an assignment, cloning someone else's ideas without attribution, failing to use quotation marks where appropriate, etc.

    C. Fabrication: submitting contrived or altered information in any academic exercise. Example: making up data for an experiment, fudging data, citing nonexistent articles, contriving sources, etc.

    D. Multiple submission: submitting, without prior permission, any work submitted to fulfill another academic requirement.

    E. Misrepresentation of academic records: misrepresenting or tampering with or attempting to tamper with any portion of a student's transcripts or academic record, either before or after coming to the University of Pennsylvania. Example: forging a change of grade slip, tampering with computer records, falsifying academic information on one's resume, etc.

    F. Facilitating academic dishonesty: knowingly helping or attempting to help another violate any provision of the Code. Example: working together on a take-home exam, etc.

    G. Unfair advantage: attempting to gain unauthorized advantage over fellow students in an academic exercise. Example: gaining or providing unauthorized access to examination materials, obstructing or interfering with another student's efforts in an academic exercise, lying about a need for an extension for an exam or paper, continuing to write even when time is up during an exam, destroying or keeping library materials for one's own use., etc.

    * If a student is unsure whether his action(s) constitute a violation of the Code of Academic Integrity, then it is that student's responsibility to consult with the instructor to clarify any ambiguities.

    Ignorance of the integrity code is not an excuse. If you have a question regarding whether something is permissible, ASK US. Otherwise, be conservative.

    Our policy is simple: If you are caught cheating, we will report you to the Office of Student Conduct. No exceptions.

     

    Tutorials

    The first 381 tutorial/recitation will be held today, Tuesday Sept. 9th in Levine 307 at 6pm. A more permanent location will be announced shortly.

    Tutorial slides will be posted here shortly after the tutorial.

    LectureTopics Covered
    1 Intro. C in 60 minutes. (slides)
    2 Processes, Shells, Redirection and Job Control (slides)
    3 Piping and Advanced Signals (slides)
    4 Subversion (slides)
    5 User contexts and source code management (slides)
    6 File Systems (slides)

     

    Assignments

    There will be two short homeworks and two programming projects for this class. The first project is an individual assignment while the second is a group project. Additional information regarding the assignments will be posted on this page later in the semester.

    Homework 2 is now available. It is due at 6pm on September 25th.

    Homework 1 is now available. It is due at 6pm on September 16th.

    Project 1 is now available. It is due at 6pm on October 10th.

    Project 2 is now available. It is due at 6pm on December 5th.

    Project 2 resources:

     

    Grading

    Each of the two homework assignments is worth 10% of your final grade. The better of the two projects is worth 45%, the worse is worth 35%. We will take class participation into account for borderline grades.

     

    Advice that may save your sanity

    CIS381 has a reputation of being a very hard class. However, this isn't entirely correct. The material is not exceptionally difficult. However, compared to the projects you may have completed for other courses, the CIS381 assignments do take a substantial amount of time. The following advice may be helpful:

  • The programming projects require a lot of time, so plan accordingly. Start early. Divide your project into smaller pieces and make a realistic timeline for completing these tasks.

  • Don't blindly write 10,000 lines of code without compiling and testing small components. Write small test-case programs to check your programming logic.

  • Carefully comment your code as you write it. You'll have to do this later anyways. Especially for group projects, well-commented code leads to more efficient software development.

  • Attend the lectures. The material discussed in the lectures are very relevant to the assignments.

  • Don't lose touch. Read messages posted to the listserv and this web page for important announcements, corrections, etc.

  • Be smart when choosing your teammates for the group project. Your best friend is not necessarily the best choice (if s/he's a slacker, then s/he probably won't be your friend by the project's due date). Work with people who are reliable.

  • Don't cheat and don't tolerate cheating by your group members. The consequences of doing so are quite serious. At a minimum, you'll get an F for the course. At worst, well... Just don't cheat.

  • Don't panic. Use the class resources that are available to you. Talk to one of the TAs or a co-instructor.

  • Page last updated: October 22nd, 2008