mid01 -...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: CS
6420

‐
Midterm
‐
Winter
1999

 Prof.
Schwan

 


 YOUR
NAME:

 


 Closed
book,
closed
notes.

 


 


 1)
Short
questions:

25
mins.
(Questions
marked
with
*
have
more
weight)

 
 a.
By
giving
some
concrete
examples
of
OS
functionality,
explain
the
difference
between
 monolithic
kernels
and
microkernels.

 
 b.
 Define
 ‘Events’
 in
 SPIN,
 describe
 why
 they
 are
 important,
 and
 how/why
 their

 performance
is
important
to
that
of
the
SPIN
kernel
itself.

 
 c.
 Contrast
 the
 notion
 of
 ‘strand’
 in
 SPIN
 with
 that
 of
 ‘Processor
 Context’
 in
 the
 Aegis

 operating
system
built
on
Exokernel.

 
 d.
 The
 Microkernel
 paper
 by
 Liedtke
 describes
 a
 number
 of
 specific
 techniques
 for
 specific
 machines
 to
 turn
 what
 are
 thought
 of
 as
 ‘expensive
 kernel
 operations’
 into
 cheap
 ones.
 Examples
 include
 address
 space
 switches,
 thread
 switches
 and
 IPC,
 on
 Pentium
or
PowerPC
processors.
Describe
at
least
one
such
technique
in
some
detail.

 
 e.
 Try
 your
 best
 to
 argue
 that
 the
 ‘Cache
 Affinity’
 model’s
 assumptions
 are
 inappropriate,
for
the
target
machines
addressed
by
this
paper.

 
 *f.
 Define
 the
 ‘scheduler
 activation’
 abstraction.
 Next,
 define
 the
 ‘continuation’

 abstraction.
 Then
 comment
 on
 what
 you
 consider
 these
 two
 abstractions
 to
 have
 in

 common.

 

 


 


 2)
Design
question.
(25
mins.)

 
 You
 are
 designing
 a
 flexible
 threads
 scheduler,
 assuming

 that
 you
 already
 have
 available
 to
 you
 the
 scheduler
 activation
 abstraction.
 However,
 you
 are
 unhappy
 with
 the
 current
 definition
 of
 scheduler
 activation,
 as
 the
 kernel
 currently
 only
 uses
 it
 to
 allow
 your
 application
 to
 schedule
 one
 new
 thread
 at
a
 time,
 thereby
frustrating
your
efforts
to
build
co‐scheduling
support.

 
 (a)
Describe
the
type
of
coscheduling
support
you
wish
to
implement.

 
 
 *(b)
 Generalize
 the
 notion
 of
 scheduler
 activation
 to
 support
 co‐scheduling,
 by
 describing

 

 (b.1)
 the
 data
 structure
 used
 by
 the
 kernel,
 


 (b.2)

 the
 actions
 the
 kernel
 takes
 upon
 thread
 completion
 or
 blocking,
 and

 


 (b.3)
 the
 interactions
 of
 the
 kernel
 with
 your
 user‐level
 co‐scheduler.

 
 DO
NOT
WORRY
about
describing
your
user‐level
co‐scheduler
in
detail,
just
indicate
the

 type
of
co‐scheduling
you
wish
to
do
(see
a)
above).

 
 (c)
Discuss
your
design,
particularly
by
commenting
on
how
it
may
interact,
if
any,
with
 the
threads
synchronization
support
offered
by
your
kernel.

 
 


 


 


 


 
 ...
View Full Document

This note was uploaded on 10/06/2010 for the course CS 6210 taught by Professor Staff during the Fall '08 term at Georgia Tech.

Ask a homework question - tutors are online