(Are you looking at a stale web page? Try refreshing your browser.)

( Latest Revision -- Mon Oct 25, 2004 )
(Oct 25: added homework assignments 4-5)

Homework Problems for CS 3750

Doing the homework will be likely to raise your course grade by one full letter grade (e.g. from C to B, or from B to A).

Directions for homework submissions

You'll get good grades on the homework if you show mastery of the material. Give thoughtful and complete answers. Explain your answers so as to demonstrate and prove to a skeptical reader that they are correct.

Put things into your own words. Do not copy, quote, or closely paraphrase the textbook or other people's writings.

Write so as to be understandable to a certain intended readership -- an intelligent person who has completed the prerequisites for CS 3750 but who has not yet taken CS 3750.

If I don't feel that what you write is understandable to that audience then you will lose substantial credit.

You will need to keep an extra copy of everything you turn in. Homework will typically be due on the class day just prior to a quiz day. I will discuss answers to the homework immediately after collecting it. You will not receive graded homework back until sometime after you take the quiz.

Form and Format

Send e-mail to: john@ishi.csustan.edu

Homework Assignment #1.

Due Thursday, September 16

Chapter #01 -- Introduction Chapter #02 -- Computer System Structures
  1. The HAL 3000 computing system has a primary memory X and a secondary memory Y. HAL also has a cache C that it uses to reduce the average time required to move a word of data from Y to X. Write a pseudo-code algorithm for a function read(A, B) that places a copy of the word at address B in Y into the word at address A in X. (Your algorithm does not have to be very detailed, but it is important that you show you understand how to properly select and sequence the cache-maintenance actions and the memory-transfer actions.)

  2. The summary section of the second chapter states: "Multiprogramming and time-sharing systems improve performance by overlapping CPU and I/O operations on a single machine." Suppose that initially in such a system there is no I/O occurring and a program of one user is executing in the CPU. What chain of events would typically change that situation into one where a program of one user is executing in the CPU and I/O in behalf of a different user is occurring simultaneously? When you answer this, don't skimp on details. Show me that you learned the information in the text that applies here.
Chapter #03 -- Operating System Structures Chapter #04 -- Processes
Homework Assignment #2.

Due Tuesday, October 5

Chapter #05 -- Threads Chapter #06 -- Scheduling
Homework Assignment #3.

Due Tuesday, October 26

Chapter #07 -- Process Synchronization Chapter #08 -- Deadlocks
Homework Assignment #4.

Due Thursday, November 18

Chapter #09 -- Memory Management Chapter #10 -- Virtual Memory
Homework Assignment #5.

Due Tuesday, December 07

Chapter #11 -- File-System Interface Chapter #15 -- Distributed System Structures Chapter #16 -- Distributed File Systems Chapter #17 -- Distributed Coordination