CSE 221 Homework 1
Due: Thursday, October 13, 2016 at the
start of class (8am)
Answer the following questions. For questions asking for short
answers, there may not necessarily be a "right" answer, although some
answers may be more compelling and/or much easier to justify. But I
am interested in your explanation as much as the answer itself. Also,
do not use shorthand: write your answers using complete sentences.
- Operating systems go to great lengths to provide isolation and
protection among processes executing on the system. Process
debugging, however, represents a necessary, interesting feature that
is made more difficult by process isolation and protection, and
requires support from the operating system to function correctly.
To the extent possible and where appropriate, when answering the
following questions support your answers with approaches for debugging
support found in the papers you have read to this point (e.g., Tenex,
Lampson Protection, Pilot).
- Why must a traditional operating system like Unix explicitly
provide support for process debugging?
- List two distinct operations that a debugger must perform that
require support from the operating system.
- Because processes are protected and isolated from each other,
operating systems must also provide support for communication and
coordination among processes. Why can't debuggers just use the
support that operating systems already provide for process
communication and coordination?
- Do language runtime environments like Java and Perl require
operating system support for debugging programs in those languages?
Why or why not?
- When working on an operating system, developers also need
to use a debugger on the operating system itself. Why is debugging
the kernel of an operating system more challenging than debugging a
user-level process? What is one option for where to run a kernel
- Plan 9 used a three-tier storage model. The third tier, an
optical write-once read-many jukebox, was used for daily dumps of the
entire file system — and no data was ever deleted. Hard disk
and memory were used solely as caches to data stored on the jukebox.
At this point in time, their experience was that capacity was not an
issue: "Technology has created storage faster than we can use it." Do
you think that this model — daily snapshots and no data ever
deleted, while never exceeding economical storage capacity — is
appropriate today (using any storage technology for the third tier)
for department/enterprise groups (as in their installation, or in our
department)? For home users? For Internet services like Google,
Yahoo!, Bing, Facebook, etc.?
- The Multics paper set out a set of principles regarding operating
system design. For each of the five principles, explain how the design
of Multics attempted to address them. For example, we discussed in
class how Multics used explicit permission bits in the segment
descriptors to ensure that the virtual memory hardware enforced the
privileges established by the associated ACL at each memory access.
Additionally, discuss how—or if—they are addressed in both Hydra and
Last updated: 2017-07-27 15:52:12 -0700