Operating system design l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

Operating System Design PowerPoint PPT Presentation


  • 123 Views
  • Uploaded on
  • Presentation posted in: General

Operating System Design. Today’s Lectures. I/O subsystem and device drivers Interrupts and traps Protection, system calls and operating mode OS structure What happens when you boot a computer?. Why Protection?. Application programs could: Start scribbling into memory

Download Presentation

Operating System Design

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Operating system design l.jpg

Operating System Design


Today s lectures l.jpg

Today’s Lectures

  • I/O subsystem and device drivers

  • Interrupts and traps

  • Protection, system calls and operating mode

  • OS structure

  • What happens when you boot a computer?


Why protection l.jpg

Why Protection?

  • Application programs could:

    • Start scribbling into memory

    • Get into infinite loops

  • Other users could be:

    • Gluttonous

    • Evil

    • Or just too numerous

  • Correct operation of system should be guaranteed

     A protection mechanism


Preventing runaway programs l.jpg

Preventing Runaway Programs

  • Also how to prevent against infinite loops

    • Set a timer to generate an interrupt in a given time

    • Before transferring to user, OS loads timer with time to interrupt

    • Operating system decrements counter until it reaches 0

    • The program is then interrupted and OS regains control.

  • Ensures OS gets control of CPU

    • When erroneous programs get into infinite loop

    • Programs purposely continue to execute past time limit

  • Setting this timer value is a privileged operation

    • Can only be done by OS


Protecting memory l.jpg

Protecting Memory

  • Protect program from accessing other program’s data

  • Protect the OS from user programs

  • Simplest scheme is base and limit registers:

  • Virtual memory and segmentation are similar

memory

Prog A

Base register

Loaded by OS before

starting program

Prog B

Limit register

Prog C


Protected instructions l.jpg

Protected Instructions

Also called privileged instructions. Some examples:

  • Direct user access to some hardware resources

    • Direct access to I/O devices like disks, printers, etc.

  • Instructions that manipulate memory management state

    • page table pointers, TLB load, etc.

  • Setting of special mode bits

  • Halt instruction

    Needed for:

  • Abstraction/ease of use and protection


Dual mode operation l.jpg

Dual-Mode Operation

  • Allows OS to protect itself and other system components

    • User mode and kernel mode

  • OS runs in kernel mode, user programs in user mode

    • OS is god, the applications are peasants

    • Privileged instructions only executable in kernel mode

  • Mode bit provided by hardware

    • Can distinguish if system is running user code or kernel code

    • System call changes mode to kernel

    • Return from call using RTI resets it to user

  • How do user programs do something privileged?


Crossing protection boundaries l.jpg

Crossing Protection Boundaries

  • User calls OS procedure for “privileged” operations

  • Calling a kernel mode service from user mode program:

    • Using System Calls

    • System Calls switches execution to kernel mode

User Mode

Mode bit = 1

Resume process

User process

System Call

Trap

Mode bit = 0

Kernel Mode

Mode bit = 0

Return

Mode bit = 1

Save Caller’s state

Execute system call

Restore state


System calls l.jpg

System Calls

  • Programming interface to services provided by the OS

  • Typically written in a high-level language (C or C++)

  • Mostly accessed by programs using APIs

  • Three most common APIs:

    • Win32 API for Windows

    • POSIX API for POSIX-based systems (UNIX, Linux, Mac OS X)

    • Java API for the Java virtual machine (JVM)

  • Why use APIs rather than system calls?

    • Easier to use


Why apis l.jpg

Why APIs?

System call sequence to copy contents of one file to another

Standard API


Reducing system call overhead l.jpg

Reducing System Call Overhead

  • Problem: The user-kernel mode distinction poses a performance barrier

    • Crossing this hardware barrier is costly.

    • System calls take 10x-1000x more time than a procedure call

  • Solution: Perform some system functionalityin user mode

    • Libraries (DLLs) can reduce number of system calls,

      • by caching results (getpid) or

      • buffering ops (open/read/write vs. fopen/fread/ fwrite).


  • Real system have holes l.jpg

    Real System Have Holes

    • OSes protect some things, ignore others

      • Most will blow up when you run:

      • Usual response: freeze

      • To unfreeze, reboot

      • If not, also try touching memory

    • Duality: Solve problems technically and socially

      • Technical: have process/memory quotas

      • Social: yell at idiots that crash machines

      • Similar to security: encryption and laws

    int main() {

    while (1) {

    fork();

    }

    }


    Fixed pie infinite demands l.jpg

    Fixed Pie, Infinite Demands

    • How to make the pie go further?

      • Resource usage is bursty! So give to others when idle.

      • Eg. When waiting for a webpage! Give CPU to idle process.

        • 1000 years old idea: instead of one classroom per student, restaurant per customer, etc.

    • BUT, more utilization  more complexity.

      • How to manage? (1 road per car vs. freeway)

      • Abstraction (different lanes), Synchronization (traffic lights), increase capacity (build more roads)

    • But more utilization  more contention.

      • What to do when illusion breaks?

      • Refuse service (busy signal), give up (VM swapping), backoff and retry (Ethernet), break (freeway)


    Fixed pie infinite demand l.jpg

    Fixed Pie, Infinite Demand

    • How to divide pie?

      • User? Yeah, right.

      • Usually treat all apps same, then monitor and re-apportion

    • What’s the best piece to take away?

      • Oses are the last pure bastion of fascism

      • Use system feedback rather than blind fairness

    • How to handle pigs?

      • Quotas (leland), ejection (swapping), buy more stuff (microsoft products), break (ethernet, most real systems), laws (freeway)

      • A real problem: hard to distinguish responsible busy programs from selfish, stupid pigs.


    Operating system structure l.jpg

    Operating System Structure

    • An OS is just a program:

      • It has main() function that gets called only once (during boot)

      • Like any program, it consumes resources (such as memory)

      • Can do silly things (like generating an exception), etc.

    • But it is a very strange program:

      • “Entered” from different locations in response to external events

      • Does not have a single thread of control

        • can be invoked simultaneously by two different events

        • e.g. sys call & an interrupt

      • It is not supposed to terminate

      • It can execute any instruction in the machine


    Os control flow l.jpg

    OS Control Flow

    From boot

    main()

    System call

    Initialization

    Interrupt

    Exception

    Idle

    Loop

    Operating System Modules

    RTI


    Operating system structure17 l.jpg

    Operating System Structure

    • Simple Structure: MS-DOS

      • written to provide the most functionality in the least space

    • Disadvantages:

      • Not modular

      • Inefficient

      • Low security


    General os structure l.jpg

    App

    App

    App

    Memory

    Manager

    File

    Systems

    Security

    Module

    Device

    Drivers

    Interrupt

    handlers

    Boot &

    init

    Extensions &

    Add’l device drivers

    General OS Structure

    API

    Process

    Manager

    Network

    Support

    Service

    Module

    Monolithic Structure


    Layered structure l.jpg

    Layered Structure

    • OS divided into number of layers

      • bottom layer (layer 0), is the hardware

      • highest (layer N) is the user interface

      • each uses functions and services of only lower-level layers

    • Advantages:

      • Simplicity of construction

      • Ease of debugging

      • Extensible

    • Disadvantages:

      • Defining the layers

      • Each layer adds overhead


    Layered structure20 l.jpg

    App

    App

    App

    File

    Systems

    Memory

    Manager

    Device

    Drivers

    Interrupt

    handlers

    Extensions &

    Add’l device drivers

    Layered Structure

    API

    Object

    Support

    Network

    Support

    Process

    Manager

    M/C dependent basic implementations

    Hardware Adaptation Layer (HAL)

    Boot &

    init


    Microkernel structure l.jpg

    Microkernel Structure

    • Moves as much from kernel into “user” space

    • User modules communicate 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

      • Example: Mach, QNX

    • Detriments:

      • Performance overhead of user to kernel space communication

      • Example: Evolution of Windows NT to Windows XP


    Microkernel structure22 l.jpg

    App

    App

    Memory

    Manager

    Security

    Module

    File

    Systems

    Device

    Drivers

    Interrupt

    handlers

    Boot &

    init

    Extensions &

    Add’l device drivers

    Microkernel Structure

    Process

    Manager

    Network

    Support

    Basic Message Passing Support


    Modules l.jpg

    Modules

    • Most modern OSs implement kernel modules

      • Uses object-oriented approach

      • Each core component is separate

      • Each talks to the others over known interfaces

      • Each is loadable as needed within the kernel

    • Overall, similar to layers but with more flexible

    • Examples: Solaris, Linux, MAC OS X


    Virtual machines l.jpg

    Virtual Machines

    • Abstract single machine h/w as multiple execution envs

      • Abstraction has identical interface as underlying h/w

    • Useful

      • System building

      • Protection

    • Cons

      • implementation

    • Examples

      • VMWare, JVM


    Booting a system l.jpg

    Booting a System

    • CPU loads boot program from ROM

      • BIOS in PCs

    • Boot program:

      • Examines/checks machine configuration

        • number of CPUs, memory, number/type of h/w devices, etc.

      • Small devices have entire OS on ROM (firmware)

        • Why not do it for large OSes?

      • Read boot block from disk and execute

    • Find OS kernel, load it in memory, and execute it

    • Now system is running!


    Operating system in action l.jpg

    Operating System in Action

    • OS runs user programs, if available, else enters idle loop

    • In the idle loop:

      • OS executes an infinite loop (UNIX)

      • OS performs some system management & profiling

      • OS halts the processor and enter in low-power mode (notebooks)

      • OS computes some function (DEC’s VMS on VAX computed Pi)

    • OS wakes up on:

      • interrupts from hardware devices

      • traps from user programs

      • exceptions from user programs


    Unix structure l.jpg

    UNIX structure


    Windows structure l.jpg

    Windows Structure


    Modern unix systems l.jpg

    Modern UNIX Systems


    Mac os x l.jpg

    MAC OS X


    Vmware structure l.jpg

    VMWare Structure


  • Login