Introduction
high-level view of operating system organization
- Broadly speaking, what are the major roles of an operating system?
- Why is it hard to precisely define the concept of an operating system in terms of features and services provided?
- What distinguishes the kernel from the rest of the operating system? What are some standard services provided by the kernel?
- What is the purpose of an interrupt? What is a trap? Give some generic examples.
- In UNIX, how is the interrupt handler located for a given device?
- Most computer systems provide hardware support for different modes of operation. At a minimum, two modes are needed. What are they?
- What is a process? What is the difference between a process and a thread?
- What are the major responsibilities of the operating system when it comes to process management? What about memory management? File management?
- Contrast symmetric and asymmetric multiprocessing?
- What is the difference between a device controller and a device driver?
- What is multiprogramming? What problems in the old days of batch processing lead to the development of multiprogramming?
- What is time sharing? How does it relate to the concept of multiprogramming?
- What happens during a context switch?
- What are the three main advantages of multiprocessor systems?
- What kind of hardware support guarantees that the operating system maintains control over the CPU (e.g., a user program cannot run forever)?
- What is the main purpose of a cache? What kinds of problems are caused by caches?
operating system services and structures
- Describe three ways in which parameters can be passed to the routine handling a system call.
- Java programs cannot make systems calls. Explain how this limitation reflects the design goals of Java. Also explain how the first sentence is not entirely true.
- What is the purpose of system programs? Give some generic examples.
- In MS-DOS, what happens to the command interpreter as it loads a new program into memory?
- What are layered systems? Describe a problem faced by designers of layered systems. Compare with monolithic systems in terms of testing, debugging, and efficiency.
- What is a microkernel? What is its main function? Describe the benefits of a microkernel compared to a monolithic kernel. Are there any disadvantages?
- Discuss the benefits and problems of dynamically loaded modules compared with with layering and with the microkernel approach.
- How would you describe the operating system structure of UNIX? What about Mac OS X?
- Define: byte code, JVM, JRE.
- The Java interpreter may actually be a just-in-time compiler. Explain. Why is JIT code typically faster than interpreted code? Can JIT code ever perform faster than statically compiled code?
- Why are most operating systems written in C and assembly?
history of UNIX and Linux
- What problems in the dinosaur days of computing motivated the design of UNIX?
- Discuss the relationship between C and UNIX.
- What is the purpose of the GNU project? What does GNU stand for?
- What does "free software" mean? What is the name of the legal mechanism for making software free?
- Why do some people prefer the term ``open source" to ``free".
- What was the motivation for the creation of Linux?
- Why is it more proper to refer to the GNU/Linux OS instead of the Linux OS?