3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.

Slides:



Advertisements
Similar presentations
 2004 Deitel & Associates, Inc. All rights reserved. 1 Chapter 3 – Process Concepts Outline 3.1 Introduction 3.1.1Definition of Process 3.2Process States:
Advertisements

OPERATING SYSTEMS Threads
Chap 4 Multithreaded Programming. Thread A thread is a basic unit of CPU utilization It comprises a thread ID, a program counter, a register set and a.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Multithreaded Programming.
Threads. Objectives To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Threads.
Chapter 4: Multithreaded Programming
Modified from Silberschatz, Galvin and Gagne ©2009 Lecture 7 Chapter 4: Threads (cont)
Day 10 Threads. Threads and Processes  Process is seen as two entities Unit of resource allocation (process or task) Unit of dispatch or scheduling (thread.
Chapter 4: Multithreaded Programming
Chapter 5 Processes and Threads Copyright © 2008.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.
3.5 Interprocess Communication
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
Threads CSCI 444/544 Operating Systems Fall 2008.
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for Threads.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes.
4.7.1 Thread Signal Delivery Two types of signals –Synchronous: Occur as a direct result of program execution Should be delivered to currently executing.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Objectives Thread definitions and relationship to process Multithreading.
Process Concept An operating system executes a variety of programs
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Chapter 4: Threads READ 4.1 & 4.2 NOT RESPONSIBLE FOR 4.3 &
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Multithreaded Programming.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 4: Threads Overview Multithreading Models Threading Issues.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Processes Part I Processes & Threads* *Referred to slides by Dr. Sanjeev Setia at George Mason University Chapter 3.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 4: Threads.
Operating Systems Lecture 09: Threads (Chapter 4)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Operating System Principles Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh.
Chapter 4: Threads. From Processes to Threads 4.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Threads.
1 Lecture 4: Threads Operating System Fall Contents Overview: Processes & Threads Benefits of Threads Thread State and Operations User Thread.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.
Chapter 4: Threads. 4.2 Chapter 4: Threads Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads Java Threads.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 4: Threads.
Silberschatz, Galvin and Gagne ©2011Operating System Concepts Essentials – 8 th Edition Chapter 4: Threads.
Process Management. Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication.
Operating System Concepts Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
CHAPTER 5: THREADS ( 线程 ) Overview Overview Multithreading Models (多线程模型) Multithreading Models (多线程模型) Thread Implementation Issues (线程实现事项) Thread Implementation.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
 2004 Deitel & Associates, Inc. All rights reserved. 1 Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for.
Threads G.Anuradha (Reference : William Stallings)
Source: Operating System Concepts by Silberschatz, Galvin and Gagne.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
PREPARED BY : MAZHAR JAVED AWAN BSCS-III Process Communication & Threads 4 December 2015.
Lecture 5: Threads process as a unit of scheduling and a unit of resource allocation processes vs. threads what to program with threads why use threads.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 4: Threads Modified from the slides of the text book. TY, Sept 2010.
Multithreaded Programing. Outline Overview of threads Threads Multithreaded Models  Many-to-One  One-to-One  Many-to-Many Thread Libraries  Pthread.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
Department of Computer Science and Software Engineering
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Processes & Threads Introduction to Operating Systems: Module 5.
Cooperating Processes The concurrent processes executing in the operating system may be either independent processes or cooperating processes. A process.
Saurav Karmakar. Chapter 4: Threads  Overview  Multithreading Models  Thread Libraries  Threading Issues  Operating System Examples  Windows XP.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Operating System Concepts
Lecturer 3: Processes multithreaded Operating System Concepts Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess.
Contents 1.Overview 2.Multithreading Model 3.Thread Libraries 4.Threading Issues 5.Operating-system Example 2 OS Lab Sun Suk Kim.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
1 Chapter 5: Threads Overview Multithreading Models & Issues Read Chapter 5 pages
Lecture 5. Example for periority The average waiting time : = 41/5= 8.2.
Chapter 4 – Thread Concepts
OPERATING SYSTEM CONCEPT AND PRACTISE
Chapter 4 – Thread Concepts
Chapter 3 – Process Concepts
Operating System Concepts
Chapter 4: Threads.
Presentation transcript:

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

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 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

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

3.6 Case Study: UNIX Processes 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

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 parent’s 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

Figure 3.10 UNIX system calls. 3.6 Case Study: UNIX Processes

Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for Threads 4.4Thread States: Life Cycle of a Thread 4.5Thread Operations 4.6Threading Models 4.6.1User-Level Threads 4.6.2Kernel-Level Threads 4.6.3Combining User- and Kernel-Level Threads 4.7 Thread Implementation Considerations 4.7.1Thread Signal Delivery 4.7.2Thread Termination 4.8 POSIX and Pthreads 4.9Linux Threads 4.10Windows XP Threads 4.11Java Multithreading Case Study, Part 1: Introduction to Java Threads

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.

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

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

Figure 4.1 Thread Relationship to Processes. 4.2 Definition of Thread

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

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

Figure 4.2 Thread life cycle. 4.4 Thread States: Life Cycle of a Thread

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? Group Discussion 2 1/29/08, due in class

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

Figure 4.3 User-level threads User-level Threads

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

Figure 4.4 Kernel-level threads Kernel-level Threads

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

Figure 4.5 Hybrid threading model Combining User- and Kernel-level Threads