Study questions, Systems Area
MS Comprehensive In CS


Back to MS Comps home page

S 300

PART A: (50%)
Design a software subsystem that displays time in a digital or analog 
format using object-oriented design patterns. In the system there exists a 
class ClockTimer whose objects are suppose to store and maintain the time 
of day. This class supports the following operations: Tick, GetHour, 
GetMinute, and GetSecond. The Tick operation is called by an internal 
timer at regular intervals. Tick operation updates the ClockTimer's 
internal state (time data structure). Operations GetHour, GetMinute, and 
GetSecond provide the interface for retrieving individual time units such 
as an hour, a minute, and a second. The design should contain two classes: 
DigitalClock and AnalogClock whose objects are suppose to display the 
time in digital and analog format, respectively. Provide a class model for 
the system using the existing object-oriented design patterns. The class 
model should include classes ClockTimer, DigitalClock and AnalogClock 
(if necessary introduce new classes and operations). For each new class list 
operations and describe their functionality.

PART B: (50%)
Describe the following fault-tolerant software architectures: N-version 
architecture and Recovery-Block architecture. Compare both architectures.


S 301

     (a) With respect to routing in networks define the following:

     i.  the optimality principle.

     ii.  sink tree.

     iii.  shortest path routing.

     (b) Given the network shown below;

       A            B            C
       +______1_____+______3_____+
       |            |4           |4
       |2         D +          E +
       |            |3           |1
       +____________+____________+
       F      3     G      1     H

     i.  Show the steps in computing the shortest path from B  to  H  using
Dijkstra's algorithm.

     ii.  Draw the sink tree for  F  using  shortest  path  routing.   What
method do you use for breaking ties?

     iii.  Create the routing table used by B.  Explain the entries.

     iv.  Explain what happens if link BC fails.

 

S 302

The mean number of customers N in a system can be described by

                    N = rho/(1-rho)

     where
           rho is the ratio y/u
           y = arrival rate in customers per second
           u = service rate in customers per second

     Little`s result, N = yT, can be derived from above.
                                                              



(a)   Show how the formula Ti = 1/(uCi-yi) is derived from 
      Little`s result.
   Ti includes both queing and transmission time for channel i
   yi is arrival rate for channel i
   Ci is communication capacity in bits per second of channel i
   Probability density function for packet size, x, is ue^(ux)
            with a mean of 1/u bits/packet

(b) Two tables are provided:  (1) A string of random numbers, and
    (2) A table of values of -(ln Y) vs X. (This table permits 
    you to map random numbers with even distribution into numbers
    with exponential distribution. Interpolate where necessary).

    Assume a transmission speed of 9600 bits per second, an arrival
    rate lambda of 7 packets per second, and a mean packet size
    of 960 bits. Calculate and list the arrival time and the length
    of 8 packets assuming a starting time of 0 milliseconds. Assume
    an M/M/1 system.

(c) What is the mean delay, in your simulation, for the packets to
    reach the second computer? (Disregard the propogation delay).

(d) What is the mean length of the queue during your simulation?

(e) Compare the results of (c) and (d) with theoretical results
    using the formulae above.

List of random numbers:

0.02   0.28   0.89   0.24  0.89   0.80   0.38   0.59


The following table plots the values of X vs Y where X = -ln(Y)
The first row is Y, the second row is X


                Y              -ln(Y)
               .05               3.0
               .10               2.3
               .15               1.9
               .20               1.6
               .25               1.4
               .30               1.2
               .35               1.0
               .40               0.92
               .45               0.80
               .50               0.69
               .55               0.60
               .60               0.51
               .65               0.43
               .70               0.36
               .75               0.29
               .80               0.22
               .85               0.16
               .90               0.11
               .95               0.05
              1.00               0.00

S 303

Consider the partial implementation of a semaphore given
below:

struct semaphore {
        int count ; /*Current value of Semaphore*/
        queue of processes ; /*Implementation not important here. Holds
                                processes currently blocked on semaphore.*/
        }

struct semaphore S ; /*wait and signal routines (or down and up as in text)*/

wait(S) /*Try and pass through semaphore. Block if necessary.*/

        { S.count-- ;
          if (S.count < 0)
                {place caller on semaphore queue.
                 block process.
                }
        }

signal(S) /*Wake up a blocked process or just inc count if none blocked*/

        {S.count++ ;
         if (S.count <= 0)  /*Some process is blocked*/
                {remove process from semaphore queue.
                 place process on ready queue.
                }
        }

The issue is that wait and signal must be atomic actions. That is,
no process can interfere with the execution of wait or signal once
that execution begins. All instructions must be done as an indivisible
operation (e.g. decrement count, check value, block process if necessary
for wait operation). 

 Make the wait and signal routines atomic 
 
   1) Using the TSL instruction
   2) Using two commands enable_ints and disable_ints,
      which enable and disable all interrupts respectively.

S 304

 Consider the following examples of implementations
 of the wait and signal routines of a semaphore.
 For each one, identify any problems (i.e. race conditions, 
 potential deadlocks, starvation, etc), and offer a solution to 
 the problem if one is found. DO NOT PAIR WAIT AND SIGNAL ROUTINES.
 Each wait and each signal routine are to be considered independently.


Wait routine, example 1 


    int wait_flag = 0 ;


     Wait(S)
      {while (TSL(wait_flag) != 0) ;

       S.count-- ;
       if (S.count < 0)
        { place process in semaphore queue ;
          Block process;
        }

      wait_flag = 0 ;
     }


Wait routine, example 2 

int wait_flag = 0 ;


     Wait(S)
      {while (TSL(wait_flag) != 0) ;

       S.count-- ;
       if (S.count < 0)
        { place process in semaphore queue ;
          Block process;
          wait_flag = 0 ;
        }

      wait_flag = 0 ;

     }


Wait routine, example 3 

 int wait_flag = 0 ;

     Wait(S)
      {while (TSL(wait_flag ) != 0 ) ;

       S.count-- ;
       if (S.count < 0)
        { place process in semaphore queue ;
          Block process;
          wait_flag = 0 ;
        }

      else
         wait_flag = 0 ;

     }


Signal routine, Example 1 

int signal_flag = 0 ;

 Signal(S)

  { while (TSL(signal_flag ) != 0 ) ;

   S.count++ ;

   if (S.count <=0 )

    { remove a process from semaphore queue ;
      place selected process on ready queue ;
      signal_flag = 0 ;
    }

  signal_flag = 0 ;
 }
 


Signal routine, Example 2 

int signal_flag = 0 ;


 Signal(S)

  { while (TSL(signal_flag) != 0 ) ;

   S.count++ ;

   if (S.count <=0 )

    { remove a process from semaphore queue ;
      place selected process on ready queue ;
      signal_flag = 0 ;
    }

  else
     signal_flag = 0 ;
 }


Signal routine, example 3 

int signal_flag = 0 ;



 Signal(S)

  { while (TSL(signal_flag )!= 0 ) ;

   S.count++ ;

   if (S.count <=0 )

    { remove a process from semaphore queue ;
      place selected process on ready queue ;
    }

   signal_flag = 0 ;
 }

S 305

Part 1:

   Assume we have a machine with a 16 bit address, with 6 bits
   for the virtual page number and 10 bits for the offset.
   The architecture has an MMU. Consider the process page
   table for process1 shown below. The only page table
   entry shown is the physical frame number to which the page is mapped.
   An X indicates that the virtual page is not currently
   mapped.

   Assume the CPU generates
   virtual address 4099 (decimal, not hex). Describe exactly what will happen
   from the time the address is generated by the CPU and
   the time the physical address goes out to the address bus.
   What is the physical address generated?



 Process Page Table
   _______
   |      |
   |_10___|
   |      |
   |_X____|
   |      |
   |__X___|
   |      |
   | 3    |
   |------|
   |      |
   | 2    |
   -------




Part 2: 

   Assume the following view of the page frames of main memory.
   An entry in a page frame contains a process ID (in this case
   the processes are just called A,B,C and D), followed by
   the virtual page number of the page residing in the page
   frame. For example, entry A0 in the example
   below indicates that process A's virtual page 0 is mapped to
   physical page frame 0.
   Assume a 16 bit virtual address, with 6 bits for the virtual page
   number and 10 bits for the offset. Show the first 6 page table
   entries for the page tables of processes A,B,C and D. Don't
   worry about any entries other than the physical page frame number
   when the page is mapped and an X when it is not.



Main Memory

 ______________
|             |
|     A0      |
|____________ |
|             |
|     A4      |
|_____________|
|             |
|     B2      |
|____________ |
|             |
|     C1      |
|_____________|
|             |
|     D3      |
|_____________|
|             |
|     D5      |
|_____________|
|             |
|     B0      |
|_____________|
|             |
|     C4      |
|             |
--------------

S 306 (deleted)

 

S 307 (deleted)

 

S 308 (deleted)

 

S 309

Describe  and  compare  the  CISC  and   RISC   approaches   for   computer
architectures.   Give  examples in each class and contrast the differences.
Explain why RISC has spread in the last 5 years, and not  before,  although
early  roots of RISC go back to machines like the CDC6600 and CRAY-1.  Give
details on CISC and RISC design, including at least the following:


        instruction fetch
        instruction decode
        operation fetch
        instruction complexity
        pipelining
        instruction set complexity
        memory addressing
        processor implementation
        HW technology
        compiler technology
        code size and density
        market orientation

S 310 (deleted)

 

S 311

a. (20%)  What is the influence of coupling on
maintenance and reuse?

b. (20%) What is the influence of polymorphism and
dynamic binding on maintenance and reuse?

c. (60%)  Design a software system that controls a
simple microwave oven using object oriented design
patterns.  The microwave oven has three buttons;
START, CANCEL, and TIMER (for simplicity it is assumed
that each time TIMER button is pressed the cooking
time is incremented by a fixed time of 30 seconds).
In addition, the microwave oven has a door that may
be closed or opened.  Provide an object model for
this system.  Your design should be based on one
(or more) of the existing object-oriented design
patterns.  For each class list all class operations
and briefly specify them.  Make the necessary
assumptions for your design.


S 312

a.  (50%) A traditional client-server model is based on  the  request/reply
protocol (one-to-one relationship between a client and a server).  Describe
the  advantages  and  disadvantages  of  such  a   model.    The   extended
client-server  model  supports  one-to-many  relations  (one  client,  many
servers).  Describe  possible  solutions  for  this  model.   Describe  the
advantages and disadvantages of the described solutions.

     b.  (50%) A requirement calls for reading inputs from each of  several
input sources, processing received inputs, and delivering results to one of
several shared output destinations.  The arrival rates of new  inputs,  the
processing  of  a  single  input, and the processing of a single output are
relatively independent suggesting the need  for  some  form  of  buffering.
Select an architectural style for this system and provide its architecture.
Briefly describe the component of the architecture.   Justify  your  design
decisions.


S 313

Discuss each of the following broadcast network contention  protocols  with
respect  to  throughput, delay, difficulty of implementation, and potential
use:

     *Aloha

     *Slotted Aloha

     *CSMA

     *CSMA/CD Please, include the derivation  of  throughput  using  Aloha.
Sketch  the  graphs  of  throughput  versus offered load for Aloha, Slotted
Aloha, and CSMA (with various persistence factors) and refer to  them  when
discussing throughput.

S 314

Given the network shown below:

(a)  Draw the sink tree for node G using Dijkstra's shortest  path 
     algorithm using distance (shown on arcs) as the metric.  Show 
     the use of Dijkstra's algorithm for the path between B and D.

(b)  How  many  packets are transmitted, and what is  the  maximum 
     number of hops, using broadcast routing, from node G using

       (1)  spanning tree
       (2)  reverse path forwarding and
       (3)  flooding.  (Specify  any  contraints on  the  flooding 
              algorithm to reduce the total number of packets.)



                               
                               5
               B ----------------------------- C
             /   \                           /   \
          2 /     \ 2                     3 /     \ 3
           /       \           2           /       \
          A         E ------------------- F         D
           \       /                       \       /
          6 \     / 1                     2 \     / 2
             \   /             3             \   /
               G ----------------------------- H



S 315

Answer the following questions:

1) One key design decision for ATM was whether to use fixed- or
variable- length cells. Let us consider this decision from the point of
view of efficiency. We can define transmission efficiency as,  

                        Number of information octets
        N = ----------------------------------------------------------------
                Number of information octets + number of overhead octets

a)  Consider the use of fixed-length packets. In this case, the
overhead consists of the header octets. Define:  
        L = Data Field size of the cell in octets 
        H = Header size of the cell in octets
        X = Number of information octets to be transmitted as a single message
Derive an expression for N.

b) If cells have variable length, then overhead is determined by the
header, plus the flags to delimit the cells or an additional length
field in the header. Let Hu denote the additional overhead octets
required to enable the use of variable-length cells. Derive an
expression for N in terms of  X, H and Hu.   

c)  Let H=5 and Hu=2. Plot N versus message size for fixed- and
variable length cells.  Comment on the results.

2) One method of transmitting ATM cells is as a continuous stream of
cells, with no framing imposed; therefore the transmission is simply a
stream of bits, with all bits being part of cells. Since there is no
external frame, some other form of synchronization is needed. This can
be  the HEC function. The requirement is to assure that the receiver
knows the beginning and ending cell boundaries and does not drift with
respect to the sender. Draw a state diagram for the use of the HEC to
achieve cell synchronization, and explain its functionality.


S 316

Answer the following questions:

a) Produce a sketch of a typical bridge architecture and, with the aide
of an example, describe its principle of operation. Include in your
description the following terms: forwarding database, bridge learning,
and spanning tree. 

b) In relation to the spanning tree algorithm, explain the meaning of
the following terms: root bridge, root port, designated port.

c) Compare the operation of a transparent bridged LAN and a source
routing bridged LAN in relation to the routing philosophy and the
quality of routes. 

S 317

	Two workstations, A and B, are connected to the same Ethernet 
LAN.  The stations utilize the TCP/IP protocol stack.  Station A 
establishes a FTP connection with station B.  List the sequence of events 
that takablish the connection.  Include SAPs for all the layers involved 
including the MAC layer (make up your own numbers where required).  
Include a diagram showing the stations connected to the LAN and the 
location of the SAPs.


S 318

Assume we have a system with the following characteristics.
	It uses paged memory with two-level page tables
	The page table is paged; its pages have the same size as normal page
	The page-table entry (PTE) occupies 2 bytes.
	The size of the virtual address space is 224.
(a) what three fields is a virtual address composed of?

(b) What is the smallest possible page size so that page table does not
need more than two levels?

(c) considering your answer to part (b), what is the maximun size of
physical memory in this system, if 3 bits are used for protection 
(e.g. valid and read/write permission) in a PTE ?

(d) Now assume that the system also has a cache.
The cache is 4-way set associative.
The cache block size is 32 bytes.
What is the maximun size (in bytes) that the cache be and still allow a
cache search to begin before a TLB access ends?
 

S 319

1) What is a Remote Procedure Call?
2) What is Object Messaging?
3) What are the implementation considerations that would suggest using a RPC 
approach versus MOM?
4)  Compare CORBA versus OLE?
5)  Provide an example on how an Object Stream works.


S 320

1)	Define a two stage, three stage, n-stage client/server architecture?
2)	Can I have a 1 stage client/server architecture?  Explain.
3)	How is concurrency control defined in the CORBA model
4)	What is a persistent object?  What are the three basic persistent data 
services?  Can I use a DDO with a ODBMS?  
5)	What is the function of an Idispatch client?


S 321


LOCK_MANAGER PROBLEM:
CONSIDER THE FOLLOWING LOCK_MANAGER TASK SPECIFICATION: THE
THE LOCK_MANAGER TASK IS RESPONSIBLE FOR CONTROLLING A REASONABLE
SMALL NUMBER OF LOCKS, EACH LOCK IS ASSOCIATED WITH A DIFFERENT 
RESOURCE. A CLIENT MAY REQUEST A LOCK, USE THE CORRESPONDING
RESOURCE, AND THEN RELEASE THE LOCK. THE LOCK_MANAGER IS ASSUMED TO
COMMUNICATE WITH A CLIENT ONLY IF IT IS ABLE TO GRANT CLIENT REQUEST
I.E. ONLY IF THE LOCK REQUESTED IS FREE.

a. DEFINE AVAILABILITY CONTROLS
          RACE CONTROLS

b. CLASSIFY THE SET OF AVAILABILITY CONTROLS
                       RACE CONTROLS.

c. ANALYZE WHICH CONTROLS WOULD YOU NEED IN ORDER TO SIMULATE THE
   LOCK_MANAGER. FOR EACH OF THE  CONTROLS EXPLAIN ITS PURPOSE.

d. CHOOSE A LANGUAGE WHICH WOULD BE MOST SUITABLE FOR SIMULATION
   OF THIS TASK. JUSTIFY YOUR CHOICE.

                                                              


e. IMPLEMENT THE LOCK_MANAGER USING THE LANGUAGE YOU HAVE CHOSEN.

f. IMPLEMENT THE LOCK_MANAGER IN ADA. EXPLAIN YOUR DIFFICULTIES 
   AND SHOW HOW TO WORK AROUND THEM.

S 322


     Producer and consumer problem using a bounded buffer:


     a.  List and explain major concurrent language design issues.

     b.  Describe the producer-consumer problem using a bounded buffer.

     c.  Implement the producer-consumer problem using the language CSP and
explain language design issues which make your implementation difficult.

     d.  Implement the producer-consumer problem using the language Ada  or
the  language  Pascal-Fc.   Explain  language design issues which make your
implementation straightforward.


S 323


Consider the following task segment in Ada


    SELECT

            WHEN b1 ==> ACCEPT service_A ...
        OR
            WHEN b2 ==> ACCEPT service_B ...
        OR
            WHEN b3 ==> ACCEPT service_C ...
        OR
            WHEN b4 ==> ACCEPT service_D ...

    END SELECT

Modify the program to give the highest preference to service_A
the second highest preference to service_B, and the third
preference to service_C and service_D.  (service_C and service_D
both have the same preference).

Do the modification by
    1.  Using nested select statements
    2.  Using the attribute "count"
    3.  Using an added control to the language to allow simple
        expression of preferences.

Compare and evaluate each of the above modifications with
respect to principles of good programming practice that you
know.


S 324


A.  Define and explain the difference between the Local Termination

     Convention and the Distributed Termination Convention.

B.  Give an Ada solution to the ReadersWriters problem with no

     starvation.  The Ada task is supposed to terminate when all

     potential callers have terminated.

C.  Give a CSP solution to the Readers-Writers problem with no

     starvation.  The CSP task is supposed to terminate when all

     potential callers have terminated.  You must use the local

     termination convention only.  (You may assume that there are

     three potential callers P1, P2, and P3.  Each caller sends a

     termination signal to the manager process before terminating

     itself).

S 325


In concurrent programming there are two conventions for task
termination.
a. The Local Termination Convention
b. The Global Termination Convention

A. Explain each of the termination conventions.

B. Simulate a semaphore task assuming the Local Terminaton
   Convention.

C. Simulate a semaphore task assuming the Global Termination
   Convention.

(You may use CSP notation, Ada notation, Pascal-FC notation
or Concurrent-C notation)

S 326


A typical application for Ada tasks is that of
message routing; we may wish to route messages to other tasks
or to physical devices. In a distributed system such a task
would be an actor/server in the sense that it would have
defined entries and would also call the entries of other
tasks. You may assume that the information passed by this
task is of type MESSAGE. A calling task may route a message
to one of three destinations. Additionally, the task may
indicate a preference for the message, with higher preference
messages being serviced first.

You may need the following entities visible to your task:
TYPE PREFERENCE IS (LOW, MEDIUM, HIGH)
TYPE PLACE IS (NEW_YORK, LA, CHICAGO)
You may use three tasks DESTINATION_NEW_YORK, DESTINATION_LA,
and DESTINATION_CHICAGO. Each of these tasks is able to
send a message to the appropriate destinaiton.

Construct the implementation (the body) of the main task
called TRANSMIT.

The specification of task TRANSMIT is the following:

TASK TRANSMIT IS
  ENTRY ROUTED_PREFERENCE (PREFERENCE)
                             (M: MESSAGE; TO: IN PALCE);
END TRANSMIT;

A user calls:
TRANSMIT.ROUTED_PREFERENCE(MEDIUM)
                   (MY_MASSAGE; TO => CHICAGO);

TRANSMIT then accepts the call and calls the appropriate 
DESTINATION task to send the message. TRANSMIT should accept
the messages with respect to their preferences.

S 327


     For this problem we will look at the SAXPY loop.  This loop implements
the vector operation Y = a*X+Y for a vector of length 100.  Here is the DLX
code for the loop:

foo:  LD      F2,0(R1)                ;load X(i)
      MULTD   F4,F2,F0                ;multiply a*X(i)
      LD      F6,0(R2)                ;load Y(i)
      ADDD    F6,F4,F6                ;add a*X(i) + Y(i)
      SD      0(R2),F6                ;store Y(i)
      ADDI    R1,R1,8                 ;increment X index
      ADDI    R2,R2,8                 ;increment Y index
      SGTI    R3,R1,done              ;test if done
      BEQZ    R3,foo                  ;loop if not done.


     Assume that the integer operations issue and  complete  in  one  clock
cycle  (pipelined)  and  that their results are fully bypassed.  Ignore the
branch delay.  Assume the following latencies in clock cycles:

      FP multiply                     10
      FP add                          6
      FP load/store                   2



     a.  Assume Tomasulo's algorithm for the hardware using 1 integer unit,
2  FP  multipliers,  1  FP add and 1 FP divide unit.  Show the state of the
reservation stations and register status tables when the branch is executed
for the second time.  How many clock cycles does each loop iteration take ?

     b.  Unwind the DLX code for SAXPY three times and schedule it for  the
standard  DLX  pipeline.  Significant reordering of the code will be needed
to maximize performance.  What is the speedup over the original loop ?


S 328

The following is a readers-writers solution using semaphores:

1         shared var
2         nreaders : integer;
3         mutex, wmutex, srmutex : semaphore;
4         procedure reader;
5                 begin
6                 P(mutex);
7                 if nreaders = 0
8                 then nreaders := nreaders + 1; P(wmutex)
9                 else nreaders := nreaders + 1;
10                V(mutex);
11                read (f);
12                P(mutex);
13                nreaders := nreaders - 1;
14                if nreaders = 0 then V(wmutex);
15                V(mutex):
16                end

17        procedure writer (d; data);
18                begin
19                P(srmutex);
20                P(wmutex);
21                write (f,D);
22                V(wmutex);
23                V(srmutex);
24                end
25        begin
26        mutex = wmutex = srmutex = 1;
27        nreaders := 0;
28        end

Answer the following questions indicating, if necessary, the statement number(s):

  1. What are the uses for the three semaphores (if they are used to defend a resource/operation, indicate which one):
  2. Where does the first reader become blocked if a writer is in (indicate the operation and/or statement number) ?
  3. Where do the writers become blocked ?
  4. Is there a preference in this algorithm (reader or writer) ? Explain why.

S 329

The following is a solution for the readers-writers problem using monitors:

1         readers-writers: monitor;
2         begin
3         readercount: integer;
4         busy: boolean;
5         OKtoread; OKtowrite: condition;

6         procedure startread;
7                 begin
8                 if busy then OKtoread.wait;
9                 readercount := readercount + 1;
10                OKtoread.signal;
11                end startread;

12        procedure endread;
13                begin
14                readercount := readercount - 1;
15                if readercount = 0 then OKtowrite.signal;
16                end endread;

17        procedure startwrite;
18                begin;
19                if busy or readercount /= 0 then OKtowrite.wait;
20                busy := true;
21                end startwrite;

22        procedure endwrite;
23                begin
24                busy := false;
25                if OKtoread.queue then OKtoread.signal
26                        else OKtowrite.signal;
27                end endwrite;

28        begin
29        readercount := 0;
30        busy := false;
31        end;

32        end readers-writers;

Answer the following questions indicating, if necessary, the statement numbers:

  1. How is the variable "busy" used, i.e. what does it mean if "busy" is true/false ?
  2. What are the conditions for which a writer would have to wait ?
  3. Is there a preference (priority) for readers or writers ? Where (statement number) ?
  4. How would you reverse that preference/priority ?

S 330

Design of distributed file systems: issues and solutions.

(1) The issues that have to be resolved as part of designing a distributed file system include: naming and name resolution, caching, writing policy and availability. For each of these issues write a brief definition of the problem to be solved and describe the options for solving that problem.

  1. Naming and Name Resolution
  2. Caching
  3. Writing Policy


(2) Case Studies: Implementation of Distributed File Systems

Briefly describe the main features of the SUN Network File System (NFS) OR the file system of another distributed system.

S 331

Resource management in distributed systems: distributed scheduling

There are four types of load distributing algorithms: sender-initiated algorithms, receiver-initiated algorithms, symmetrically initiated algorithms, and adaptive algorithms. Each type of algorithm is characterized by its transfer policy (determine if a node is a candidate for a task transfer), selection policy (which task should be transferred), location policy (what node should the task be sent to) and information policy (collection of system state information). Briefly describe for each type of algorithm its principle of operation, its policies (transfer, selection, location and information) and also comment on its performance and stability.

  1. Sender-Initiated Algorithms
  2. Receiver-Initiated Algorithms:
  3. Symmetrically-Initiated Algorithms
  4. Adaptive Algorithms

S 332

Resource security and protection

The three methods for implementing the access matrix model are: the capability-based method, the access control list method, and the lock-key method. Briefly describe each of these methods covering the principle of operation, advantages and disadvantages, special issues and possible resolutions. Also, for each method give an example of an operating system using that method.

  1. The Capabilities-Based Method
  2. The Access Control List Method
  3. The Lock-Key Method

S 333

Describe Network ASCii. Why is it desirable to have a standard such as network ASCii? In other words, what major problem does it minimize in a heterogeneous environment?

S 334

In the Telnet protocol, how can option negotiation (i.e., WILL/DO, WILL/DONT, DO/WILL, DO/WONT, WONT/DONT, DONT/WONT) cause a infinite loop between the end systems? Assume that all requests are acknowledged.

S 335

Identify three reasons why OSI is widely used.

S 336

For TFTP, draw the time (vertical) vs. message (horizontal) scenario for sending a binary file from end-system A to end-system B. Show all parameters for all messages on the message arrows going between the vertical end-system lines. Show all port values and/or designators. Assume proper operation of IP and UDP.

S 337

How does NFS (Network File System) avoid the problem of client confusion about requests in an environment of widely varying server and network response times?

S 338

In a Sun RPC over TLI (Transport Layer Interface) show the format of the complete RPC CALL packet including all headers from the OSI/RM Network layer upward. Develop a formula for determining the length of the procedure-specific parameters. The RPC header includes version #, XID, call, RPC version, procedure #, credentials field, program #, and verifier field.

S 339

Consider two tasks: a sender and a receiver. The sender repeats the following: compute a message and send it to the receiver. The receiver simply retreives the messages and uses them. Each message should be retreived exactly once.

  1. Implement the sender and receiver using a semaphore.
  2. Write a monitor to control the shared message and the sender/receiver tasks.
  3. Write a protected type to control the shared message and the sender/receiver tasks.
  4. Compare your solutions.

 

S 340


1) Define Client/Server Computing?
2) Name different kinds of servers in a client/server environment?
3) Explain the functions of a typical database server?
4) What does a database server contain?
5) What are transactions?
6) What are Online Transaction Processing Systems(OLTP)?

S 341

1. Explain Remote Procedure Calls (RPCs)?
2. Give examples of middleware.
3. Explain the difference between a fat client and a thin client?
4. What is a 2-tier client/server environment?
5. Explain a 3-tier client/server environment.?

S 342


1. Are there any advantages of client/server computing?
2. Architecturally in a Client/Server Environment what are the general issues
you deal with?
3. Can the client and server portions reside on the same machine?
4. Define a socket.
5. What is Bandwidth?
6. What are Routers?

S 343

1. What is Frame Relay?
2. Give an example of packet switching protocol.
3. What is ISDN (Integrated Services Digital Network)?
4. In general, what is a server?
5. What is a file server?
6. What are the functions of a server in relation to database access?
7. Can printers be shared in a client/server environment?
8. Why should a server be very robust?

S 344


1. Relational Databases like Sybase, Oracle and DB2 support a relational
language called SQL (Structured Query Language), what type of a role does SQL
perform in a data processing environment?
2. Are there any official standards for SQL?
3. List some of the functions of a database server.
4. There are three database architectures in the industry today, Process per
client architecture, Multithreaded Architecture and Hybrid architecture. Which
one would you pick if you were designing a system?

S 345


1. What are stored procedures?
2. What are stored procedures used for?
3. Are there any drawbacks in using stored procedures?
4. Why should anybody use middleware when a set of SQL commands can directly
access databases on servers?
5. SQL database servers provide APIs to clients for database access. Explain
how the request/reply exchange takes place.
6. Explain the difference between ESQL and CLI.
7. What are the disadvantages of ODBC (Open Database Connectivity)?

S 346

1. Issues of distributed data management are being addressed by several
standards including ANSI SQL, ISO distributed computing models etc. IBM
introduced DRDA (Distributed Relational Database Architecture) as a solution
for providing distributed data management. Describe DRDA.
2. Transactions under Client/Server environment have five very important
properties. Explain the properties.
3. Explain the term TP monitor.
4. Define OLTP (Online Transaction Processing System).
5. What is Tuxedo?

S 347


1. What type of systems will OLTP be very useful?
2. Explain Replication.
3. What are Gupta's Quest and Cogno's Impromptu?
4. Briefly describe Mutlidimensional DBMSs or MDBMSs.
5. What are the current trends in the database server technology?
6. What is ODBC (Open DataBase Connectivity)?

S 348


1. What are Flat Transactions?
2. Are there any disadvantages in using flat transactions?
3. If flat transactions are designed for short activities, what other
alternatives do I have for designing a complex system?
4. What are syncpoints?
5. How different is commit from syncpoint?
6. ISO published its OSI TP standard that defines a two phase commit
implementation. Explain this two phase commit protocol.
7. Explain 3 tier Client/Server Architecture using a TP Monitor.

S 349


1. What are the advantages of using a TP monitor in a 3 tier environment. Do
we really need a TP monitor?
2. What are the differences between transactional and non-transactional
communications?
3. What is TP Lite?
4. What is TP heavy?
5. Explain briefly issues related to TP lite and some of the advantages of TP
heavy over TP lite.
6. What is the biggest challenge for the TP monitors?
7. What is CICS (Customer Information Control System)?

S 350


1. Discuss groupware in relation to relational databases and TP monitors.
2. Process management for groupware is done via workflow. Explain briefly
workflow.
3. By coordinating various elements of the business enterprise and work group
efforts, workflow automation systems offer several advantages. List some of
the advantages.
4. Electronic Mail (e-mail) is a major component of workflow, how important is
e-mail in a client/server environment (or computing environment).

S 351


1. How do you connect different mail networks, for example cc:Mail to Lotus
notes?
2. protocol is becoming the de-facto standard. Explain why?
3. What are the major components of Lotus Notes?
4. Lotus Notes is leading the industry in the market, who do you think are
other contenders?
5. By and large, today's client/server applications remain difficult to build,
manage and extend. Will distributed objects change this?

S 352


1. Distributed objects, are by definition, components. Explain why they are
referred to as components.
2. Are there any standards for Distributed objects?
3. What are the minimum functions a component should provide?
4. What are supercomponents?
5. What are the components of a 3 tier object style client/server environment?

6. In a 3 tier object style client/server environment, is there any direct
interaction between the first tier and third tier.

S 353


1. What is CORBA ?
2. Briefly describe IDL.
3. What are the four main elements of OMG's Object Management Architecture?
4. What is an ORB (Object Request Broker)?
5. What is the difference between ORBs and RPCs?
6. What are the highlights of CORBA 2.0?

S 354

1. Security becomes a little more complex with distributed objects. Explain
why?
2. Briefly describe a business object.
3. Currently, what are the shortcomings of ORBs?
4. What are compound documents?
5. Briefly describe the Open Doc component Model.
6. IBM introduced a CORBA compliant system. What is it called.?
7. What is OLE/Active X?

S 355


1. What is Hypertext?
2. What is the World Wide Web(WWW) and Web Browsers?
3. What is HTML?
4. Explain URL.
5. Briefly describe the structure of a HTML document?
6. Navigation from server to server in a WEB is provided by hyperlinks.
Briefly describe hyperlinks.
7. HTTP (Hypertext Transfer Protocol) is supposed to be a simple protocol.
What makes it simple?

S 356

1. What are the highlights of HTML version 3.0?
2. Discuss security on the Web.
3. What are intranets?
4. If internet is to become a true information highway, what do you think is
needed?
5. Does Java provide a distributed object bus?
6. Java introduces a different style of client/server interaction for the Web.
Briefly explain Java style of client/server.

S 357

1. How does Java achieve portability?
2. What are some of the highlights of Java language?
3. What is Java DataBase Connection (JDBC)?
4. Does CORBA bring any benefits if the Web is augmented by CORBA?
5. Microsoft has its own version of Object Web. Explain this Web.

S 358


1. What is system management?
2. How many different architectures are available for distributed management?

3. What does an open management platform do in a distributed system
management?
4. Are there any standards for Open Distributed Systems Management(DSM)?
5. What are the basic components of an open DSM platform?
6. What are the benefits of Performance Monitoring Tools?

S 359


1. In a client/server environment how do we keep track of assets like software
and hardware?
2. What are Configuration Management tools?
3. What is Software Configuration Management?
4. In a networked environment like client/server, how do you install software
on a remote system? </A>
5. What is internet's SNMP?

S 360


1. Are there any limitations in SNMP protocol?
2. SNMP's limitations were addressed by Open Systems Interconnection (OSI).
What are the highlights of OSI management framework?
3. Briefly describe what is meant by Desktop Management Interface (DMI).
4. What is TME 10?

S 361

Part A (50%)
Describe the Layered Architecture style. Describe advantages and
disadvantages of this type of architecture. Contrast the Layered
architecture with the modular design. Give an example of a system for
which the Layered Architectural style is most appropriate.

Part B (50%)
Suppose that there exist two different library circulation systems L1
and L2 that are running at two libraries (at different locations). Both
systems support operations like borrow a book, return a book, renew a
book, reserve a book, etc. It was decided that both libraries should be
run under one library circulation system. Initially the development of a
completely new library circulation system was considered. However,
because of the high cost of such development, this idea was rejected. It
was decided that the existing systems L1 and L2 should be reused.
Provide an architecture of the new library circulation system in which
both system L1 and L2 will be reused. Briefly describe all components
of your architecture. Justify your design decisions.

S 362

Part A (50%)
Describe the Pipe and Filter Architecture style. Describe advantages
and disadvantages of this type of architecture. Give an example of a
system for which the Pipe and Filter style is appropriate.

Part B (50%)
There exist two software systems S1 and S2 that maintain information
about employees. In software system S1 employee objects are modeled
by class EMPLOYEE. In software system S2 employee objects are
modeled by class EMPL. Class EMPLOYEE supports the following
operations: Hire, Promote, Transfer, and Dismiss. Class EMPL
supports the following operations: Empl_Hire, Empl_Promote, and
Empl_Dismiss. The following operations from classes EMPLOYEE
and EMPL are functionally equivalent:

Promote and Empl_Promote,
Dismiss and Empl_Dismiss,
Hire and Empl_Hire.

It was decided that system S1 and S2 should share both types of
objects, i.e., system S1 should maintain objects of class EMPLOYEE
and EMPL (similarly, system S2 should maintain both types of
objects). The objective now is to incorporate the class EMPL into
system S1 with minimal modifications using one of the object-
oriented design patterns. Provide a class model of the modified system
S1. The class model should include class EMPLOYEE and class
EMPL (introduce new classes if necessary). For each new class list
operations and their functionality. Briefly describe the required
modifications

S 363

Part A (50%)
Describe the existing process control system architectures. For each
architecture give an example of a process control system for which this
architecture is most appropriate. In each example briefly describe the
major components of the system.

Part B (50%)
There exist two servers S1 and S2 that maintain information about
books in different libraries. Server S1 supports the following
operations: CheckIn, Checkout, Reserve, and Search. Server S2
supports the following operations: Book_Check_in, Book_Check_out,
and Book_Search. The following operations are functionally
equivalent:

CheckIn and Book_Check_in,
Checkout and Book_Check_out,
Search and Book_Search.

Currently there exist two client processes C1 and C2, where client C1
interacts only with server S1 and client C2 interact only with server
S2.

It was decided that both clients should be able to access both servers,
i.e., client C1 and C2 should be able to get services (perform
operations) from servers S1 and S2. The objective in this problem is to
provide an architecture in which clients C1 and C2 are not modified
and can get services from both servers. If necessary introduce new
components in your design. For each component describe its
functionality and/or its operations.