Semantics of fork() and exec()

Similar documents
OPERATING SYSTEM. Chapter 4: Threads

Chapter 4: Threads. Operating System Concepts 9 th Edit9on

Chapter 4: Threads. Chapter 4: Threads

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

Chapter 4: Threads. Chapter 4: Threads

I.-C. Lin, Assistant Professor. Textbook: Operating System Concepts 8ed CHAPTER 4: MULTITHREADED PROGRAMMING

Chapter 4: Threads. Operating System Concepts 9 th Edition

Chapter 4: Threads. Operating System Concepts 9 th Edition

Chapter 4: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads Java Threads. Operating System Concepts

CS307: Operating Systems

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

Chapter 4: Multithreaded Programming

Chapter 4: Multi-Threaded Programming

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

CS 450 Operating System Week 4 Lecture Notes

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits

Chapter 4: Multithreaded

Chapter 4: Multithreaded Programming Dr. Varin Chouvatut. Operating System Concepts 8 th Edition,

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012

Chapter 4: Threads. Operating System Concepts. Silberschatz, Galvin and Gagne

Questions from last time

Chapter 5: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads Java Threads

Chapter 4: Multithreaded Programming

Chapter 4: Multithreaded Programming

Chapter 4: Multithreaded Programming. Operating System Concepts 8 th Edition,

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

Chapter 4: Multithreaded Programming

Multithreaded Programming

Chapter 3: Processes. Operating System Concepts 8th Edition

Chapter 4 Multithreaded Programming

CS420: Operating Systems

Chapter 5: Threads. Outline

Thread. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University

CISC2200 Threads Spring 2015

Operating Systems Prof. Ashok K Agrawala

Chapter 5: Threads. Single and Multithreaded Processes

Chapter 4: Threads. Operating System Concepts with Java 8 th Edition

COP 4610: Introduction to Operating Systems (Spring 2015) Chapter 4: Threads. Zhi Wang Florida State University

CSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song

CSCE 313: Intro to Computer Systems

CSE 4/521 Introduction to Operating Systems

Threads. Thread Concept Multithreading Models User & Kernel Threads Pthreads Threads in Solaris, Linux, Windows. 2/13/11 CSE325 - Threads 1

Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2

Last class: Today: Thread Background. Thread Systems

Chapter 4: Threads. Operating System Concepts 9 th Edition

CS370 Operating Systems

CSMC 412. Operating Systems Prof. Ashok K Agrawala Ashok Agrawala Set 4. September 2006 CMSC 412 Set 4

Lecture 4 Threads. (chapter 4)

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Chapter 5: Processes & Process Concept. Objectives. Process Concept Process Scheduling Operations on Processes. Communication in Client-Server Systems

Process Description and Control

Thread Concept. Thread. No. 3. Multiple single-threaded Process. One single-threaded Process. Process vs. Thread. One multi-threaded Process

CS Lecture 3! Threads! George Mason University! Spring 2010!

Lecture Topics. Announcements. Today: Threads (Stallings, chapter , 4.6) Next: Concurrency (Stallings, chapter , 5.

Multithreading. Reading: Silberschatz chapter 5 Additional Reading: Stallings chapter 4

CS370 Operating Systems

Lecture 2 Process Management

CS370 Operating Systems

Processes and Threads

Process Concept Process in Memory Process State new running waiting ready terminated Diagram of Process State

COP 4610: Introduction to Operating Systems (Fall 2016) Chapter 4: Threads. Zhi Wang Florida State University

Threads Implementation. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

4.8 Summary. Practice Exercises

Processes and Threads

Processes. CS 416: Operating Systems Design, Spring 2011 Department of Computer Science Rutgers University

Threads. CS-3013 Operating Systems Hugh C. Lauer. CS-3013, C-Term 2012 Threads 1

CS370 Operating Systems

Definition Multithreading Models Threading Issues Pthreads (Unix)

Threads. CS3026 Operating Systems Lecture 06

Process Manager Overview

Yi Shi Fall 2017 Xi an Jiaotong University

CSE Opera,ng System Principles

THREADS. Jo, Heeseung

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads

Thread and Synchronization

Processes & Threads. Recap of the Last Class. Microkernel System Architecture. Layered Structure

Page 1. Analogy: Problems: Operating Systems Lecture 7. Operating Systems Lecture 7

4. Concurrency via Threads

Notes. CS 537 Lecture 5 Threads and Cooperation. Questions answered in this lecture: What s in a process?

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process

Computer Systems Laboratory Sungkyunkwan University

! How is a thread different from a process? ! Why are threads useful? ! How can POSIX threads be useful?

Concurrency, Thread. Dongkun Shin, SKKU

!! How is a thread different from a process? !! Why are threads useful? !! How can POSIX threads be useful?

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008

Light-Weight Processes: Dissecting Linux Threads

ICS Principles of Operating Systems

Chapter 4: Threads. Operating System Concepts 8 th Edition,

Process and Its Image An operating system executes a variety of programs: A program that browses the Web A program that serves Web requests

Deviations are things that modify a thread s normal flow of control. Unix has long had signals, and these must be dealt with in multithreaded

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled.

Lecture 5: Process Description and Control Multithreading Basics in Interprocess communication Introduction to multiprocessors

Operating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings

CS420: Operating Systems

Chapter 4: Processes. Process Concept

Threads. Still Chapter 2 (Based on Silberchatz s text and Nachos Roadmap.) 3/9/2003 B.Ramamurthy 1

Chapter 4: Processes

Overview. Thread Packages. Threads The Thread Model (1) The Thread Model (2) The Thread Model (3) Thread Usage (1)

Chapter 3 Process Description and Control

Transcription:

Threads Week 3.2

Threading Issues Semantics of fork() and exec() system calls Signal handling Synchronous and asynchronous Thread cancellation of target thread Asynchronous or deferred Thread-local storage Scheduler Activations

Semantics of fork() and exec() Does fork()duplicate only the calling thread or all threads? Some UNIXes have two versions of fork exec() usually works as normal replace the running process including all threads

Signal Handling Signals are used in UNIX systems to notify a process that a particular event has occurred. A signal handler is used to process signals 1. Signal is generated by particular event 2. Signal is delivered to a process 3. Signal is handled by one of two signal handlers: 1. default 2. user-defined Every signal has default handler that kernel runs when handling signal User-defined signal handler can override default For single-threaded, signal delivered to process

Signal Handling (Cont.) Where should a signal be delivered for multithreaded? Deliver the signal to the thread to which the signal applies Deliver the signal to every thread in the process Deliver the signal to certain threads in the process Assign a specific thread to receive all signals for the process

Thread Cancellation Terminating a thread before it has finished Thread to be canceled is target thread Two general approaches: Asynchronous cancellation terminates the target thread immediately Deferred cancellation allows the target thread to periodically check if it should be cancelled Pthread code to create and cancel a thread:

Thread Cancellation (Cont.) Invoking thread cancellation requests cancellation, but actual cancellation depends on thread state If thread has cancellation disabled, cancellation remains pending until thread enables it Default type is deferred Cancellation only occurs when thread reaches cancellation point I.e. pthread_testcancel() Then cleanup handler is invoked On Linux systems, thread cancellation is handled through signals

Thread-Local Storage Thread-local storage (TLS) allows each thread to have its own copy of data Useful when you do not have control over the thread creation process (i.e., when using a thread pool) Different from local variables Local variables visible only during single function invocation TLS visible across function invocations Similar to static data TLS is unique to each thread

Scheduler Activations Both M:M and Two-level models require communication to maintain the appropriate number of kernel threads allocated to the application Typically use an intermediate data structure between user and kernel threads lightweight process (LWP) Appears to be a virtual processor on which process can schedule user thread to run Each LWP attached to kernel thread How many LWPs to create? Scheduler activations provide upcalls - a communication mechanism from the kernel to the upcall handler in the thread library This communication allows an application to maintain the correct number kernel threads

Operating System Examples Windows Threads Linux Threads

Windows Threads Windows implements the Windows API primary API for Win 98, Win NT, Win 2000, Win XP, and Win 7 Implements the one-to-one mapping, kernel-level Each thread contains A thread id Register set representing state of processor Separate user and kernel stacks for when thread runs in user mode or kernel mode Private data storage area used by run-time libraries and dynamic link libraries (DLLs) The register set, stacks, and private storage area are known as the context of the thread

Windows Threads (Cont.) The primary data structures of a thread include: ETHREAD (executive thread block) includes pointer to process to which thread belongs and to KTHREAD, in kernel space KTHREAD (kernel thread block) scheduling and synchronization info, kernelmode stack, pointer to TEB, in kernel space TEB (thread environment block) thread id, user-mode stack, thread-local storage, in user space

Windows Threads Data Structures

Linux Threads Linux refers to them as tasks rather than threads Thread creation is done through clone() system call clone() allows a child task to share the address space of the parent task (process) Flags control behavior struct task_struct points to process data structures (shared or unique)

TUGAS Berikanlah masing-masing satu contoh program yang dijalankan dengan serial. Berikan juga contoh dalam paralel dengan GNU Portable Thread. Lakukan analisis pada program tersebut dengan memanfaatkan informasi dari HTOP dan debugging aplikasi kalian pada saat menjalankan dengan mode serial dan mode paralel dari program sebelumnya.