Microkernels

Download Report

Transcript Microkernels

Microkernels
CS-502, Operating Systems
Fall 2009 (EMC)
(Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from
Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne)
CS-502 (EMC) Fall 2009
Microkernels
1
Problem
• Operating systems are large
• They continue to evolve and grow
• … and are worked on by many people
• (Like all other programs) they contain bugs
• How to organize them so that bugs do not
• … bring down systems
• … impede normal operation
• … etc.
CS-502 (EMC) Fall 2009
Microkernels
2
Operating System Structures
Tanenbaum, §1.7
• Monolithic systems
• Formerly called “the big mess”
• Layered systems
• Microkernel based systems
An epithet leveled at any
big system by a speaker
who does not understand
& and made by someone
s/he does not trust!
• Client-server model
• Virtual Machines
• Exokernels
CS-502 (EMC) Fall 2009
Microkernels
3
Operating System Structures
• Monolithic systems
• Formerly called “the big mess”
A faulty driver or component
can corrupt any data in kernel
• Layered systems
• Microkernel based systems
• Client-server model
• Arbitrary damage
• Stop system anywhere
• … etc.
• Virtual Machines
• Exokernels
CS-502 (EMC) Fall 2009
Microkernels
4
Layered Systems
Figure 1-25. Structure of the THE operating system.
CS-502 (EMC) Fall 2009
Microkernels
5
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Layered Systems
Simple
Elegant
Incredibly naïve
Figure 1-25. Structure of the THE operating system.
CS-502 (EMC) Fall 2009
Microkernels
6
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Microkernel — An Organizing Principle
• Partition OS kernel into lots of small,
independent pieces
• Put pieces in separate “processes”
• Isolated from each other except for message passing
• Keep kernel mode code to a minimum
• Concept emerged in 1970s
• MACH at CMU (Rick Rashid)
• NEXT computer
• Apple Mac-OS
CS-502 (EMC) Fall 2009
Microkernels
7
Microkernel Example
Figure 1-26. Structure of the MINIX 3 system.
CS-502 (EMC) Fall 2009
Microkernels
8
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Microkernel Example
Works great on a PDP-11
• MemoryFigure
addressable
device
registers of the MINIX 3 system.
1-26.
Structure
• Minimal
interrupt
handling, scheduling,
CS-502 (EMC)
Fall 2009
Microkernels IPC, etc
• No virtual memory management
9
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Microkernel Issues
• Virtual memory management
• Needs to interact directly with scheduler
On every context switch!
• Page faults, etc.
• Kernel support for user-space threads
• Fast I/O devices
• Quick, responsive interrupts
Cannot afford context switches
• Top- and bottom-halves for interrupt handlers
• Interprocess communication
Remember Project #4
• …
CS-502 (EMC) Fall 2009
Microkernels
10
Microkernel Meets the Real World
• Windows NT
• Started life as a microkernel
• No longer “micro”
• No longer a kernel!
CS-502 (EMC) Fall 2009
Microkernels
11
One View of Windows Vista
Figure 11-6. The programming layers in Windows.
CS-502 (EMC) Fall 2009
Microkernels
12
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Another View of Windows Vista
Figure 11-7. The components used to build NT subsystems.
CS-502 (EMC) Fall 2009
Microkernels
13
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
A Third View of Windows Vista
Figure 11-13. Windows kernel-mode organization.
CS-502 (EMC) Fall 2009
Microkernels
14
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Lesson — Windows Vista
• There are a lot of layers of abstraction
• Many of the pieces are operate in separate
address spaces
• An other isolation
• Most of Vista operates outside kernel mode
CS-502 (EMC) Fall 2009
Microkernels
15
Microkernels
• A good idea in the 1970s and 80s
• Not up to demands of modern processors
• Virtual memory
• Heavy caching
• Not up to demand of modern operating
systems
CS-502 (EMC) Fall 2009
Microkernels
16
Microkernel Resurrection
• Mobile phones, PDAs, handheld devices
• Fixed or limited functionality
• No general purpose files
• No dynamic virtual memory
• 
• Simple context switches
• All code already in memory
• Easy IPC
CS-502 (EMC) Fall 2009
Microkernels
17
Questions or Discussion?
CS-502 (EMC) Fall 2009
Microkernels
18