Operating System Design - PowerPoint PPT Presentation

Operating system design l.jpg
1 / 31

  • Updated 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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

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


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


Mode bit = 0

Kernel Mode

Mode bit = 0


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) {




    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


    System call






    Operating System Modules


    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














    Boot &


    Extensions &

    Add’l device drivers

    General OS Structure








    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












    Extensions &

    Add’l device drivers

    Layered Structure








    M/C dependent basic implementations

    Hardware Adaptation Layer (HAL)

    Boot &


    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













    Boot &


    Extensions &

    Add’l device drivers

    Microkernel Structure





    Basic Message Passing Support

    Modules l.jpg


    • 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