(Latest Revision -- 10/26/2001)
(10/26/2001: Assigned HW #4)
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.
Format
- Everything except source code (including "psuedo-code"):
Turn in hard copy. Double space. Make margins of between 1" and
1-1/4" on sides, top and bottom. Use a font size from 10 to 14.
(I prefer a fixed-width font.) Turn in the printout at the
beginning of class on the due date.
- Source code: Turn in a neat, compilable copy by e-mail.
No attachments, please. No more than 70 characters per line.
The e-mail must be sent before midnight on the due date.
Send e-mail to: john@ishi.csustan.edu
Homework Assignment #1.
Due Monday, September 17
Chapter #01 -- Introduction
- Based on your reading of the first chapter, write a concise essay
describing the important functions and responsibilities of a
modern time-sharing operating system. Write 500 words or more.
Chapter #02 -- Computer System Structures
- 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.)
- 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
user-program is executing in the CPU. What chain of events would
typically change that situation into one where a user-program is
executing and I/O 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.
Homework Assignment #2.
Due Monday, October 01
Chapter #03 -- Operating System Structures
- For each of the indicated system calls in the list below, write a
few sentences summarizing what tasks the operating system might
have to perform to implement the system calls.
(For example, creating a file would require that an entry be
placed in some directories or tables on the disk, perhaps some
allocation of disk blocks.)
Try to be thorough and include enough plausible detail. I think
basically you need to consider what resources have to be
allocated/deallocated and what kinds of records are required to
keep track of the changes.
Remember your intended audience -- the student who has the
prerequisites for this course. Make your answer undestandable
and enlightening to your audience.
It is to be understood that there is no one correct way to
implement a system call.
- load process
- open file
- request device
- set process attributes
- delete communications session
Chapters #04 & #05 -- Processes and Threads
- Write a small essay in your own words on the topic of
programs, processes, and threads. Concentrate on defining
each of the three concepts, and on clarifying the
similarities and differences among them. Use information
distilled from your readings of chapters 4-5, and add
whatever else you think will be helpful. (Keep in mind the
"intended readership" described in the directions above.)
Homework Assignment #3.
Due Wednesday, October 17
Chapter #06 -- Scheduling
- Do problem 6.3 on page 185 (this involves making Gantt
charts and calculating measures of the performance of
several scheduling algorithms).
Chapter #07 -- Process Synchronization
- Do the problem in the file
hymanProb.html
in this directory. Please take note of the example
"scenario" described in the problem statement. Make sure
that the solution you construct is the same kind of specific
and detailed scenario.
Homework Assignment #4.
Due Friday, November 09
Note: I will collect this homework on Friday, November 09 and
then I will immediately discuss the answers. However, I will not
pass back the homework until after you take your exam on
Wednesday, November 14, or later. I advise you to make a second
copy of the homework, take notes on Friday when I discuss the
solutions, study from the copy and notes over the weekend (also
study from other review materials), and then come in on Wednesday
and take the exam. (Monday, November 12 is a holiday.)
Chapter #08 -- Deadlocks
- pp. 269; #8.13 (same as problem 7.13 in the fifth edition)
Chapter #09 -- Memory Management
- pp. 313-315; #9.5, 9.10, 9.16 (same as problems 8.5, 8.10,
and 8.16 in the fifth edition)
Chapter #10 -- Virtual Memory
- pp. 364--368; #10.3, 10.5, 10.10, and 10.18 (same as
problems 9.3, 9.5, 9.10, and 9.18 in the fifth edition)
NOTE: The statement of problem #10.10 may be confusing. To
clarify: there is only a total of three page frames available to
the process. One of the frames contains the code. The other two
frames are available to hold pages of the array data.