logo
CS 414: Introduction to Operating Systems
Fall 2000
TR 10:10-11:25, 255 Olin
 
 
Frequently Asked Questions
 
Homework #4
1. (Q4) What is meant by a front end processor and terminal concentrator ?
Imagine a computer system in which multiple terminals are connected to the same computer system.  In such a system, the terminals would be called the front end while the actual system itself would be the back end.  The front end processors are those processors residing between the dumb terminals and the back end server doing simple processes like multiplexing and de multiplexing requests and replies to and from the server and dumb terminals.  It could also do more sophisticated tasks like scheduling the requets in different order etc..  The terminal concentrator is an example of a front end processor which  aggregates the input from the dumb terminals and disperses replies back to them.  
Homework #2
1. (Q1) What is a loosely connected cluster of computers ?
A collection of individual comupter systems connected using a network.  This is different from a LAN only in the sense that the computer systems are spatially closer (few feet apart) and is called a System Area Network.  The interconnecting network is usually high speed and reliable.  Each individual computer system might be uniprocessor or multiproccessor systems.  But for this question you can assume that each system is a uniprocessor system.  There is an individual OS running on each of these systems.  These OSs do not interact with each other and are not aware of the existence of other computer systems.  Modifications to these OSs are not solutions to question 1.
9/25/00 In addition, note that it is possible that a user (or a user-level process) knows the other machines in the system. For example, if you know the names of 4 different machines, you can "telnet" or otherwise log on to those machines, even though one OS does not know about the other ones.

Further, the answer to this question does not have to be restricted to ULTs or KLTs: a hybrid approach is also acceptable. Just make sure that your answer works (and do not read too much into the FAQ; this is not a hint).

2. (Q3) What is meant by 'all jobs can actually finish within deadline time'?
This means if d is the specified deadiline, s is the time the job is presented to be scheduled, and t is the minimum time the job needs to be run on a processor to complete, then d > s + t.
9/25/00 Further, what was meant is that there exists a scheduling discipline that will enable the completion of a set of jobs within their (arbitrarily chosen) deadlines; each job has an individual deadline. As an example, a set of 2 jobs with s=0, t=3 and d=5 CANNOT be scheduled by any scheduling discipline. ADDED AT 5PM You can assume that this type of input will not be given to your algorithm, or you can assume that it will. Just make sure that you state your assumptions clearly in the answer sheet.
3. (Q3) Should you consider preemptive jobs or non-preemptive jobs?
The goal here is to maximize the number of jobs completing within their deadline.  Assumptions about premption is not relevant to this question.
4. (Q4) What metric should be used optimize in this question?
For question 4a, minimize the average completion time and for question 4b, minimize the average response time.
9/25/00 Using the book's definiton, for question 4a, minimize the average turnaround time and for question 4b, minimize the average response time.
Homework #1

1.  (Q2a, Q2b) What conditions of the original unbounded buffer P&C problem can be relaxed ?

a)  No two process can access the buffer at the same time.
Inorder to optimize the solution, this condition can be relaxed.  However, care should be taken so that simultaneous access to the buffer does not produce inconsistencies in the buffer.  This means no two process can access the same item in the buffer simultaneously. 

b)  An item can be consumed only after it has been created.
This condition cannot be violated by any solution to this problem.

2.  (Q1a) Can the 'print' function call be non blocking ?
No.  As defined by the problem, the print function would not return until the designated printer completely prints the allocated file.  Thus print is a blocking function.
3.  (Q1b)  What is meant by fairness and no starvation ?
Starvation occurs when some processes are not able to access the printer for a very long time  eventhough other processes (possibly later processes) are able to access the printer.  A fair solution would be one which is starvation free and efficiently uses the two available printers.  Thus no process can be waiting to print unless both the printers are currenly not idle. 
4.  (Q3b)  What kind of semaphore should be implemented using tset or xchng instruction?
You are expected to give pseudocode for the P and V operations of a counting semaphore.
5.  How are the semaphores defined?  Can they be changed to reflect alternate functionality?
Please take the semaphore definitions as defined in the class.  No other modifications to its functions would be accpeted exept for question 3b. 
Miscellaneous

1.  What is the difference between the suspend state and the blocked state?

If a process is in the blocked state then most of the process is still in the memory while the process is waiting for some other resource.  In the suspend state, the process is taken out of the memory and is not yet scheduled to execute even though all its resources may be available. 
2.  Which instructions are atomic?
Strictly speaking, only those machine instructions which are guaranteed by the hardware not to be interrupted can be considered to be atomic instructions.  Thus for our purposes, statements such as count++, if test then ... else ..., etc are not atomic operations. 
 
 
Questions? Contact mosse@cs.cornell.edu
cornell logo