Operating Systems OS Architecture Models



Similar documents
Operating System Components

Chapter 3: Operating-System Structures. Common System Components

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Operating System Structures

Operating System Structures

CPS221 Lecture: Operating System Structure; Virtual Machines

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

System Structures. Services Interface Structure

OS Concepts and structure

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Overview of Operating Systems Instructor: Dr. Tongping Liu

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Anh Quach, Matthew Rajman, Bienvenido Rodriguez, Brian Rodriguez, Michael Roefs, Ahmed Shaikh

Example of Standard API


Virtual Machines.

(Advanced Topics in) Operating Systems

Chapter 2 System Structures

Chapter 3 Operating-System Structures

Chapter 1: Introduction. What is an Operating System?

COS 318: Operating Systems. Virtual Machine Monitors

Operating System Structure

CS161: Operating Systems

COS 318: Operating Systems

Virtualization and the U2 Databases

Components of a Computer System

Operating System Organization. Purpose of an OS

ELEC 377. Operating Systems. Week 1 Class 3

x86 ISA Modifications to support Virtual Machines

COS 318: Operating Systems. Virtual Machine Monitors

Virtualization. Dr. Yingwu Zhu

Star System Deitel & Associates, Inc. All rights reserved.

Virtualization. Jukka K. Nurminen

Project Adding a System Call to the Linux Kernel

Virtual Hosting & Virtual Machines

The Art of Virtualization with Free Software

The Xen of Virtualization

Linux Kernel Architecture

Virtualization for Cloud Computing

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

Advanced Operating Systems ( L)

Computer Science 4302 Operating Systems. Student Learning Outcomes

Virtualization: Concepts, Applications, and Performance Modeling

Chapter 5: System Software: Operating Systems and Utility Programs

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Operating System Components and Services

nanohub.org An Overview of Virtualization Techniques

Virtual Machines. Virtualization

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

12. Introduction to Virtual Machines

Lecture 25 Symbian OS

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

CHAPTER 15: Operating Systems: An Overview

Introduction. General Course Information. Perspectives of the Computer. General Course Information (cont.) Operating Systems 1/12/2005

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies. Virtualization of Clusters and Data Centers

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

VMkit A lightweight hypervisor library for Barrelfish

Virtualization. Explain how today s virtualization movement is actually a reinvention

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Introduction to Virtual Machines

Virtualization. Pradipta De

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Virtualization Technology. Zhiming Shen

Cloud Computing. Chapter 8 Virtualization

Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want.

ReactOS is (not) Windows. Windows internals and why ReactOS couldn t just use a Linux kernel

Operating System Overview. Otto J. Anshus

Data Centers and Cloud Computing

kvm: Kernel-based Virtual Machine for Linux

Computers: Tools for an Information Age

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

New Data Center architecture

The Reincarnation of Virtual Machines

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

Chapter 8 Operating Systems and Utility Programs

Best Practices on monitoring Solaris Global/Local Zones using IBM Tivoli Monitoring

Advanced Systems Security: Retrofitting Commercial Systems

Components of a Computing System. What is an Operating System? Resources. Abstract Resources. Goals of an OS. System Software

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

Comparing Free Virtualization Products

9/26/2011. What is Virtualization? What are the different types of virtualization.

theguard! ApplicationManager System Windows Data Collector

Operating Systems PART -A

Operating Systems Overview

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

MACH: AN OPEN SYSTEM OPERATING SYSTEM Aakash Damara, Vikas Damara, Aanchal Chanana Dronacharya College of Engineering, Gurgaon, India

CSC 2405: Computer Systems II

Unit 4 Objectives. System Software. Component 4: Introduction to Information and Computer Science. Unit 4: Application and System Software Lecture 2

Operating System Software

Operating Systems 4 th Class

Transcription:

Operating Systems OS Architecture Models ECE 344

OS Architecture Designs that have been tried in practice Monolithic systems Layered systems Virtual machines Client/server a.k.a. Microkernels Many of the concepts governing these architectures apply to software architectures in general

Monolithic Systems A.k.a., The Big Mess or spaghetti code Prominent in the early days The structure consists of no-structure The system is a collection of procedures Each procedure can call any other procedure No information hiding (as opposed to modules, packages, classes)

Monolithic Systems (cont. d.) A little structure, imposed by exposing a set of system calls to the outside Supporting these system calls through utility procedures (check data passed to system call, move data around ) 1. a main procedure requesting the services 2. a set of service procedures that carry out system calls 3. a set of utility procedures supporting the system calls system calls } basic structure service procedures utility procedures (e.g. fetching data from user space)

A Monolithic OS

Pros & Cons Tightly integrated code in one address space Unreliable, as a bug anywhere in the kernel can bring down the whole system Tight integration has high potential for efficient use of resources and for efficient code Early designs lacked potential for extension Modern designs can load executable modules dynamically (i.e., extensible) E.g., Linux, FreeBSD, Solaris

MS-DOS System Structure MS-DOS written to provide the most functionality in the least space not divided into modules although MS-DOS has some structure, its interfaces and levels of functionality are not well separated

MS-DOS Structure

UNIX System Structure UNIX limited by hardware functionality (at its time of origin), the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts. Systems programs The kernel Consists of everything below the system-call interface and above the physical hardware Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level.

UNIX System Structure

Layered Systems Generalization of previous scheme Organization into a hierarchy of layers Layer n+1 uses services (exclusively) supported by layer n Easier to extend and evolve A call may have to propagate through lots of layers At occasions (optimization) layer n+1 may also access layers n-k directly Upcall, layer n-k calls into layer n has also been proposed (e.g., in the context of thread scheduling)

Operating System Layers

THE (Dijkstra,1968) Operator User programs Input/output mgmt. Operator-process com. Memory mgmt. Processor allocation and multiprog.

Ring-based protection System calls Increasing privilege level

OS/2 Layer Structure

Microkernel System Structure Moves as much as possible from the kernel into user space Communication takes place between user modules using message passing Benefits: - easier to extend a microkernel -easier to port the operating system to new architectures - more reliable (less code is running in kernel mode) - more secure (a server crashing in userspace) Not clear what should go into the microkernel Mach, QNX, NT, L4

Microkernel

Microkernel Examples AIX AmigaOS Amoeba Chorus microkernel EROS Haiku K42 LSE/OS (a nanokernel) KeyKOS (a nanokernel) The L4 microkernel family Mach, used in GNU Hurd, NEXTSTEP, OPENSTEP, and Mac OS X MERT Minix MorphOS NewOS QNX Phoenix-RTOS RadiOS Spring operating system VSTa Symbian OS OSE Nanokernel is a very light-weight microkernel

Windows NT Client-Server Structure

Monolithic vs. Microkernel Mon. tend to be easier to design, therefore faster development cycle and more potential for growth (see Linux) Mon. tend to be more efficient due to use of shared kernel memory (instead of IPC) However, very efficient micro kernels have been designed in research and laboratory settings Micro. tend to be used for embedded systems (e.g., robotic, medical etc.) In Micro. Many OS components reside in their own, private protected address space (not possibly in Mon. designs)

Others Hybrid kernels (a.k.a. modified microkernel) Add more code to the kernel for efficiency Windows 2000, Windows XP Based on message passing Based on minimalist concept Not based on loading modules

Exokernel Traditionally Kernel hides hardware from application Based on conceptual model (files systems, virtual address space, schedulers, sockets) Generally, this eases application development Sometimes problematic (e.g., security / privacy of stored data upon deletion) Security-oriented application requires file system to delete data Reliability-oriented application requires file system to keep data for failure recovery purposes

Exokernel cont d. Kernel allocates physical resources to application Application decides what to do with the resources Application can link to a libos to emulate a conventional OS Application uses resources as it wishes Exokernel could emulate several OSes, one for each application it runs

Exokernel Summary Provide as few abstractions as possible Kernel is relatively small Allocates, protects, and multiplexes resources Low-level hardware access enables to build custom abstractions on per application basis Performance reasons Does not force the layering of abstractions

Virtual Machines A virtual machine takes the layered approach to its logical conclusion. Hardware is simulated in software; all resources are virtualized; individual OS run on virtualized resources A virtual machine provides an interface identical to the underlying bare hardware The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory

Virtual Machines (Cont.) The resources of the physical computer are shared to create the virtual machines. CPU scheduling can create the appearance that users have their own processor. Spooling and a file system can provide virtual disks, virtual memory and virtual printers. A normal user time-sharing terminal serves as the virtual machine operator s console

System Models Non-virtual Machine Virtual Machine

Pros/Cons of Virtual Machines VM model provides complete protection At the cost of not enabling any direct resource sharing A virtual-machine system is a perfect vehicle for operating-systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation. The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine. Available in practice (IBM, VMWare, Sys161)