Ipc ppt


Published on

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Ipc ppt

  1. 1.  IPC INTERPROCESS COMMUNICATION By.Prof.Ruchi Sharma 02/16/13 1
  2. 2.  Many operating systems provide mechanisms for interprocess communication (IPC)  Processesmust 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. 02/16/13 2
  3. 3.  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 system’s 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 02/16/13 3
  4. 4.  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 02/16/13 4
  5. 5.  UNIX processes  All processes are provided with a set of memory addresses, called a virtual address space  A process’s 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 02/16/13 5
  6. 6.  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 parent’s resources as well  Process priorities are integers between -20 and 19 (inclusive)  A lower numerical priority value indicates a higher scheduling priority  UNIXprovides IPC mechanisms, such as pipes, to allow unrelated processes to transfer data 02/16/13 6
  7. 7. Figure 3.10 UNIX system calls. 02/16/13 7
  8. 8. Outline4.1 Introduction4.2 Definition of Thread4.3 Motivation for Threads4.4 Thread States: Life Cycle of a Thread4.5 Thread Operations4.6 Threading Models4.6.1 User-Level Threads4.6.2 Kernel-Level Threads4.6.3 Combining User- and Kernel-Level Threads4.7 Thread Implementation Considerations4.7.1 Thread Signal Delivery4.7.2 Thread Termination4.8 POSIX and Pthreads4.9 Linux Threads4.10 Windows XP Threads4.11 Java Multithreading Case Study, Part 1: Introduction to Java Threads 02/16/13 8
  9. 9.  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. 02/16/13 9
  10. 10.  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 02/16/13 10
  11. 11.  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 02/16/13 11
  12. 12. Figure 4.1 Thread Relationship to Processes. 02/16/13 12
  13. 13.  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 02/16/13 13
  14. 14.  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  Reducesoverhead of thread creation and termination compared to process creation and termination 02/16/13 14
  15. 15. Figure 4.2 Thread life cycle. 02/16/13 15
  16. 16.  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 02/16/13 16
  17. 17. Figure 4.3 User-level threads. 02/16/13 17
  18. 18.  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 02/16/13 18
  19. 19. Figure Kernel-level threads. 02/16/13 19
  20. 20.  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 02/16/13 20
  21. 21. Figure 4.5 Hybrid threading model. 02/16/13 21