Date: January 1, 2025

Topic: OS Structure (Monolithic, DOS, Microkernel)

Recall

OS structure is needed to help achieve goals like protection and performance of the OS and services

Notes

OS Structure

The way the OS software is organized with respect to the applications that it serves and the underlying hardware that it manages

Some system services: IPC, File System, Network Access, Mem. Management etc

Importance of OS Structure

Needed for protection, performance, flexibility, scalability, agility and responsiveness

Goals of OS Structure

However some goals may conflict with each other (e.g., protection vs. flexibility)


Three distinct layers exist, application layer, OS and hardware layer.

Each app in the app has its own address space, protecting them from each other and the OS also has its own address space, protecting the OS from the apps.

Monolithic OSes do not allow for much customization since the system services are already part of the OS.

Monolithic Structure

image.png

Application Layer

Applications at top has its own hardware address space

OS Services and Device Drivers

All services that applications expect from apps are contained in the middle section

Hardware Layer

Hardware at the bottom is managed by the OS (e.g., CPU, memory, peripheral devices)

Performance Issues


DOS allows greater customization of OS services by reducing the protection between the apps and the OS. This helps DOS systems achieve greater performance.

Customization can be done on page-replacement, scheduling, interrupts, etc




<aside> 📌 SUMMARY: The three main OS structures (Monolithic, DOS-Like, and Microkernel) each offer distinct trade-offs between protection, performance, and extensibility. Monolithic kernels excel in protection and performance but lack extensibility, DOS-Like systems offer performance and extensibility but sacrifice protection, while Microkernel-based systems provide strong protection and extensibility at the cost of performance.

</aside>


Date: January 4, 2025

Topic: SPIN Approach