a) Response for each question MUST be between 5 - 10 lines.
b) Provide us with the solution for each question as they are completed. (So as you complete one, send it to us).
c) Do not use quotations in any of the solutions.
d) WIKIPEDIA SHOULD NOT BE USED!
e) Do not plagiarize, we are going to check.
d) You MUST state your sources/references for each question.
An advantage to a microkernel based operating system design is with applications that have the potential for many critical interactions such as a server are designed and implemented as processes/threads outside of the kernel. This provides for the isolation of errors outside of the kernel thus improving the systems availability (Liedke, 1995).
Liedtke, J. (1995). On µ-Kernel Construction. In Proceedings of the Fifteenth ACM
Symposium on Operating System Principles, 237-250.
Chen, J.B. & Bershad, B.N. (1993). The Impact of Operating System Structure on Memory System Performance. In Proceedings of the fourteenth ACM symposium on Operating systems principles (SOSP '93), 120-133.
Processes and Threads
1) Address the following: why use threads?
2) Discuss a complication that concurrent processing adds to an operating system. (Support the response)
3) [User Level Threads] - Given an operating system that supports a one-to-one relationship between user-level threads and kernel-level threads and allows one or more threads from a process to issue blocking system calls while other threads (within that process) continue to run. What must a kernel provide for an effective user-level thread implementation?
OS Overview and Structure
4) [How does virtualization factor into a layered vs non-layered design discussion]?
Moving function outside of the kernel or even layering the kernel may provide some benefits.
How does virtualization factor into a layered vs. non-layered design discussion?
Provide specfic support for your answer from academic sources.
5) Provide ONE advantage or ONE disadvantage of a Microkernel OS Design or a Monolithic OS Design.
6) When designing a kernel with rudimentary functionality, what are the required services? Justify your response and provide an example.
7) Discuss an advantage or a disadvantage of open-source operating systems.
8) Pick an aspect of an historical operating system (IE. Multics) and detail how a modern system supports that function.
9) Does virtualization impact the design of programs on behalf of the process/threading model?
Concurrency and Synchronization
10) Is there any benefit to busy waiting?