Lec6 OS Structure

download Lec6 OS Structure

of 21

Transcript of Lec6 OS Structure

  • 8/3/2019 Lec6 OS Structure

    1/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.1Operating System Concepts

    Operating Systems

    Lecture 6System Calls

    OS System Structure

  • 8/3/2019 Lec6 OS Structure

    2/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.2Operating System Concepts

    System Calls

    System calls provide the interface between a running program andthe operating system.

    Generally available as assembly-language instructions.

    Languages defined to replace assembly language for systems

    programming allow system calls to be made directly (e.g., C,C++)

  • 8/3/2019 Lec6 OS Structure

    3/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.3Operating System Concepts

    System Calls are Used Frequently

    A single program may make numerous system calls. For example, aprogram to read from one file and write to another would needsystem calls for the following:

    Prompt the user to enter file names

    Read in filenames

    Open input file

    Read from input file

    Open/create output file

    Write output to file

    Close input and output files

    The system must be able to signal and handle errors that occur.

  • 8/3/2019 Lec6 OS Structure

    4/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.4Operating System Concepts

    Passing Parameters

    Three general methods are used to pass parametersbetween a running program and the operating system.

    Pass parameters in registers.

    Store the parameters in a table in memory, and the

    table address is passed as a parameter in a register. Push (store) the parameters onto the stackby the

    program, and pop off the stack by operating system.

  • 8/3/2019 Lec6 OS Structure

    5/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.5Operating System Concepts

    Passing ofParameters As A Table

  • 8/3/2019 Lec6 OS Structure

    6/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.6Operating System Concepts

    Types of System Calls

    Process control

    create (fork), execute (exec), wait, end (exit), abort (kill), etc.

    File management

    creat, delete, open, close, read, write, cp, rm, mkdir, rmdir, ls, cat, more, grep,

    etc. get/set file attributes

    Device management read, write, attach (mount), detach (unmount), get/set device attributes

    Information maintenance

    get/set time or date, get/set file attributes (chmod, chown, chgrp), get/set

    process/device attributes (du, ps, etc) Communications

    send, receive, connect, accept, get/set status information, gethostid/sethostid,

    gethostbyname, etc.

  • 8/3/2019 Lec6 OS Structure

    7/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.7Operating System Concepts

    Process Control

    A process executing one program may want to load and execute another program(e.g. the shell loads and executes programs). The following are important

    considerations:

    Where does control return when the new process is finished?

    If return control to existing program, must save memory image of existing

    program before loading new process. If both programs are to run concurrently, the new process is added to the

    multiprogramming set of processes.

    Controlling execution of the process:

    get/set process attributes, terminate process

    Waiting for the process to finish wait event, signal event

    Terminating the process

    Normal (exit) or abnormal (abort) termination.

    There are multiple ways of implementing process control.

  • 8/3/2019 Lec6 OS Structure

    8/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.8Operating System Concepts

    MS-DOS Execution

    At System Start-up Running a Program

    MS-DOS runs the commandinterpreter on startup.

    It loads a new program into

    memory, writing over part of

    the interpreter.

    When the program terminates,

    the part of the interpreter not

    overwritten begins execution.

    It loads the rest of the

    interpreter from disk.

  • 8/3/2019 Lec6 OS Structure

    9/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.9Operating System Concepts

    UNIX Running Multiple Programs

    UNIX runs the shell on startup.

    To start a new process, it uses the fork command to

    create the process and exec to execute it.

    If the process is in the foreground, the shell waits for the

    process to finish.

    If the process is in the background, the user can

    continue to issue commands while the process is

    running.

    When the process is finished, it executes an exit system

    call.

  • 8/3/2019 Lec6 OS Structure

    10/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.10Operating System Concepts

    Message Passing

    Processes use message passing to send messages to one another. First, the connection must be opened.

    The name of the communicator must be known (hos tname or host id,

    process name or process id). Use get process id or get host id.

    open connection, close connection

    recipient uses accept connection

    The initiator is the client. The recipient of the request is the server.

    Exchange of information made with write message system calls.

  • 8/3/2019 Lec6 OS Structure

    11/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.11Operating System Concepts

    Shared Memory

    In memory sharing, processes communicate by writing and readingto the same memory addresses.

    Processes use map memory system calls to access memory

    owned by other processes.

    Both processes must agree to remove O.S. memory restriction sothat they can access the same region of memory.

    The processes are responsible for the form and location of the

    data.

    The processes are responsible for making sure that they are notwriting to the same memory area simultaneously.

  • 8/3/2019 Lec6 OS Structure

    12/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.12Operating System Concepts

    Communication Models

    Msg Passing Shared Memory

    Communication may take place using either message passing or

    shared memory.

  • 8/3/2019 Lec6 OS Structure

    13/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.13Operating System Concepts

    System Programs

    System programs provide a convenient environment for program

    development and execution. The can be divided into:

    File manipulation

    Status information

    File modification Programming language support

    Program loading and execution

    Communications

    Application programs

    Most users view of the operation system is defined by system

    programs, not the actual system calls.

  • 8/3/2019 Lec6 OS Structure

    14/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.14Operating System Concepts

    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 andlevels of functionality are not well separated

  • 8/3/2019 Lec6 OS Structure

    15/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.15Operating System Concepts

    MS-DOS Layer Structure

  • 8/3/2019 Lec6 OS Structure

    16/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.16Operating System Concepts

    UNIX System Structure

    UNIX limited by hardware functionality, the original UNIXoperating 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.

  • 8/3/2019 Lec6 OS Structure

    17/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.17Operating System Concepts

    UNIX System Structure

  • 8/3/2019 Lec6 OS Structure

    18/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.18Operating System Concepts

    Layered Approach

    The operating system is divided into a number of layers (levels),each built on top of lower layers. The bottom layer (layer 0), is

    the hardware; the highest (layer N) is the user interface.

    With modularity, layers are selected such that each uses

    functions (operations) and services of only lower-level layers. Advantage: Modularity makes it easy to modify and extend.

    Disadvantage: Some functions may depend on one another,

    making a strict hierarchy difficult to implement.

  • 8/3/2019 Lec6 OS Structure

    19/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.19Operating System Concepts

    An Operating System Layer

  • 8/3/2019 Lec6 OS Structure

    20/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.20Operating System Concepts

    OS/2 Layer Structure

  • 8/3/2019 Lec6 OS Structure

    21/21

    Silberschatz, Galvin and Gagne 2002Modified for CSCI 399, Royden, 2005

    3.21Operating System Concepts

    Microkernel System Structure

    Moves as much 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

    Example: Mac OS X is based on the Mach micro kernel.