Skip to main content.

Problem Set 1







                  UNIVERSITY OF CALIFORNIA
                   College of Engineering
            Department of Electrical Engineering
                   and Computer Sciences
                 Computer Science Division

CS 162                                   Prof. Alan J. Smith


                       Problem Set 1




Please  remember that your answers to these questions should
be prepared on the computer system and  handed  in  via  the
usual process.


1.  Operating  systems can be considered as coordinators and
as extended machines.  Please define and explain each.



2. Define a process and explain process state.



3. The following algorithm,  developed  by  Dekker,  is  the
first  known  correct software solution to the critical sec-
tion problem for two processes.  The two processes,  P0  and
P1, share the following variables:

         var  flag:  array  [0..1]  of  boolean; (*initially false*)
             turn: 0..1;


The following program is for process Pi (i=0 or 1), with  Pj
(j=0 or 1) being the other process:

         repeat
            flag[i]:=true;
            while flag[j]
               do if turn = j
                  then begin
                     flag[i]:=false;
                     while turn=j do noop;
                     flag[i]:=true;
                  end;
            ...
            critical section
            ...
            turn:=j;
            flag[i]:=false;
            ...
            remainder section
            ...
          until false;


Prove  that  the  algorithm satisfies all three requirements
(mutual exclusion, progress, bounded waiting) for the criti-
cal section problem.



4. Explain why interrupts are necessary for multiprogramming
to be very useful.



5. Consider a set of sequential processes that cannot  share
any  variables  except  synchronization  variables,  such as
semaphores.   Can  these  processes  communicate  with  each
other?   Please assume that the scheduling algorithm is such
that each process is guaranteed to be able  to  run  for  at
least .1 seconds out of every second, and that processes can
also read the real time clock.



6. Redo the readers and writers problem from class  to  give
priority to readers instead of writers.



7.  Consider  a system consisting of 4 resources of the same
type, being shared by 3 processes, each of  which  needs  at
most  2 resources.  Can a deadlock occur in this system?  If
so, show how.  If not, explain why not.  You can assume that
the  processes are totally independent except for their need
to use the 4 resources in the shared pool.