(Are you looking at a stale web page? Try refreshing your browser.)
(
Latest Revision --
November 13, 2008
)
[11/13/08: Inserted HW #4]
[10/14/08: Inserted HW #3]
[09/16/08: Inserted HW #2]
Homework Problems for CS 3750
If you do a good job on the homework, you'll do better on tests. It's likely
to raise your course grade by one full letter grade or more (e.g. from C to B,
or from B to A).
Directions for homework submissions
When you do the homework, show mastery of the material. Leave no doubt
that you know what you are talking about. 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.
Keep an extra copy of everything you turn in. Homework will typically be due
on the class day just prior to a test day. I will discuss answers to the
homework immediately after collecting it. You will not receive back the
homework paper you give me until sometime after you take the test.
Form and Format
- Everything except source code (including "psuedo-code"): Turn in a
hard copy. Put it on the 'counter' in front of me before the beginning
of class on the due date. DOUBLE SPACE and make
margins of between 1" and 1-1/4" on sides, top and bottom - so
I'll have room to write comments. Use a font size from 10 to 14. (I
prefer a fixed-width font.)
- Source code: Turn in neat, compilable code. No more than 70
characters per line. Turn in one hard copy and one e-mail copy. Put the
hard copy on the 'counter' in front of me before class starts. Send the
e-mail before midnight on the due date. Do not send attachments. Just
put the text in-line into the message.
Send e-mail to: john@ishi.csustan.edu
DUE DATES
For all homework due dates, see:
the class schedule.
WARNING ABOUT PROBLEM NUMBERS
If you have an old edition of the textbook, or even a foreign version of the
current edition, then the problem numbers in your book may not correspond
exactly to those in the official course text. It is your responsiblity to
make sure you work the right problems.
Homework Assignment #1
Chapter #01 -- Introduction
- Write 250 words or more describing the interplay between
operating system software and the interrupt mechanism. In your writing
show that you understand A) how interrupts "drive" the actions of the
operating system, and B) how the interrupt mechanism in a modern
computing system actually works (what hardware devices do to cause an
interrupt and the sequence of events that take place between the time
that the currently running program is interrupted and the time that
program resumes execution).
Chapter #02 -- Operating System Structures
- Using information gleaned from chapters one and two, write 500 words or
more describing the important functions and responsibilities of a modern
multi-user, time-sharing operating system.
- Using information from section 2.7 write 250 words or more describing
several different approaches to designing operating system structure.
Discuss the advantages and disadvantages of each approach.
Chapter #03 -- Processes
- Write 250 words on the topic of programs and processes. Define what a
program is and what a process is. Explain what the
differences and similarities are between the two concepts. Explain
and/or speculate on what operating system data structures must be
employed in order to maintain and preserve a program. Answer the
same question for a process. Give attention to similarities and
differences regarding the data structures too. Use information distilled
from your readings of chapter 3 to help you answer this question, and add
whatever else you know that you think will be helpful. (Keep in mind the
"intended readership" described in the directions above.)
WARNING ABOUT PROBLEM NUMBERS
If you have an old edition of the textbook, or even a foreign version of the
current edition, then the problem numbers in your book may not correspond
exactly to those in the official course text. It is your responsiblity to
make sure you work the right problems.
Homework Assignment #2
Chapter #04 -- Threads
- Rewrite the essay you wrote in answer to the question for chapter #03.
The directions are the same except that this time you must cover three
concepts: program, process, and thread. In addition
to adding information about threads, since you know more now you should
be able to improve on what you said before about programs and processes.
Chapter #05 -- Scheduling
- Do problem 5.4 on page 187 (this involves making Gantt charts and
calculating measures of the performance of several scheduling
algorithms).
- Do problem 5.7 on page 188. (The problem starts with:
"Consider a system running ten I/O-bound ...")
Chapter #06 -- 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.
- Propose a solution to
the following variation on the "readers-writers problem" which is
described in section 6.6.2 of the text: readers and writers must be given
access to the [database] resource in the order in which they request it.
Readers share the resource to the greatest extent possible. Each writer
accesses the resource exclusively.
Write up the proposed solution using the same format as figures 6.12 and
6.13 (and the declarations of shared variables above figure 6.12). In
other words write pseudo code that shows what the shared variables are,
pseudo code for writer processes, and pseudo code for reader processes.
Also, like the solution shown in figures 6.12 to 6.13, use only
semaphores for synchronization.
Assumptions:
- The total number of readers and writers does not exceed some fixed
bound N.
- You can declare and use as many semaphore variables as you need.
- The semaphores work as defined in 6.5.2
- The list S in each semaphore is a FIFO queue.
In addition to enforcing exclusive writes and allowing shared reads, your
solution should be starvation free, and satisfy the progress & bounded
waiting requirements for solutions to critical section problems. (See
section 6.1.)
WARNING ABOUT PROBLEM NUMBERS
If you have an old edition of the textbook, or even a foreign version of the
current edition, then the problem numbers in your book may not correspond
exactly to those in the official course text. It is your responsiblity to
make sure you work the right problems.
Homework Assignment #3
Chapter #07 -- Deadlocks
- Do problem #7.11 on page 270. (The problem starts with: "Consider the
following snapshot of a system ...") Show all your work (in detail). Use
the same kind of
format you see here.
Chapter #08 -- Memory Management
- Do problem 8.3 on page 310 (It starts "Given five memory partitions ...
").
- Remember the possibility of using holes created
by previous allocations),
- Assume that for each allocation, the first-fit algorithm starts its
search again at the beginning of the list.
- Do problem 8.5 on page 311 (It starts: "Compare the main memory
organization ..."
- Do problem 8.9 on page 311 (It starts: "Consider a paging system with the
page table stored in memory."
- Do problem 8.12 on page 312 (It starts: "Consider the following segment
table"
WARNING ABOUT PROBLEM NUMBERS
If you have an old edition of the textbook, or even a foreign version of the
current edition, then the problem numbers in your book may not correspond
exactly to those in the official course text. It is your responsiblity to
make sure you work the right problems.
Homework Assignment #4
Chapter #08 -- Memory Management
- Do problem 8.3 on page 310 (It starts "Given five memory partitions ...
").
- Remember the possibility of using holes created
by previous allocations),
- Assume that for each allocation, the first-fit algorithm starts its
search again at the beginning of the list.
- Do problem 8.5 on page 311 (It starts: "Compare the main memory
organization ..."
- Do problem 8.9 on page 311 (It starts: "Consider a paging system with the
page table stored in memory."
- Do problem 8.12 on page 312 (It starts: "Consider the following segment
table"
Chapter #09 -- Virtual Memory
- Do the following problem. Show all work in detail.
A virtual address of 76543656 (hex) appears in a program that is being run on
a computer that does demand paging. The computer has 24-bit physical
addresses, 32-bit virtual addresses, and a 1K-word page-size. How many
physical frames are there? How many virtual pages are there? What are the
page number and the offset corresponding to the virtual address? (Give the
last two both in hex notation and decimal notation.)
- Do problem 9.5 on page 366 (It starts: "Assume that we have a
demand-paged memory. The page table is held in registers. ...").
Chapter #10 -- File-System Interface
- Do problem 10.1 on page 408 ("Consider a file system where a file ...")
- Do problem 10.9 on page 409 ("Some systems provide file sharing by ...")
Chapter #11 -- File-System Implementation
- Do problem 11.2 on page 447 ("What are the advantages of the variant
...")
- Do problem 11.5 on page 448 ("Discuss how performance optimization ...")
- Do problem 11.6 on page 448 ("Consider a file system on a disk that has
...")
Chapter #12 -- Mass-Storage Structure
- Do problem 12.2 on page 489-490 ("Suppose that a disk drive has 5000
...")
- Do problem 12.15 on page 492 ("Discuss the relative advantages and ...")
- Do problem 12.21 on page 493 ("Suppose that a one-sided 5.25-inch
optical-disk ...")