COSC 633 Advanced Operating Systems

Last modified: "September 28, 2017 14:14:20 by evett"

Instructor: Matthew Evett

TTh 4:00-5:15 PM.
Room: PH 514.

Look for the symbols below, indicating new material!

Course Syllabus


Textbook: Silberschatz & Galvin, Operating System Concepts with Java , Wiley, 2007.

Lecture Notes (warning, these are somewhat dated!)

  1. The Coffee and Tea code (multi-threading)
  2. Chapter 7, Process Synchronization
  3. Chapter 8, Deadlocks
  4. Running an RMI program
  5. Perl Tutorial
  6. Perl Reference
  7. Perl notes from class

Assignments

To submit assignments, go to http://caddis.acad.emich.edu/~hwmatt/student/

Notes on assignments, in general:

See the page on Stylistic Suggestions for programming assignments, here. Programming and other assignments should be completed by each student on their own. It is expressly forbidden for students to collaborate on assignments without the express permission of the instructor. A few friendly pointers and a bit of advice is fine, but "borrowing" or copying another's work is grounds for punitive action, including a failing grade and possible expulsion from the University.

See this page for pointers to various programming reference guides.

Grading of programming assignments

As specified in the course syllabus, program functional correctness accounts for only about 80% of the grade assigned to a program. The remainder of the grade accounts for the program's style (including header and in-line comments, indentation, identifier names) and design (how you decompose the solution, what classes you use, etc.) A fuller description of stylistic and design requirements is here.

Programming Environment

While students may certainly use their own PCs to develop and test their programming assignments, the final version of the programs must be executable on the department's Unix workstations. We will examine how to ensure this during the course.

All programming projects shall be written in Java, using only the libraries explicitly permitted by the instructor.

If you'd like to use a Unix-like shell-based environment on your Windows machine, try installing cygwin.


Java

To obtain Java, go to Sun's site. You want to download SDK2, v1.6 onto your PC. (Another name for this is JDK2.1.) If you are using a Mac, you may have to download an earlier release of the JDK. Follow the installation directions! (You will have to set your DOS PATH variable.) Keep track of which directory you install the JDK into. You'll need to know that when you set up BlueJ (see below).

With Java installed, you may want to download the SDK documentation, too.

After you've got that downloaded and installed, you may want to download BlueJ, a simple Java IDE. You can get the download as shareware. Once BlueJ is downloaded and installed, go ahead and run it.

Okay, now let's look at some code. Download the code examples from Horstman and Cornell's book, Core Java. This is a zip file, which you should decompress. Now, cd into v1ch2/Welcome, and use TextPad to open Welcome.java. From within TextPad, use Tools:Compile Java to compile the file (forming Welcome.class), then run it using Tools:Run Java Application.

Core Java source code