3.5 Interprocess Communication - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

3.5 Interprocess Communication

Description:

the motivation for creating threads. the similarities and differences between processes and threads. ... Programmer specifies applications contain threads of execution ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 22
Provided by: cs146
Category:

less

Transcript and Presenter's Notes

Title: 3.5 Interprocess Communication


1
3.5 Interprocess Communication
  • Many operating systems provide mechanisms for
    interprocess communication (IPC)
  • Processes must communicate with one another in
    multiprogrammed and networked environments
  • For example, a Web browser retrieving data from a
    distant server
  • Essential for processes that must coordinate
    activities to achieve a common goal

2
3.5.1 Signals
  • Software interrupts that notify a process that an
    event has occurred
  • Do not allow processes to specify data to
    exchange with other processes
  • Processes may catch, ignore or mask a signal
  • Catching a signal involves specifying a routine
    that the OS calls when it delivers the signal
  • Ignoring a signal relies on the operating
    systems default action to handle the signal
  • Masking a signal instructs the OS to not deliver
    signals of that type until the process clears the
    signal mask

3
3.5.2 Message Passing
  • Message-based interprocess communication
  • Messages can be passed in one direction at a time
  • One process is the sender and the other is the
    receiver
  • Message passing can be bidirectional
  • Each process can act as either a sender or a
    receiver
  • Messages can be blocking or nonblocking
  • Blocking requires the receiver to notify the
    sender when the message is received
  • Nonblocking enables the sender to continue with
    other processing
  • Popular implementation is a pipe
  • A region of memory protected by the OS that
    serves as a buffer, allowing two or more
    processes to exchange data

4
3.6 Case Study UNIX Processes
  • UNIX processes
  • All processes are provided with a set of memory
    addresses, called a virtual address space
  • A processs PCB is maintained by the kernel in a
    protected region of memory that user processes
    cannot access
  • A UNIX PCB stores
  • The contents of the processor registers
  • PID
  • The program counter
  • The system stack
  • All processes are listed in the process table

5
3.6 Case Study UNIX Processes
  • UNIX processes continued
  • All processes interact with the OS via system
    calls
  • A process can spawn a child process by using the
    fork system call, which creates a copy of the
    parent process
  • Child receives a copy of the parents resources
    as well
  • Process priorities are integers between -20 and
    19 (inclusive)
  • A lower numerical priority value indicates a
    higher scheduling priority
  • UNIX provides IPC mechanisms, such as pipes, to
    allow unrelated processes to transfer data

6
3.6 Case Study UNIX Processes
Figure 3.10 UNIX system calls.
7
Chapter 4 Thread Concepts
  • Outline4.1 Introduction4.2 Definition of
    Thread
  • 4.3 Motivation for Threads
  • 4.4 Thread States Life Cycle of a Thread
  • 4.5 Thread Operations
  • 4.6 Threading Models
  • 4.6.1 User-Level Threads
  • 4.6.2 Kernel-Level Threads
  • 4.6.3 Combining User- and Kernel-Level Threads
  • 4.7 Thread Implementation Considerations
  • 4.7.1 Thread Signal Delivery
  • 4.7.2 Thread Termination
  • 4.8 POSIX and Pthreads
  • 4.9 Linux Threads
  • 4.10 Windows XP Threads
  • 4.11 Java Multithreading Case Study, Part 1
    Introduction to Java Threads

8
Objectives
  • After reading this chapter, you should
    understand
  • the motivation for creating threads.
  • the similarities and differences between
    processes and threads.
  • the various levels of support for threads.
  • the life cycle of a thread.
  • thread signaling and cancellation.
  • the basics of POSIX, Linux, Windows XP and Java
    threads.

9
4.1 Introduction
  • General-purpose languages such as Java, C,
    Visual C .NET, Visual Basic .NET and Python
    have made concurrency primitives available to
    applications programmer
  • Multithreading
  • Programmer specifies applications contain threads
    of execution
  • Each thread designate a portion of a program that
    may execute concurrently with other threads

10
4.2 Definition of Thread
  • Thread
  • Lightweight process (LWP)
  • Threads of instructions or thread of control
  • Shares address space and other global information
    with its process
  • Registers, stack, signal masks and other
    thread-specific data are local to each thread
  • Threads may be managed by the operating system or
    by a user application
  • Examples Win32 threads, C-threads, Pthreads

11
4.2 Definition of Thread
Figure 4.1 Thread Relationship to Processes.
12
4.3 Motivation for Threads
  • Threads have become prominent due to trends in
  • Software design
  • More naturally expresses inherently parallel
    tasks
  • Performance
  • Scales better to multiprocessor systems
  • Cooperation
  • Shared address space incurs less overhead than IPC

13
4.3 Motivation for Threads
  • Each thread transitions among a series of
    discrete thread states
  • Threads and processes have many operations in
    common (e.g. create, exit, resume, and suspend)
  • Thread creation does not require operating system
    to initialize resources that are shared between
    parent processes and its threads
  • Reduces overhead of thread creation and
    termination compared to process creation and
    termination

14
4.4 Thread States Life Cycle of a Thread
Figure 4.2 Thread life cycle.
15
Group Discussion 2 1/29/08, due in class
1. Name two types of IPC.
2. T/F A blocking send is asynchronous
communication. 3. What mechanism is used
popularly for implementing message passing? 4.
In Unix, if a parent process wants to create a
child process and then wait till the child
complete, what are the system calls involved? 5.
We have seen two concepts process and
thread What is in common between the two
concepts? What is different between the two
concepts?
16
4.6.1 User-level Threads
  • User-level threads perform threading operations
    in user space
  • Threads are created by runtime libraries that
    cannot execute privileged instructions or access
    kernel primitives directly
  • User-level thread implementation
  • Many-to-one thread mappings
  • Operating system maps all threads in a
    multithreaded process to single execution context
  • Advantages
  • User-level libraries can schedule its threads to
    optimize performance
  • Synchronization performed outside kernel, avoids
    context switches
  • More portable
  • Disadvantage
  • Kernel views a multithreaded process as a single
    thread of control
  • Can lead to suboptimal performance if a thread
    issues I/O
  • Cannot be scheduled on multiple processors at once

17
4.6.1 User-level Threads
Figure 4.3 User-level threads.
18
4.6.2 Kernel-level Threads
  • Kernel-level threads attempt to address the
    limitations of user-level threads by mapping each
    thread to its own execution context
  • Kernel-level threads provide a one-to-one thread
    mapping
  • Advantages Increased scalability, interactivity,
    and throughput
  • Disadvantages Overhead due to context switching
    and reduced portability due to OS-specific APIs
  • Kernel-level threads are not always the optimal
    solution for multithreaded applications

19
4.6.2 Kernel-level Threads
Figure 4.4 Kernel-level threads.
20
4.6.3 Combining User- and Kernel-level Threads
  • The combination of user- and kernel-level thread
    implementation
  • Many-to-many thread mapping (m-to-n thread
    mapping)
  • Number of user and kernel threads need not be
    equal
  • Can reduce overhead compared to one-to-one thread
    mappings by implementing thread pooling
  • Worker threads
  • Persistent kernel threads that occupy the thread
    pool
  • Improves performance in environments where
    threads are frequently created and destroyed
  • Each new thread is executed by a worker thread
  • Scheduler activation
  • Technique that enables user-level library to
    schedule its threads
  • Occurs when the operating system calls a
    user-level threading library that determines if
    any of its threads need rescheduling

21
4.6.3 Combining User- and Kernel-level Threads
Figure 4.5 Hybrid threading model.
Write a Comment
User Comments (0)
About PowerShow.com