Threads Chapter 4 Threads are a subdivision of processes

Slides:



Advertisements
Similar presentations
Process Description and Control
Advertisements

Process Description and Control
Process Description and Control
Processes and Operating Systems
1 Processes and Threads Creation and Termination States Usage Implementations.
Chapter 5 Input/Output 5.1 Principles of I/O hardware
Chapter 6 File Systems 6.1 Files 6.2 Directories
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
1 Chapter 12 File Management Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Chapter 1 Introduction Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Introduction Abstract Views of an Operating System.
Chapter 4 Threads Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Threads, SMP, and Microkernels
3.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process An operating system executes a variety of programs: Batch system.
1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
Processes Management.
Operating Systems: Internals and Design Principles
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Computer Systems/Operating Systems - Class 8
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: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads.
1 Threads, SMP, and Microkernels Chapter 4. 2 Process: Some Info. Motivation for threads! Two fundamental aspects of a “process”: Resource ownership Scheduling.
Operating Systems (OS) Threads, SMP, and Microkernel, Unix Kernel
1 Chapter 4 Threads Threads: Resource ownership and execution.
Threads, SMP, and Microkernels
UNIX Process Creation Every process, except process 0, is created by the fork() system call fork() allocates entry in process table and assigns a unique.
Threads. Processes and Threads  Two characteristics of “processes” as considered so far: Unit of resource allocation Unit of dispatch  Characteristics.
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
A. Frank - P. Weisberg Operating Systems Threads Implementation.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Threads Chapter 4. Modern Process & Thread –Process is an infrastructure in which execution takes place  (address space + resources) –Thread is a program.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
Chapter 4 Threads, SMP, and Microkernels Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E.
Operating Systems Lecture 09: Threads (Chapter 4)
1 Lecture 4: Threads Operating System Fall Contents Overview: Processes & Threads Benefits of Threads Thread State and Operations User Thread.
Threads, SMP, and Microkernels Chapter 4. 2 Outline n Threads n Symmetric Multiprocessing (SMP) n Microkernel n Linux Threads.
Operating System 4 THREADS, SMP AND MICROKERNELS
Threads, Thread management & Resource Management.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
1 Threads, SMP, and Microkernels Chapter 4. 2 Focus and Subtopics Focus: More advanced concepts related to process management : Resource ownership vs.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
© 2004, D. J. Foreman 2-1 Concurrency, Processes and Threads.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Threads G.Anuradha (Reference : William Stallings)
1 Threads, SMP, and Microkernels Chapter 4. 2 Process Resource ownership: process includes a virtual address space to hold the process image (fig 3.16)
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
Threads, SMP, and Microkernels Chapter 4. Threads, SMP, and Microkernels 1. Processes and threads 2. Symmetric MultiProcessing (SMP) 3. Microkernel: structuring.
1 Lecture 4: Threads Advanced Operating System Fall 2010.
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.
Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts What is Thread “Thread is a part of a program.
Operating System 4 THREADS, SMP AND MICROKERNELS.
Department of Computer Science and Software Engineering
Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles.
Operating Systems: Internals and Design Principles
Module 2.0: Threads.
Threads-Process Interaction. CONTENTS  Threads  Process interaction.
Chapter 4 Threads, SMP, and Microkernels Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E.
1 Threads, SMP, and Microkernels Chapter 4. 2 Process Resource ownership - process includes a virtual address space to hold the process image Scheduling/execution-
Threads, SMP and Microkernels Process vs. thread: –Unit of resource ownership (process has virtual address space, memory, I/O channels, files) –Unit of.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Chapter 4 Threads.
Principles of Operating Systems Lecture 8
Threads, SMP, and Microkernels
Threads Chapter 4.
Lecture 4- Threads, SMP, and Microkernels
Operating System 4 THREADS, SMP AND MICROKERNELS
Threads Chapter 4.
Presentation transcript:

Threads Chapter 4 Threads are a subdivision of processes Since there is less information associated with a thread than there is info associated with a process, thread switching is easier than process switching Chapter 4

Process Characteristics Unit of resource ownership - process is allocated: a virtual address space to hold the process image control of some resources (files, I/O devices...) Unit of execution - process is an execution path through one or more programs execution may be interleaved with other processes the process has an execution state and a priority Chapter 4

Process Characteristics These 2 characteristics are treated independently by some recent OS The unit of execution is usually referred to a thread or a lightweight process (book talks of unit of dispatching, similar concept) The unit of resource ownership is usually referred to as a process or task Chapter 4

Multithreading vs. Single threading Multithreading: when the OS supports multiple threads of execution within a single process Single threading: when the OS does not recognize the concept of thread MS-DOS support a single user process and a single thread UNIX supports multiple user processes but only supports one thread per process Solaris, Linux, Windows NT and 2000, OS/2 support multiple threads Chapter 4

Threads and Processes Chapter 4

Processes Have a virtual address space which holds the process image Protected access to processors, other processes, files, and I/O resources Chapter 4

Threads Have execution state (running, ready, etc.) Save thread context when not running Have private storage for local variables and execution stack Have shared access to the address space and resources (files…) of their process when one thread alters (non-private) data, all other threads (of the process) can see this threads communicate via shared variables a file opened by one thread is available to others Chapter 4

Single Threaded and Multithreaded Process Models Thread Control Block contains a register image, thread priority and thread state information (compare with Fig. 3.14) Chapter 4

Benefits of Threads vs Processes It takes less time to create a new thread than a new process Less time to terminate a thread than a process Less time to switch between two threads within the same process than to switch between processes Mainly because a thread is associated with less information. Chapter 4

Benefits of Threads Example: a file server on a LAN It needs to handle several file requests over a short period Hence more efficient to create (and destroy) a single thread for each request Such threads share files and variables In Symmetric Multiprocessing: different threads can possibly execute simultaneously on different processors Example 2: one thread displays menu and reads user input while the other thread executes user commands Chapter 4

Application benefits of threads Consider an application that consists of several independent parts that do not need to run in sequence Each part can be implemented as a thread Whenever one thread is blocked waiting for an I/O, execution could possibly switch to another thread of the same application (instead of switching to another process) Chapter 4

Benefits of Threads Since threads within the same process share memory and files, they can communicate with each other without invoking the kernel Therefore necessary to synchronize the activities of various threads so that they do not obtain inconsistent views of the data (chap 5) Chapter 4

Terminaison de processus et fils Suspending a process involves suspending all threads of the process Termination of a process terminates all threads within the process Since all such threads share the same address space in the process Chapter 4

Threads States As for processes, three key states: running, ready, blocked They cannot have suspend state because all threads within the same process share the same address space (same memory) A thread is created by another thread using a command often called Spawn Finish is the state of a process that is completing Chapter 4

Remote Procedure Call Using one thread only Chapter 4

Remote Procedure Call Using Multiple Threads: less waiting time Chapter 4

Thread management Thread management can be done in one of three fundamental ways: User-level thread: threads are entirely managed by the application Kernel-level threads: threads are entirely managed by the OS kernel Combined approaches Chapter 4

User-Level Threads (ULT) (ex. Standard UNIX) The kernel is not aware of the existence of threads All thread management is done by the application using a thread library Thread switching does not require kernel mode privileges (no mode switch) Scheduling is application specific Chapter 4

Threads library Contains code for: creating and destroying threads passing messages and data between threads scheduling thread execution saving and restoring thread contexts Chapter 4

Kernel activity for ULTs The kernel is not aware of thread activity but it still manages process activity When a thread makes a system call, the whole process is blocked But for the thread library that thread is still in running state So thread states are independent of process states Chapter 4

Advantages and disadvantages of ULT Thread switching does not involve the kernel: no mode switching Scheduling can be application specific: choose the best algorithm. Can run on any OS. Only needs a thread library Disadvantages Most system calls are blocking for processes. So all threads within a process will be blocked The kernel can only assign processes to processors. Two threads within the same process cannot run simultaneously on two processors Chapter 4

Kernel-Level Threads (KLT) Ex: Windows NT, 2000, Linux and OS/2 All thread management is done by kernel No thread library but an API to the kernel thread facility Kernel maintains context information for the process and the threads Switching between threads requires the kernel Scheduling on a thread basis Chapter 4

Advantages and disadvantages of KLT the kernel can simultaneously schedule many threads of the same process on many processors blocking is done on a thread level kernel routines can be multithreaded Inconveniences thread switching within the same process involves the kernel. We have 2 mode switches per thread switch this may results in a significant slow down however kernel may be able to switch threads quicker than user’s lib Chapter 4

Combined ULT/KLT Approaches (Solaris) Thread creation done in the user space Bulk of scheduling and synchronization of threads done in the user space The programmer may adjust the number of KLTs Combines the best of both approaches Chapter 4

Solaris Process includes the user’s address space, stack, and process control block User-level threads (threads library) invisible to the OS are the interface for application parallelism Kernel threads the unit that can be dispatched on a processor Lightweight processes (LWP) each LWP supports one or more ULTs and maps to exactly one KLT LWPs are visible to applications therefore LWP are the way the user sees the KLT constitute a sort of ’virtual CPU’ Chapter 4

Process 2 is equivalent to a pure ULT approach ( = Unix) Process 4 is equivalent to a pure KLT approach ( = Win-NT, OS/2) We can specify a different degree of parallelism (process 3 and 5) Chapter 4

Solaris: versatility We can use ULTs when logical parallelism does not need to be supported by hardware parallelism (we save mode switching) Ex: Multiple windows but only one is active at any one time If ULT threads can block then we can add two or more LWPs to avoid blocking the whole application Note versatility of SOLARIS that can operate like Windows-NT or like conventional Unix Chapter 4

Solaris: user-level thread execution (threads library). Transitions among states are under the control of the application: they are caused by calls to the thread library It’s only when a ULT is in the active state that it is attached to a LWP (so that it will run when the kernel level thread runs) A thread may transfer to the sleeping state by invoking a synchronization primitive (chap 5) and later transfer to the runnable state when the event waited for occurs A thread may force another thread to go to the stop state Chapter 4

Solaris: user-level thread states (attached to a LWP) Chapter 4

Decomposition of user-level Active state When a ULT is Active, it is associated to a LWP and thus to a KLP. Transitions among the LWP states is under the exclusive control of the kernel A LWP can be in the following states: running: assigned to CPU = executing blocked because the KLT issued a blocking system call (but the ULT remains bound to that LWP and remains active) runnable: waiting to be dispatched to CPU Chapter 4

Chapter 4

Solaris: Lightweight Process States LWP states are independent of ULT states (except for bound ULTs) Chapter 4

Multiprocessing: Categories of Systems Single Instruction Single Data (SISD) single processor executes a single instruction stream to operate on data stored in a single memory Single Instruction Multiple Data (SIMD) each instruction is executed on a different set of data by the different processors typical application: matrix calculations Multiple Instruction Single Data (MISD) several CPUs execute on a single set of data. Never implemented, probably not practical Multiple Instruction Multiple Data (MIMD) a set of processors simultaneously execute different instruction sequences on different data sets Chapter 4

Chapter 4

Symmetric Multiprocessing Kernel can execute on any processor Typically each processor does self-scheduling form the pool of available processes or threads Chapter 4

Chapter 4

Design Considerations Managing kernel routines they can be simultaneously in execution by several CPUs Scheduling can be performed by any CPU Interprocess synchronization becomes even more critical when several CPUs may attempt to access the same data at the same time Memory management becomes more difficult when several CPUs may be sharing the same memory Reliability or fault tolerance if one CPU fails, the others should be able to keep the system in function Chapter 4

Microkernels: a trend Small operating system core Contains only essential operating systems functions Many services traditionally included in the operating system kernel are now external subsystems device drivers file systems virtual memory manager windowing system security services Chapter 4

Layered Kernel vs Microkernel Chapter 4

Client-server architecture in microkernels the user process is the client the various subsystems are servers Chapter 4

Benefits of a Microkernel Organization Uniform interface on request made by a process All services are provided by means of message passing Extensibility and flexibility Facilitates the addition and removal of services and functionalities Portability Changes needed to port the system to a new processor may be limited to the microkernel Reliability Modular design Small microkernel can be rigorously tested Chapter 4

More Benefits of a Microkernel Organization Distributed system support Message are sent without knowing what the target machine is Object-oriented operating system Components are objects with clearly defined interfaces Chapter 4

Microkernel Elements Low-level memory management elementary mecanisms for memory allocation support more complex strategies such as virtual memory Inter-process communication I/O and interrupt management Chapter 4

Layered Kernel vs Microkernel Chapter 4

Microkernel Performance Microkernel architecture may be less performant than traditional layered architecture Communication between the various subsystems causes overhead Message-passing mechanisms less performant than simple system call Chapter 4

Important concepts of Chapter 4 Threads and difference wrt processes User level threads, kernel level threads and combinations Thread states and process states Different types of multiprocessing Microkernel architecture Chapter 4