Operating Systems Lecture 3 - PowerPoint PPT Presentation

About This Presentation
Title:

Operating Systems Lecture 3

Description:

In this era of computer usage, every general-purpose operating system must have ... It must provide an environment to run processes in a multiprogramming fashion. ... – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 22
Provided by: profmnag
Category:

less

Transcript and Presenter's Notes

Title: Operating Systems Lecture 3


1
Operating SystemsLecture 3
  • Multiprogramming, Multithreading,
    Multiprocessing, and Multitasking
  • M. Naghibzadeh
  • Reference M. Naghibzadeh, Operating System
    Concepts and Techniques, iUniverse publisher,
    2005.
  • To order www.iUniverse.com, www.barnesandnoble.
    com, or www.amazon.com

2
Definitions
  • A program is a set of instructions which is
    prepared to perform a specific assignment if
    executed by a computer.
  • A program need not be online it could be stored
    on a flash memory and placed in ones pocket.
  • A program is not an active entity. It is
    completely passive.

3
Definitions
  • The operating system creates a process from a
    program.
  • To do so, it has to perform many activities, like
    assigning a name, allocating space, (partially)
    loading the corresponding program, etc.
  • Roughly speaking, A process is an active program.
  • A process is created to run a program by using
    computer facilities like a human who is born to
    live his life.

4
Interoduction
  • In a single-programming environment there exist
    at the most one process at any given time thus
    there is usually one ongoing activity at a time.
  • That is, from many devices within the computer
    often one device is active at any given time.
  • This means, if a process has asked for a data to
    be entered by the user, the system has to wait
    until this data is entered before being able to
    proceed.
  • If this data entry takes one second the CPU could
    have done millions of instructions if it did not
    have to wait.
  • With single-programming the computer facilities
    are not used in an efficient manner.

5
Process States in Single-Programming
  • With single-programming, right after a process is
    born the system starts executing its
    corresponding programs instruction.
  • The instruction execution continues until the
    process needs to read some data from an input
    device or wants to write some results on an
    output device.
  • There are special purpose processors called
    Input/Output (I/O) processors for transferring
    data from input devices to main memory and from
    main memory to output devices.
  • It is understandable that such a processor will
    perform the specific task better than a
    general-purpose processor, i.e., CPU.
  • While an I/O operation is in progress, the CPU
    has to wait and do nothing. After the I/O
    operation is completed, the CPU will resume the
    execution of the instructions.
  • This cycle, of going through process states of
    running and input/output, may be repeated over
    and over, until the job is completed or, for some
    reason, the process is aborted.
  • The life cycle of a process in a
    single-programming environment is shown in Figure
    1.

6
Processs life cycle
  • Figure 1 The life cycle of processes in
    single-programming environments

7
Processor wait ratio
  • If the average execution time of a program with
    single-programming is e and the average I/O time
    is b, then the following ratio is the CPU wait
    fraction (w). It is actually the fraction of the
    time the CPU is idle.
  • For example, if execution time of programs is
    10, of which 9 seconds is spent on I/O, then w
    9/10 0.9. This means, on the average, 90 of
    the CPU time is wasted.

8
The Multiprogramming Concept
  • Multiprogramming is a technique that allows more
    than one program to be ready for execution
    (process) and provides the ability to switch from
    one process to another, even if the former is not
    completed.
  • Of course, sometimes in the future we will have
    to switch back to the first process and resume
    (not restart) its computation.
  • This technique works for both single-processor
    (like our personal computers) and multiprocessor
    (such as large main frame) computers.
  • Multiprogramming is mainly accomplished by the
    operating system. The hardware provides some
    specific circuitry that may be used by the
    operating system in the course of facilitating
    multiprogramming.

9
Multiprogramming and PCs
  • Do we need multiprogramming for PCs? Yes. All PC
    users like to run many applications
    simultaneously. Nobody runs for example an
    Internet explorer looking for an information
    while staring at the monitor for the results for
    a long time.
  • In this era of computer usage, every
    general-purpose operating system must have the
    following capabilities
  • It must provide an environment to run processes
    in a multiprogramming fashion.
  • It must act as a service provider for all common
    services that are usually needed by computer
    users, such as copying files, making new folders,
    compressing information, sending and receiving
    messages from other computers in the network,
    etc.
  • Its user interface must be easy to use and
    pleasant to work with.

10
Multiprogramming productivity
  • Multiprogramming increases system productivity.
    If CPU wait time is represented by w in
    single-programming environment, the CPU wait time
    decreases to approximately for a system
    running n processes simultaneously.
  • Example If w .9 then 0.59 meaning
    that if we have five processes running
    simultaneously, the CPU utilization is increased
    by (0.41-.10)100 310.
  • By increasing the CPU utilization other devices
    utilization is also increased.

11
Process State Transition Diagram
  • The life cycle of a process in multiprogramming
    is not the same as singleprogramming.
  • A process may be ready to use the CPU to run its
    program while the CPU is running another program.
  • The basic states are thus Ready, Running, and
    Wait/Blocked. Wait refers to a state in which the
    process is waiting for a device or an event and
    Blocked is for the case the process is waiting
    for its I/O to be completed by an I/O processor.

12
Processs life cycle
  • Figure 2 Basic process state transition diagram
    in multiprogramming

13
Requirements of Multiprogramming
  • Process Switching possibility the system must be
    able to safely switch from one process to
    another. This is called Context switching.
  • Direct Memory Access I/O processors must be able
    to directly access main memory without
    interference and conflictions.
  • The Interrupt System I/O processors and
    monitoring devices must be able to safely
    communicate with the CPU.

14
Multiprocessing
  • If you think clearly, you will notice that we
    should have used multiprocessing instead of
    multiprogramming. This is true. Unfortunately,
    the term multiprogramming is recognized for
    this technique of the operating system and we
    will stick to it.
  • On the other hand, multiprocessing is used for
    systems with more than one processor. Processors,
    in such a system, can collectively run many tasks
    simultaneously.

15
Multitasking
  • Computer users like to have many application
    programs simultaneously operational. This is
    necessary because some application programs
    require long processing times before the desired
    results can be produced.
  • It is true that by having more than one
    application program operational, the time that it
    takes for each process to complete its task
    increases. However, the overall system
    productivity and, as a result, overall user gain
    increases.
  • These simultaneously executing programs are
    called tasks. Therefore, a system with the
    capability of multitasking allows users to
    activate more than one task, or application
    program, at a time. An Internet browser that
    searches for some information and A
    word-processing software that is activated to
    perform the word-processing task are
    applications.
  • The operating system will switch between tasks
    based on the tasks current states and their
    requirements and priorities.
  • Multitasking is only possible when
    multiprogramming is the fundamental capability of
    simultaneously executing pieces of software.
  • Most modern operating systems, like UNIX, Linux,
    and Windows, support multitasking.

16
Process Deficiencies
  • A process is created to run a program to perform
    a duty.
  • What if we need to perform two or more similar
    duties?
  • One approach is to create more than one exact
    same processes each assigned to handle one of
    the two duties.
  • This is a correct solution, but it spawns two
    major problems
  • As the numbers of duties increase, the number of
    processes increases too, and very soon we will
    either run out of main memory or, in the case of
    virtual memory, we may reach an inefficient state
    of main memory.
  • By increasing the number of processes, the number
    of objects that compete for computer resources
    increases, too. It will led to an undesirable
    state in which many processes cannot complete
    their duty because they do not get the chance to
    use the resources needed.
  • Thread is introduced to solve these problems

17
Thread
  • Thread refers to a path through a programs
    instructions during its execution.
  • Multithreading methodology allows more than one
    thread of execution for every process.
  • Now, if we need to perform two or more similar
    duties we can crate one process and from which
    create more than one thread each assigned to
    handle one of the duties.
  • All threads of a single process share the same
  • address space
  • global data
  • files for storing and/or reading information
  • resources that are assigned to their
    corresponding process.

18
Multithreading
  • A multithreading operating system is one that is
    capable of handling processes and threads at the
    same time and in which from each process the
    system is able to generate more than one thread.
  • In such an operating system, there must be
    facilities for thread creation, deletion,
    switching, etc.
  • Such an operating system allows users to generate
    more than one request to a process at a time. For
    example, a browser can be made to search
    simultaneously for more than one topic, even
    though there is only one copy of the browser
    program in main memory.
  • The multiprogramming methodology and technique
    are essential in the implementation of
    multithreading. In this new environment, a thread
    becomes the smallest functional object to which
    CPU (or a PU) is assigned.
  • Details of thread methodology and technique is
    discussed in upcoming lectures.

19
Summary
  • The ultimate goal in the design and
    implementation of an operating system is to
    produce a handy software program that manages
    computer resources in the most efficient way so
    as to serve computer users correctly, reliably
    and fairly.
  • This is not achievable in single-programming
    environments.
  • Modern operating systems are built with the
    capabilities of multiprogramming, multitasking,
    and multithreading.
  • Providing these capabilities requires many
    hardware and software methodologies and
    techniques.
  • A good understanding of process creation, life
    cycle, and termination, along with its state
    transition conditions is most essential in
    elucidating the needs of different mechanisms
    within the operating system.
  • Some of these mechanisms, namely process
    switching, interrupt system and handling, and
    direct memory access, are briefly explained in
    this chapter.
  • Multithreading, as an offspring of
    multiprogramming, has become an essential part of
    all modern operating systems.

20
Find out
  • UNIX Process states
  • Windows thread states
  • What is meant by the degree of multiprogramming
  • Why we have a transition from the Running state
    to the Ready state in the state transition
    diagrams.
  • How the state transition diagram is changed if
    the wait/blocked state is broken into two states.

21
  • Thank you!
Write a Comment
User Comments (0)
About PowerShow.com