OS Architectures Flashcards
What is a Simple Architechure?
- Typically for small or preliminary systems
- All of the OS runs in kernel mode ( No well-defined structure, Everything is small enough that we can still find the pieces)
- If unchecked, can lead to monolithic systems (all components are intertwined or interdependent)
What is a Layered Architecture?
- Functionality of the OS is divided into different layers
- Layers organized Hierarchically (lowest layer deals with hardware, next layer provides basic functions like memory management and scheduling, next layer adds more abstraction)
- Each layer only uses the services of the layer directly below it and provides service to the one directly above
Layered Architecture Pros?
- Each Layer is isolated from others (can swap in or out new implementations of layers without affecting the whole system)
- Easier to construct, debug, and maintain because of the isolation.
Layered Architecture Cons?
- You need to carefully plan the functionality of each layer
- Some features conceptually (to us) might want us to form cycles in the layer structure, which may force us to move functionality lower than we would like.
- Not as effcient since one task may need multiple function calls to get through all the layers.
what is a Microkernel Architecture?
Isolate the smallest amount of functionality in the kernel (Process management, minimal memory management,
interprocess communication)
-All other functionality is run as separate user-space
Microkernel Architecture Pros?
- Minimal functionality run in kernel mode.
- Quick to swap in or out parts of the overall OS
- Easy to add to the OS
Microkernel Architecture cons?
Efficiency sometimes a concern:
- Must still go through APIs and “formal” communication paths to
trade data between parts of the OS
- Efficiency puts pressure on the OS implementers to move more and
more functionality into the microkernel, which can lead towards a
more monolithic structure if left unchecked
What is a Modular Architecture?
-Allow OS functionality to be integrated into the OS on demand -Functionality is divided into modules (like a layered architecture) but a module can call any other module
What is a Hybrid Architecture?
A combination of different architectures like iOS
What is a Virtual Machine Architecture?
Basically like a layered architecture, where the bottom layer is a host OS and there is another operating system using the hardware through the host OS.
Virtual Machine Architecture
Virtualized hardware can be mapped directly to real hardware or
be truly simulated by the VM
Direct access
- Provides efficient execution within the virtual machine
- Can create some risks of security compromise
- Mustn’t let the virtual machine’s OS enter kernel mode
Must trap all kernel mode operations to the host OS - Eg. VMWare
Simulated hardware
- Provides better security to the host OS
- Allows for more flexible design of virtual hardware
- Allows for common virtual hardware across different real hardware
- Often viewed as slower since assembly-level instructions are interpreted
- Eg. Java VM