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).
- What was Tanenbaum's initial complaint(s) about the Linus kernel?
- What problem(s) did Linus have with MINIX?
- 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;}