chapter 01

Upload: sy-nguyen

Post on 06-Jan-2016

215 views

Category:

Documents


0 download

DESCRIPTION

Chapter 1 OS&CN

TRANSCRIPT

  • MODERN OPERATING SYSTEMSThird Edition

    ANDREW S. TANENBAUM

    Chapter 1Introduction

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Outline

    What is an operating system The history of Operating System Hardware of operating system Important concepts of Operating System

  • What Is An Operating System

    A modern computer consists of:

    One or more processors Main memory Disks Printers Various input/output devices

    Managing all these components requires a layer of software the operating system

  • What is an Operating System? A modern computer is very complex.

    Networking Disks Video/audio card .

    It is impossible for every application programmer to understand every detail

    A layer of computer software is introduced to provide a better, simpler, cleaner model of the resources and manage them

  • What Is An Operating System

    Figure 1-1. Where the operating system fits in.

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • What is an Operating System? Users use various OS

    Windows, Linux, Mac OS etc. User interacts with shell or GUI

    part of OS? they use OS to get their work done

    Is device driver part of OS?

  • What is an Operating System? On top of hardware is OS Most computers have two modes of

    operation: Kernel mode and user mode OS runs in kernel mode, which has complete

    access to all hardware and can execute any instruction

    Rest of software runs in user mode, which has limited capability

    Shell or GUI is the lowest level of user mode software

  • What is an operating system?

    Two functions: From top to down: provide application

    programmers a clean abstract set of resources instead of hardware ones

    From down to top: Manage these hardware resources

  • The Operating System as an Extended Machine

    Figure 1-2. Operating systems turn ugly hardware into beautiful abstractions.

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • As an extended machine Abstraction:

    CPUprocess Storage - files Memory address space

    4 types of people: Industrial engineer: design hardware Kernel designer Application programmer: OSs user End users

  • The Operating System as a Resource Manager

    Allow multiple programs to run at the same time Manage and protect memory, I/O devices, and

    other resources Includes multiplexing (sharing) resources in two

    different ways: In time In space

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • As a resource manager

    Modern OS runs multiple programs of multiple users at the same time Imagine what would happen if several programs

    want to print at the same time? How to account the resource usage of each

    process? Resources can be multiplexed:

    How to ensure fairness and efficiency?

  • summary

    Operating system is a software Is a complex software Runs in kernel mode Manages hardware Provide a friendly interface for application

    programmer

  • History of Operating Systems

    Generations:

    (194555) Vacuum Tubes (195565) Transistors and Batch Systems (19651980) ICs and Multiprogramming (1980Present) Personal Computers

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • 1st: vacuum tubes

    Large and slow Engineers design, build, operate and

    maintain the computer All programming is done with machine

    language, or by wiring circuits using cables insert plugboards into the computer and

    operate The work is mainly numerical calculations

  • 2nd: transistors and batch systems Also called mainframes Computers are managed by professional operators Programmers use punch card to run programs;

    operators operate (load compiler, etc ) and collect output to the user

    Complains soon come: Human Operation between computer operation Lead to batch system Collect a batch of jobs in the input room, then read them

    into a magnetic tape; the same for output

  • 2nd: Transistors and Batch Systems (1)

    Figure 1-3. An early batch system. (a) Programmers bring cards to 1401. (b)1401 reads batch of jobs onto tape.

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Transistors and Batch Systems (2)

    Figure 1-3. (c) Operator carries input tape to 7094. (d) 7094 does computing. (e) Operator carries output tape to

    1401. (f) 1401 prints output. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Transistors and Batch Systems (4)

    Figure 1-4. Structure of a typical FMS job.

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • 3rd: IC and Multiprogramming

    OS/360: a dinosaur stuck in a tar pit Aims to adapts 1401/7904, covers all trades of life However, OS/360 introduces several key

    techniques Multi-programming: solve the problem of CPU idling Spooling: simultaneous peripheral operation on line

    Whenever a job finishes, OS load a new job from disk to the empty-partition

  • Figure 1-5. A multiprogramming system with three jobs in memory.

    3rd: ICs and Multiprogramming

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • 3rd: Ics and Multiprogramming

    Problems: 3rd generation OS was well suited for big scientific

    calculations and massive data processing But many programmers complain a lot for not

    be able to debug quickly. Why? And the solution to this problem would be.? Timesharing:

    A variant of multiprogramming Provide both fast interactive service but also fits big

    batch work

  • 3rd: IC and Multiprogramming

    A system to be remembered: MULTICS A machine that would support hundreds of

    simultaneous timesharing users like the electricity system (like a web server nowadays)

    Introduces many brilliant ideas but enjoys no commercial success

    Its step-child is the well-known and time-honored UNIX

    System V/ FreeBSD, MINIX, Linux

  • 4th: personal computers Computers have performance similar to 3rd

    generation, but prices drastically different CP/M

    First disk-based OS 1980, IBM PC, Basic Interpreter, DOS, MS-

    DOS GUI--LisaApple: user friendly MS-DOS with GUI Win95/98/me

    winNT/xp

  • Summary

    4 generations OS Develops with hardware and user needs Multi-user, multi-programming, time-sharing

  • Computer Hardware Review

    Figure 1-6. Some of the components of a simple personal computer.

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Hardware: processor Brain of computer

    Fetches instruction from memory and execute Cycle of CPU:

    fetch, decode, execute CPU has registers to store variable and temporary

    result: load from memory to register; store from register to memory

    Program counter: next instruction to fetch Stack pointer: the top of the current stack PSW: program status word, priority, mode

  • A reference Adam Smith: Wealth of Nation

    Of the Division of labor

    One man draws out the wire, another straights it, a third cuts it, a fourth points it, a fifth grinds it at the top

    One person could make up to forth-eight thousand pins in a day

  • CPU Pipelining

    Figure 1-7. (a) A three-stage pipeline. (b) A superscalar CPU.

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • CPU Pipeline

    Accelerate the execution Cause headaches to OS/compiler writers

    For superscalar: instructions are often executed out of order

  • Figure 1-8. (a) A quad-core chip with a shared L2 cache. (b) A quad-core chip with separate L2 caches.

    Multithreaded and Multicore Chips

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-9. A typical memory hierarchy. The numbers are very rough approximations.

    Memory (1)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • memory Memory is where computer fetch and store

    data, ideally, it should be both chip/large The best people can do, is to construct a

    memory hierarchy Cache lines:

    Memory divided into cache lines; the mostly used ones are stored in caches

    Cache hit, cache miss Cache: whenever there is disparity in usage or

    speed; used to improve performance

  • Questions when dealing with cache:

    When to put a new item into the cache. Which cache line to put the new item in. Which item to remove from the cache when a

    slot is needed. Where to put a newly evicted item in the larger

    memory.

    Memory (2)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-10. Structure of a disk drive.

    Disks

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Disks Cheap and large: two orders better than RAM Slow: three orders worse than RAM Mechanical movement to fetch data One or more platterrotate rpm Information is stored on concentric circles Arm, track, cylinder, sector Disk helps to implement Virtual Memory

    When no enough memory is available, disks are used as the storage, and memory as cache

  • Figure 1-11. (a) The steps in starting an I/O device and getting an interrupt.

    I/O Devices

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • I/O devices

    Two parts: a controller and a device Controller: to provide a simpler interface to

    OS Device driver: talks to controller, give

    commands and accepts response Busy waiting/interrupt/DMA

  • Booting the Computer BIOSbasic input/output system

    On the parentboard, low-level I/O software Checks RAM, keyboard and other basic devices Determine the boot device: floppy, CD-ROM, disk First sector of the boot-device is read into memory The sector contains program to check which

    partition is active Then a secondary boot-loader is read into

    memory and reads in operating system from the active partition

  • The Operating System Zoo

    Mainframe operating systems Server operating systems Multiprocessor operating systems Personal computer operating systems Handheld operating systems Embedded operating systems Sensor node operating systems Real-time operating systems Smart card operating systems

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Processes Address spaces Files Input/Output Protection The shell Ontogeny recapitulates phylogeny

    Large memories Protection hardware Disks Virtual memory

    Operating System Concepts

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • processes

    Process Address space: 0-4G; executable program,

    programs data, and its stack Other resources like: registers, files, alarms,

    related processes, and other information A process is fundamentally a container that holds

    information for a program to run

  • Processes

    Figure 1-13. A process tree. Process A created two child processes, B and C. Process B created three child

    processes, D, E, and F.

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Address Space

    The memory used by a process, in concept MOS allows multiple processes in memory

    simultaneously Some processes need more memory than

    physically available virtual memory

  • Figure 1-14. A file system for a university department.

    Files (1)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-15. (a) Before mounting, the files on the CD-ROM are not accessible. (b) After mounting, they are part of the file hierarchy.

    Files (2)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-16. Two processes connected by a pipe.

    Files (3)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • System calls

    System calls is the interface users contact with OS and hardware

    System calls vary from system to system, but the underlying concepts are similar

  • Figure 1-17. The 11 steps in making the system call read(fd, buffer, nbytes).

    System Calls

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-18. Some of the major POSIX system calls.

    System Calls for Process Management

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-18. Some of the major POSIX system calls.

    System Calls for File Management (1)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-18. Some of the major POSIX system calls.

    System Calls for File Management (2)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-18. Some of the major POSIX system calls.

    Miscellaneous System Calls

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-19. A stripped-down shell.

    A Simple Shell

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-20. Processes have three segments: text, data, and stack.

    Memory Layout

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-21. (a) Two directories before linking /usr/jim/memo to asts directory. (b) The same directories after linking.

    Linking

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-22. (a) File system before the mount. (b) File system after the mount.

    Mounting

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-23. The Win32 API calls that roughly correspond to the UNIX calls of Fig. 1-18.

    Windows Win32 API

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Monolithic systems basic structure:

    A main program that invokes the requested service procedure.

    A set of service procedures that carry out the system calls.

    A set of utility procedures that help the service procedures.

    Operating Systems Structure

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-25. Structure of the THE operating system.

    Layered Systems

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-26. Structure of the MINIX 3 system.

    Microkernels

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-27. The client-server model over a network.

    Client-Server Model

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Figure 1-29. (a) A type 1 hypervisor. (b) A type 2 hypervisor.

    Virtual Machines (2)

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • The C language Header files Large programming projects The model of run time

    The World According to C

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • World according to C

    Operating systems are large C programs consisting of many pieces written by many programmers

    C language Data types, variables, control statements Header files: declaration, definition, macros For a large programming project

  • Figure 1-30. The process of compiling C and header files to make an executable.

    The Model of Run Time

    Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

  • Large programming projects

    C preprocessor: Gets the header, expand macros, handling

    conditional compilation Compiler

    .c -.o Linker

    Combine all .o to an executable program; traditionally a.out

  • Gcc: preprocess-assemble-compile-link gcc -E hello.c o hello.i gcc -S hello.i -o hello.s gcc -c hello.s o hello.o gcc hello.o o hello

    ldd hello

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60Slide 61Slide 62Slide 63Slide 64Slide 65Slide 66Slide 67Slide 68Slide 69Slide 70