Concurrency, Processes and Threads

Slides:



Advertisements
Similar presentations
Chapter 5 Threads os5.
Advertisements

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.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 5: Threads 9/29/03+ Overview Benefits User and Kernel Threads Multithreading.
Threads - Definition - Advantages using Threads - User and Kernel Threads - Multithreading Models - Java and Solaris Threads - Examples - Definition -
CS238 Lecture 5 Threads Dr. Alan R. Davis. Threads Definitions Benefits User and Kernel Threads Multithreading Models Solaris 2 Threads Java Threads.
Threads CSCI 444/544 Operating Systems Fall 2008.
Process Concept An operating system executes a variety of programs
© 2004, D. J. Foreman 2-1 Concurrency, Processes and Threads.
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.
ThreadsThreads operating systems. ThreadsThreads A Thread, or thread of execution, is the sequence of instructions being executed. A process may have.
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.
Chapter 4: Threads. From Processes to Threads 4.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Threads.
Chapter 4: Threads. 4.2CSCI 380 Operating Systems Chapter 4: Threads Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.
Process Management. Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication.
CHAPTER 5: THREADS ( 线程 ) Overview Overview Multithreading Models (多线程模型) Multithreading Models (多线程模型) Thread Implementation Issues (线程实现事项) Thread Implementation.
© 2004, D. J. Foreman 2-1 Concurrency, Processes and 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.
Overview Multithreading Models Threading Issues Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads.
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.
Multithreaded Programing. Outline Overview of threads Threads Multithreaded Models  Many-to-One  One-to-One  Many-to-Many Thread Libraries  Pthread.
Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts What is Thread “Thread is a part of a program.
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
1 OS Review Processes and Threads Chi Zhang
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
1 Chapter 5: Threads Overview Multithreading Models & Issues Read Chapter 5 pages
Chapter 4 – Thread Concepts
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
OPERATING SYSTEM CONCEPT AND PRACTISE
CS 6560: Operating Systems Design
Processes and Threads Processes and their scheduling
Day 12 Threads.
Concurrency, Processes and Threads
Chapter 4 – Thread Concepts
CS399 New Beginnings Jonathan Walpole.
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
Chapter 4: Threads.
Chapter 5: Threads Overview Multithreading Models Threading Issues
Chapter 5: Threads Overview Multithreading Models Threading Issues
Chapter 5: Threads Overview Multithreading Models Threading Issues
Operating System (013022) Dr. H. Iwidat
Chapter 4: Multithreaded Programming
Process Management Presented By Aditya Gupta Assistant Professor
Chapter 4 Threads.
Chapter 4: Threads 羅習五.
Nadeem MajeedChoudhary.
Chapter 4: Threads.
Chapter 4: Threads.
Operating Systems Processes and Threads.
Chapter 5: Threads Overview Multithreading Models Threading Issues
Chapter 4: Threads.
Chapter 4: Threads.
ICS 143 Principles of Operating Systems
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
Chapter 4: Threads.
Threads Chapter 4.
Chapter 4: Threads.
CHAPTER 4:THreads Bashair Al-harthi OPERATING SYSTEM
Jonathan Walpole Computer Science Portland State University
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 5: Threads Overview Multithreading Models Threading Issues
CS510 Operating System Foundations
Chapter 4: Threads.
Concurrency, Processes and Threads
Chapter 4: Threads.
Chapter 4: Threads.
Presentation transcript:

Concurrency, Processes and Threads © 2004, D. J. Foreman

Concurrency The appearance that multiple actions are occurring at the same time On a uni-processor, something must make that happen A collaboration between the OS and the hardware On a multi-processor, the same problems exist (for each CPU) as on a uni-processor © 2004, D. J. Foreman

Multiprogramming … Combines multiplexing types: Space-multiplexing - Physical Memory Time-multiplexing - Physical Processor Process0 Process1 Processn … © 2004, D. J. Foreman

Multiprogramming-2 Multiprogramming Reason why desired N programs apparently running simultaneously space-multiplexed in executable memory time-multiplexed across the central processor Reason why desired Greater throughput (work done per unit time) More work occurring at the same time Resources required CPU Memory © 2004, D. J. Foreman

The CPU Instruction cycles Modes of execution Access memory and/or registers Sequential flow via "instruction register" One instruction-completion at a time (Pipelines only increase the # of completions per time unit). They are still sequential! Modes of execution Privileged (System) Non-privileged (User ) © 2004, D. J. Foreman

Memory Sequential addressing (0 – n) Partitioned System User Inaccessible by user programs User Partitioned for multiple users Accessible by system programs © 2004, D. J. Foreman

Processes-1 A Process is A running program & its address space A unit of resource management Independent of other processes NO sharing of memory with other processes May share files open at Fork time One program may start multiple processes, each in its own address space © 2004, D. J. Foreman

Processes-2 Abstraction Memory Process-1 Process-n Instruction stream CPU Data stream Operating System © 2004, D. J. Foreman

Process & Address Space Resources Data Resources Code Resources Stack Abstract Machine Environment Address Space © 2004, D. J. Foreman

Processes-3 The Process life-cycle Creation Execution Termination User or scheduled system activation Execution Running Performing instructions (using the ALU) Waiting Resources or Signals Ready All resources available except memory and ALU Termination Process is no longer available © 2004, D. J. Foreman

Processes-4 Space multiplexing More on this later Each process operates in its own "address space" Address space is a sequence of memory locations (addresses) from 0 to 'n' as seen by the application Process addresses must be "mapped" to real addresses in the real machine More on this later © 2004, D. J. Foreman

Processes-5 Time multiplexing Each process is given a small portion of time to perform instructions O/S controls the time per process and which process gets control next Many algorithms for this No rules (from user's/programmer's view) on which process will run next or for how long Some OS's dynamically adjust both time and sequence © 2004, D. J. Foreman

Processes-7 FORK (label) QUIT() JOIN (count) (an atomic operation) Starts a process running from the labeled instruction – gets a copy of address space QUIT() Process terminates itself JOIN (count) (an atomic operation) Merges >=2 processes Really more like "quit, unless I'm the only process left" © 2004, D. J. Foreman

Threads-1 A unit of execution within a process (like a lightweight process – an "lwp") also called a "task" Share address space, data and devices with other threads within the process Private stack, status (IC, state, etc) Multi-threading >1 thread per process Limited by system to some max # Per system Per process © 2004, D. J. Foreman

Thread Models JRE DOS Classic UNIX WinXX, Solaris, Linux, OS/2 © 2004, D. J. Foreman

Threads-2 Several thread API's Solaris: kernel-level threads & pthreads Windows: kernel-level threads & pthreads OS/2: kernel-level threads Posix (pthreads) – full set of functions #include <pthread.h> // for C, C++ Allows porting without re-coding Java threads implemented in JVM, independent of OS support Like multiprogramming implementation in Win3.1 Uses underlying kernel support where available © 2004, D. J. Foreman

Threads-3 Windows (native) POSIX (Linux, Solaris, Windows) CreateThread( DWORD dwCreateFlags = 0, UINT nStackSize = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ); POSIX (Linux, Solaris, Windows) iret1 = pthread_create( &thread1, NULL, (void*)&print_message_function, (void*) message1); © 2004, D. J. Foreman

Threads-4 Advantages of kernel-supported threads: May request resources with or without blocking on the request Blocked thread does NOT block other threads Inexpensive context switch Utilize MP architecture Thread library for user threads is in user space Thread library schedules user threads onto LWP’s LWP’s are: implemented by kernel threads scheduled by the kernel. © 2004, D. J. Foreman

Notes on Java The JVM uses monitors for mutual exclusion provides wait and notify for cooperation © 2004, D. J. Foreman

Java & Threads-1 Thread creation – 2 ways import java.lang.*; public class Counter extends Thread {                         public void run()  //overrides Thread.run                            {                       ....                     } } extension from the Thread class © 2004, D. J. Foreman

Java & Threads-2 import java.lang.*; public class Counter implements Runnable {         Thread T;                                 public void run()                               {                                       ....                     } } Instance of the Thread class as a variable of the Counter class – creates an interface Can still extend the Counter class © 2004, D. J. Foreman

Java & Threads-3 Difference between the two methods Implementing Runnable, -> greater flexibility in the creation of the class counter Thread class also implements the Runnable interface © 2004, D. J. Foreman

Wait & Signal - semaphores Classical definitions Wait - P (s) // make me wait for something DO WHILE (s<=0) END s=s-1 // when s becomes > 0, decrement it Signal - V (s) // tell others: my critical job is done s=s+1 These MUST appear as ATOMIC operations to the application © 2004, D. J. Foreman