Stanford Operating Systems Quals

2002 2001 2000 1999 1998 1997 1996 1995 1994 1993 1992

1995 Problem Set

The objective of the exam is to find out what you know about operating systems and to assess your ability to identify and develop solutions for problems that arise in operatings systems. Note that the questions have many "right" answers so be sure that you provide justifications. State any assumptions you make when answering the questions. Point form answers are acceptable. Problem 1 (15 Points) You have gotten a job with a company that is building a large scale shared memory multiprocessor (hundreds of processors) and you have been put in charge of the operating system effort for the machine. An old-timer at the company claims it is time for the return of virtual machines. Rather thanmake the current operating system scale to hundreds of CPUs, the old-timer argues you should build a fancy virtual machine monitor and run multiple copies of your existing operating system. The suggestion is that you could have one virtual machine for each user or set of users.

You think that this old-timer is nuts. You believe the company should support a large operating system to modify the existing OS to run the entire machine. To support your plan, you write a memo to convince everyone that the virtual machine approach is wrong. Describe the major problems/disadvantages of the virtual machine approach that you would include in the memo.
Problem 2 (15 Points) There seems to be disagreement in the operating system research community about exactly what functionality belongs in a "micro-kernel" and what functionality belongs in user-level servers. Assume that you have been given the job of designing a micro-kernel. What criteria would you use in deciding what should go inside the kernel. Along with your criteria, include examples of functionality you would and would not include in the kernel. Problem 3 (15 Points) You decide to get a CS Ph.D. specializing in operating systems but the advisor you hook-up with is having a problem getting you a good topic. The advisor keeps coming up with interesting "solutions" but can't determine a good problem to solve them with. For the following "solution", describe an interesting problem it could be used to attack (This description should be like the basic motivation section of a paper you write on the solution). Also include a list of changes to the operating system (if any) you would need to take advantage of this solution.

"No-fault memory operations" -- Special load and store instructions that behave like normal loads and stores if the memory address would not fault (take a TLB miss or page fault). If the instruction would fault (TLB miss/page fault), the instruction doesn't take the exception or perform the operation. Instead the non-fault instruction returns a condition that could be tested on the next instruction.
Problem 4 (15 Points) Operating system designers have been arguing about what operating system differences (if any) are appropriate between large timeshared machines and personal computers. The argument goes that certain subsystems needed for multi-user machines are not appropriate for personal computers. For each of the OS functionality/subsystem below, argue if there is still a need for the functionality in a personal computer. (You may argue for or against the feature in PCs but you need to be convincing).

(a) Virtual memory

(b) Protection

Maintained by Gurmeet Singh Manku