Computer Systems and Systems Software Lecture 15 - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Computer Systems and Systems Software Lecture 15

Description:

First developed in 1969 by Ken Thompson and Dennis Ritchie of the Research Group ... managed these packages by simply providing a means of unpacking all the ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 30
Provided by: martin159
Category:

less

Transcript and Presenter's Notes

Title: Computer Systems and Systems Software Lecture 15


1
Computer Systems and Systems Software - Lecture 15
  • In this lecture we will look at UNIX Linux
  • History
  • Overall design
  • User/Programmer Interface
  • Process Management

2
History
  • First developed in 1969 by Ken Thompson and
    Dennis Ritchie of the Research Group at Bell
    Laboratories incorporated features of other
    operating systems, especially MULTICS.
  • The third version was written in C, which was
    developed at Bell Labs specifically to support
    UNIX.
  • The most influential of the non-Bell Labs and
    non-ATT UNIX development groups University of
    California at Berkeley (Berkeley Software
    Distributions).

3
  • 4BSD UNIX resulted from DARPA funding to develop
    a standard UNIX system for government use.
  • Developed for the VAX, 4.3BSD is one of the most
    influential versions, and has been ported to many
    other platforms.
  • Several standardization projects seek to
    consolidate the variant flavors of UNIX leading
    to one programming interface to UNIX.

4
Linux origins
  • First developed as a small but self-contained
    kernel in 1991 by Linus Torvalds, with the major
    design goal of UNIX compatibility.
  • Its history has been one of collaboration by many
    users from all around the world.
  • It has been designed to run efficiently and
    reliably on common PC hardware, but also runs on
    a variety of other platforms.
  • The core Linux operating-system kernel is
    entirely original, but it can run much existing
    free UNIX software, resulting in an entire
    UNIX-compatible operating system free from
    proprietary code.

5
Linux system
  • Linux uses many tools developed as part of
    Berkeleys BSD operating system, MITs X Window
    System, and the Free Software Foundations GNU
    project.
  • The main system libraries were started by the GNU
    project, with improvements provided by the Linux
    community.
  • Linux networking-administration tools were
    derived from 4.3BSD code recent BSD derivatives
    such as FreeBSD have borrowed code from Linux in
    return.
  • The Linux system is maintained by a loose network
    of developers.

6
Linux Distributions
  • Standard, precompiled sets of packages, or
    distributions, include the basic Linux system,
    system installation and management utilities, and
    ready-to-install packages of common UNIX tools.
  • The first distributions managed these packages by
    simply providing a means of unpacking all the
    files into the appropriate places modern
    distributions include advanced package
    management.
  • Early distributions included Slackware. Red Hat
    is common distributions from commercial source.

7
Linux licensing
  • The Linux kernel is distributed under the GNU
    General Public License (GPL), the terms of which
    are set out by the Free Software Foundation.
  • Anyone using Linux, or creating their own
    derivate of Linux, may not make the derived
    product proprietary software released under the
    GPL may not be redistributed as a binary-only
    product.

8
Design Principles
  • Linux is a multiuser, multitasking system with a
    full set of UNIX-compatible tools.
  • Its file system adheres to traditional UNIX
    semantics, and it fully implements the standard
    UNIX networking model.
  • Main design goals are speed, efficiency, and
    standardization.
  • Linux is designed to be compliant with the
    relevant POSIX standards

9
UNIX/Linux Components
  • Like most UNIX implementations, Linux is composed
    of three main bodies of code the most important
    distinction is between the kernel and all other
    components.
  • The kernel is responsible for maintaining the
    important abstractions of the operating system.
  • Kernel code executes internel mode with full
    access to all the physical resources of the
    computer.
  • All kernel code and data structures are kept in
    the same single address space.
  • Provides file system, CPU scheduling, memory
    management, and other OS functions.

10
  • The system libraries define a standard set of
    functions through which applications interact
    with the kernel, and which implement much of the
    operating-system functionality that does not need
    the full privileges of kernel code.
  • The system programs use the kernel-supported
    system calls to provide useful functions, such as
    compilation and file manipulation.

11
UNIX/Linux overall structure
  • System User User Compilers
  • management Processes Utility
  • programs Programs
  • --------------------------------------------------
    -------------------------
  • Shells
  • --------------------------------------------------
    -------------------------
  • System Shared Libraries
  • _______________________________________
  • Linux Kernel
  • --------------------------------------------------
    ----------------
  • Loadable kernel modules

12
Linux kernel modules
  • Sections of kernel code that can be compiled,
    loaded, and unloaded independently of the rest of
    the kernel.
  • A kernel module may typically implement a device
    driver, a file system, or a networking protocol.
  • The module interface allows third parties to
    write and distribute, on their own terms, device
    drivers or file systems that could not be
    distributed under the GPL.
  • Kernel modules allow a Linux system to be set up
    with a standard, minimal kernel, without any
    extra device drivers built in. Linux then allows
    additional modules to be loaded and integrated
    with the base system - tailored to underlying
    hardware and needs of system

13
System Calls
  • System calls define the programmer interface to
    UNIX
  • The set of systems programs commonly available
    defines the user interface.
  • The programmer and user interface define the
    context that the kernel must support.
  • Roughly three categories of system calls in UNIX.
  • File manipulation (same system calls also support
    device manipulation)
  • Process control
  • Information manipulation.

14
User Interface - Shells
  • Shell the user process which executes programs
    (also called command interpreter).
  • Called a shell, because it surrounds the kernel.
  • The shell indicates its readiness to accept
    another command by typing a prompt, and the user
    types a command on a single line.
  • A typical command is an executable binary object
    file.
  • The shell travels through the search path to find
    the command file, which is then loaded and
    executed.

15
Shells and Commands (Cont.)
  • The directories /bin and /usr/bin are almost
    always in the search path.
  • The shell usually suspends its own execution
    until the command completes.
  • Programmers and users mainly deal with already
    existing systems programs the needed system
    calls are embedded within the program and do not
    need to be obvious to the user.
  • The most common systems programs are file or
    directory oriented e.g. mkdir, rmdir, cd, pwd,
    ls, cp, mv, rm

16
Process Control
  • A process is a program in execution.
  • Process control system calls
  • fork creates a new process that is a copy of the
    parent process
  • execve is used after a fork to replace the child
    processess virtual memory space (program code
    and data) with program code and data of a program
    file passed as parameter to execve call
  • exit terminates a process
  • A parent may wait for a child process to
    terminate wait provides the process id of a
    terminated child so that the parent can tell
    which child terminated.

17
Illustration of Process Control Calls
18
Process Control (Cont.)
  • Processes communicate via pipes queues of bytes
    between two processes that are accessed by a file
    descriptor.
  • All user processes are descendants of one
    original process, init.
  • init forks a getty process initialises terminal
    line parameters and passes the users login name
    to login.
  • login sets the numeric user identifier of the
    process to that of the user
  • executes a shell which forks subprocesses for
    user commands.

19
Process Control (Cont.)
  • setuid bit allows programs to sets the effective
    user identifier of the process to the user
    identifier of the owner of a file being accessed,
    and leaves the real user identifier as it was.
  • setuid scheme allows certain processes to have
    more than ordinary privileges when accessing
    certain system resources while still being
    executable by ordinary users e.g. changing
    password involves process invoked by user
    changing password file.

20
Process Management
  • Representation of processes is a major design
    problem for operating system.
  • UNIX is distinct from other systems in that
    multiple processes can be created and manipulated
    with ease.
  • These processes are represented in UNIX by
    various control blocks.
  • Control blocks associated with a process are
    stored in the kernel.
  • Information in these control blocks is used by
    the kernel for process control and CPU scheduling.

21
Process Control Blocks
  • The most basic data structure associated with
    processes is the process structure.
  • unique process identifier (PID)
  • scheduling information (e.g., priority)
  • pointers to other control blocks
  • The virtual address space of a user process is
    divided into text (program code), data, and stack
    segments.

22
System Data Segment
  • Most ordinary work is done in user mode system
    calls are performed in system mode.
  • The system and user phases of a process never
    execute simultaneously.
  • a kernel stack (rather than the user stack) is
    used for a process executing in system mode.
  • The user structure contains information about
    environment of process and resources allocated to
    it e.g. Owner user id, and open file descriptors
  • The kernel stack and the user structure together
    compose the system data segment for the process.

23
  • Every process with sharable text has a pointer
    from its process structure to a text structure.
  • always resident in main memory.
  • records how many processes are using the text
    segment
  • records where the page table for the text segment
    can be found on disk when it is swapped.

24
Finding parts of a process using process
structure
25
Allocating a New Process Structure
  • fork allocates a new process structure for the
    child process, and copies the user structure.
  • new page table is constructed
  • new main memory is allocated for the data and
    stack segments of the child process
  • copying the user structure preserves open file
    descriptors, user and group identifiers, signal
    handling, etc.

26
Allocating a New Process Structure
  • vfork does not copy the data and stack to the new
    process the new process simply shares the page
    table of the old one.
  • new user structure and a new process structure
    are still created
  • commonly used by a shell to execute a command and
    to wait for its completion
  • A parent process can use vfork to produce a child
    process the child uses execve to change its
    virtual address space, so there is no need for a
    copy of the parent.

27
  • Using vfork with a large parent process saves CPU
    time, but can be dangerous since any memory
    change occurs in both processes until execve
    occurs.
  • execve creates no new process or user structure
    rather the text and data of the process are
    replaced.

28
CPU Scheduling
  • Every process has a scheduling priority
    associated with it larger numbers indicate lower
    priority.
  • Negative feedback in CPU scheduling makes it
    difficult for a single process to take all the
    CPU time.
  • Process aging is employed to prevent starvation.
  • When a process chooses to relinquish the CPU, it
    goes to sleep on an event.

29
  • When that event occurs, the system process that
    knows about it calls wakeup with the address
    corresponding to the event, and all processes
    that had done a sleep on the same address are put
    in the ready queue to be run.
Write a Comment
User Comments (0)
About PowerShow.com