CIS307: Test your Knowledge Entering CIS307

Here are some questions you can use to test your knowledge entering CIS307. Your aim should be to be able to answer, given time, the majority of these questions. If you don't, try to delay your taking of cis307 by taking first other required and elective courses, or study harder before taking cis307, or work very hard while taking cis307.

-----------------------------------------------------------------
What are the resources shared by an operating system?
Indicate for each if it is Reusable, Consumable, or both.
-----------------------------------------------------------------
Often an operating system is described as a "Resource Manager".
Specify as many such resources as you can.
-----------------------------------------------------------------
Often an operating system is described as a "Reactive System".
Explain why.
-----------------------------------------------------------------
What is a Micro-Kernel Operating System Architecture?
What are its advantages? What its disadvantages?
-----------------------------------------------------------------
What is a monolithic Operating System? and how does it differ
from a Layered Operating System?
-----------------------------------------------------------------
A modern operating system is said to be multitasking,
multithreaded, preemptive, and multiprocessing. 
What does it mean?
-----------------------------------------------------------------
Describe what is a Kernel or Supervisor call.
-----------------------------------------------------------------
What is Spooling? Do you think it is a standard component
of operating systems such as Unix and NT?
-----------------------------------------------------------------
In the 60s operating systems started supporting Multiprogramming.
What does it mean?
-----------------------------------------------------------------
Why do computers have (at least) two modes, a user mode and
a kernel mode? How does one go from one mode to the other
and viceversa?  Explain in detail then for each of the following
operations indicate if it should be done in user or kernel
mode:
      (a) Read the time of day clock
      (b) Set the time of day clock
      (c) Start an IO operation
      (d) Disable interrupts
-----------------------------------------------------------------
Describe what is a process and indicate how it would be 
different if on a system a service is implemented as
a process or as a library (say a DLL in Microsoft).
-----------------------------------------------------------------
a. What happens when a CPU receives an interrupt?
b. Why, in a single processor system, we can use
   disabling of interrupts to implement critical regions?
c. How can computers use I/O devices if there are no
   interrupts?
-----------------------------------------------------------------
The state of a task in a multitasking system is described
by a diagram with three states: RUNNING, READY, BLOCKED.
Describe the meaning of each state and each transition.
-----------------------------------------------------------------
Describe as many reasons as you can for a process to become
blocked and explain how processes waiting for a specific
resource are managed.
-----------------------------------------------------------------
Define what is a Process Control Block and give some of the 
information it may contain.
-----------------------------------------------------------------
We are given tasks T1 and T2. What does it mean to say that
they execute concurrently?
-----------------------------------------------------------------
How do you make sure that the two concurrent processes do not
access a shared data structure at the same time?
-----------------------------------------------------------------
What would make for a good scheduling policy? Give general
criteria and describe one such policy.
-----------------------------------------------------------------
What is latency?
-----------------------------------------------------------------
Explain the distinction between Pre-emptive and Non Preemtive
Scheduling. Be sure to describe the impact that this distinction
has on the performance and ease of programming of multi-tasking 
applications.
-----------------------------------------------------------------
Describe how in a paged memory system a virtual address is 
converted into a physical address.
----------------------------------------------------------------
In Storage Management are discussed Internal
and External Fragmentation. Define what they are. Any idea
about how much storage is wasted (i.e. remain unutilized)
because of them?
-----------------------------------------------------------------
Describe 3 reasons for using Virtual memory.
-----------------------------------------------------------------
Describe what is a Virtual memory that is Segmented over Pages.
-----------------------------------------------------------------
We have seen virtual memory addresses grow from 16 bits to 
64 bits. Can you give some reasons for this growth?
-----------------------------------------------------------------
 What is Trashing and how can you prevent it?
-----------------------------------------------------------------
 Define Hard and Soft page faults.
-----------------------------------------------------------------
 What are the necessary conditions for Deadlocks and why?
-----------------------------------------------------------------
 In Unix a process wants to create a child process that
 executes the executable image stored in the file filename.
 Write C code to achieve this.
-----------------------------------------------------------------
 In Unix when reading and writing to IO devices we may use buffers.
 Why? Advantages and disadvantages.
-----------------------------------------------------------------
 The Unix Shell supports commands such as:
      % S1 | S2
 Any idea about what it does and how it is implemented?
-----------------------------------------------------------------
 Explain the difference between Unix IO commands and Standard C
 IO commands. Which are portable across operating systems?
-----------------------------------------------------------------
 Describe the aspects of the UNIX file system that you consider
 most significant.
-----------------------------------------------------------------
 Give the reason why we OPEN files before we read or write to
 them.
 -----------------------------------------------------------------
  Write the function
      int eqr(const char *a, const char *b);
 which returns 1 if a is equal to the reverse of b,
 returns 0 otherwise. For example eqr("rose","esor")
 is 1 and eqr("anna","enna") is 0.
-----------------------------------------------------------------
 Give the implementation of a FIFO queue (as a circular buffer)
 using C.
-----------------------------------------------------------------
 Given the definition
           struct node{
                  struct node *left;
                  struct node *right;
                  char *value;};
 implement the function
           void traverse(struct node *root)
 that prints out the value associated to all the
 nodes reacheable from root. Any order will do.
-----------------------------------------------------------------
We are given a disk which on a track has 200 sectors, 
where each sector is 1KB. The disk spins at 6000 rpm.
The bus has a data rate of 10MB per second.
   (a) What is the average rotational delay on this disk?
   (b) Any problem with this bus? and if yes, how would you
       deal with it?
-----------------------------------------------------------------
Describe how files are protected in Unix.
-----------------------------------------------------------------
Implement the function
         int getHash(char *name, int n)
which, given a string, it returns a value
in the range 0,1, ..,n-1
Use a good hashing algorithm.
-----------------------------------------------------------------
Implement the function:
     void binary(unsigned int w);
which, given w prints out the binary expansion of w.
I will accept either the right order or the inverse order.
For example, if w is 37, I will be happy with either
100101 or 101001.
-----------------------------------------------------------------

ingargiola@cis.temple.edu