CMPS 111: Introduction to Operating Systems

Useful and Required Tools and Techniques

These are tools that you must use in implementing and submitting your solutions to the programming assignments.

Tools and Techniques

In implementing your programming assignments, you must use the following:
  1. Design documentation - each program must be accompanied by a DESIGN file that explains your design. In particular, it must explain how you have addressed each of the items in the assignment. Design documents are written before the code itself. You cannot do a good job on the code if you do not understand the problem beforehand.

    Your design document (called DESIGN) should describe the design of your assignment. This includes descriptions of the data structures you're going to use, the algorithms, and a description of each function including its purpose, inputs, outputs, and assumptions it makes about the inputs or outputs. The file should be in the project directory with the code

  2. Good coding style - your programs must exhibit good programming style as spelled out in the class style guidelines. That includes good comments, spacing, indentation, identifiers, etc.

  3. man - use man frequently to figure out how the various system programs and functions work

  4. Makefiles - Your code you write must live in at least 2 different files. Compilation must be accomplished via a makefile that you create. Your makefile must support "make clean" which removes the executable and .o files.

  5. RCS - You must use RCS to do revision control on your files. All major versions must be checked in, with appropriate comments. A major version is any version that adds significant functionality or fixes a major bug.

  6. Project directories - the code must be implemented in its own directory that contains all and only the code associated with this project.

  7. tar - use tar to collect everything into one file for submission.

  8. compress - use compress to shrink the tar file before submitting it. Concepts: File compression.

  9. submit and peek - electronic submission of assignments. Instructions will be provided on using submit. You must correctly submit your code before the deadline. Use peek to verify that you have submitted it correctly.

  10. emacs or xemacs - you are expected to use emacs for this and all assignments in this class. There is no substitute for emacs when doing programming. Pico, vi, Microsoft word, etc. are lousy substitutes. If you do not already know emacs, you must learn it this quarter.

  11. indent - indent is an excellent tool for cleaning up bad indentation. It is not a substitute for doing a good job in the first place, but it is better than submitting poorly indented code and losing a lot of points.

  12. Return values - you must always check and handle all return values, including errors that are unlikely to ever occur.

  13. What to turn in - For each programming assignment, you must turn in a compressed tar file of your project directory, including your design document. You must do "make clean" before creating the tar file. DO NOT submit .o, .s, or executable files. You will lose 5 points for each such file that you submit.