Home Schedule Reading Presentations Projects People
Mac Logo Windows Logo Minix Logo Sun Solaris Logo Linux Logo

Assignment 3: Operating System Design & Processes

Assignment Day September 14, 2011 (Wednesday)
Due Date September 20, 2011 (Tuesday, before class)
  Email (time stamp) and Typed Hardcopy is required.

Question 1 (10 pts)

Please read the 1992 Andrew Tanenbaum & Linus Torvald debate (see link).

  1. What was Tanenbaum's initial complaint(s) about the Linus kernel?
  2. What problem(s) did Linus have with MINIX?
  3. What is the conclusion - what is better - micro- or monolithic kernels (and why)?

Bonus 1: read the next link and the next link of the above and find out open source and its contributors, interesting read.

Bonus 2: Read the 2006/2008 (slash dot) and Part II of the debate - it is an ever ending debate.

Question 2 (5 pts)

Consider the 3 states of the transition and process states diagram above (i.e., this diagram excludes the two states: new, and terminated) and consider ready, waiting and running states and observe that here there are only 4 transitions "Scheduler Pick", "Interrupt & Scheduler Pick", "I/O or event wait" and "IO or event completion") while in theory there could be 6 transitions, two out of each state.

Can any of the two missing transitions occur (i.e., "from waiting to running" and / or "waiting to ready")? Be sure to argue why or why not for each transition.

Question 3 (2 pts)

Why are part of interrupt handlers written in assembly language (give at least two reasons)?

Question 4 (2 pts)

Look at the UNIX command 'time', what is real, user and sys?

Time and compare your median, mode and mean program with this program.

Question 5 (5 pts)

Including the initial parent process, how many processes are created by the program shown below:

#include <stdio.h>
#include <unistd.h>

int main()
{
/* fork a child process */
fork();

/* for another child process */
fork();

/* and fork another */
fork();

return 0;

}