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

Assignment 3: Operating System Design & Processes

Assignment Day September 02, 2010 (Thursday)
Due Date September 14, 2010 (Tuesday)
  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 4 states of the transition and process states diagram of fig 3.2 (i.e., exclude the two states: new, and terminated) and only consider ready, waiting and ready state and observe that there are only 4 transitions ("Interrupt", "Scheduler Dispatch", "I/O or event wait" and "IO or event completion"). Can any of missing transitions occur (i.e., "from waiting to running" and / or "waiting to blocked")? 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) <*** will be provided today ***>

Use the time command above and record real, user and sys time for your mean / mode and media program. Compare it to the instructors program provided in the directory (here) in atlas below, which runs faster on average with 10,000 numbers (this means you need to run mulitple runs, then average the results). Be sure to discuss performance using real, user and sys from the time command.

A program that generates <n numbers> numbers between a specific range [begin, end] and outputs the result to standard out (skips 0's while generating numbers) and prints out a 0 at the very end, is provided in (this) directory. Here is the API:

randomnumbers <number of numbers generated> <begin range (inclusive)> <end range (inclusive)>

Direct link on atlas to binary of the instructors program:

ls /home/profs/maria/web/classes/4730-Fall-2010/hw3/meanmediamode