threads
play

Threads Threads Threads vs Processes Multi-threading Models - PDF document

CSC 4103 - Operating Systems Roadmap Spring 2008 Processes Lecture - IV Interprocess Communication Threads Threads Threads vs Processes Multi-threading Models Threading Issues Tevfik Ko ar Louisiana State


  1. CSC 4103 - Operating Systems Roadmap Spring 2008 • Processes Lecture - IV – Interprocess Communication Threads • Threads – Threads vs Processes – Multi-threading Models – Threading Issues Tevfik Ko � ar Louisiana State University January 24 th , 2008 1 2 Cooperating Processes Interprocess Communication (IPC) • Mechanism for processes to communicate and to • Independent process cannot affect or be affected by synchronize their actions the execution of another process • Cooperating process can affect or be affected by the • Shared Memory: by using the same address space and execution of another process shared variables • Advantages of process cooperation – Information sharing • Message Passing: processes communicate with each – Computation speed-up other without resorting to shared variables – Modularity – Convenience 3 4 Communications Models Message Passing • Message Passing facility provides two operations: – send ( message ) – message size fixed or variable – receive ( message ) • If P and Q wish to communicate, they need to: – establish a communication link between them – exchange messages via send/receive • Two types of Message Passing – direct communication – indirect communication a) Message Passing b) Shared Memory 5 6

  2. Message Passing – direct communication Message Passing - indirect communication • Processes must name each other explicitly: – send ( P , message ) – send a message to process P • Messages are directed and received from mailboxes – receive ( Q, message ) – receive a message from process Q (also referred to as ports) • Properties of communication link – Each mailbox has a unique id – Links are established automatically – Processes can communicate only if they share a mailbox – A link is associated with exactly one pair of communicating processes • Primitives are defined as: – Between each pair there exists exactly one link send ( A, message ) – send a message to mailbox A – The link may be unidirectional, but is usually bi-directional receive ( A, message ) – receive a message from mailbox A • Symmetrical vs Asymmetrical direct communication – send ( P , message ) – send a message to process P – receive (id , message ) – receive a message from any process • Disadvantage of both: limited modularity, hardcoded 7 8 Indirect Communication (cont.) Indirect Communication (cont.) • Operations • Mailbox sharing – create a new mailbox – P 1 , P 2 , and P 3 share mailbox A – send and receive messages through mailbox – P 1 , sends; P 2 and P 3 receive – destroy a mailbox – Who gets the message? • Properties of communication link • Solutions – Link established only if processes share a common – Allow a link to be associated with at most two processes mailbox – A link may be associated with many processes – Allow only one process at a time to execute a receive – Each pair of processes may share several communication operation links – Allow the system to select arbitrarily the receiver. Sender is – Link may be unidirectional or bi-directional notified who the receiver was. 9 10 Synchronization Buffering • Message passing may be either blocking or non-blocking • Queue of messages attached to the link; implemented in one of three ways • Blocking is considered synchronous 1. Zero capacity – 0 messages – Blocking send has the sender block until the message is Sender must wait for receiver (rendezvous) received 2. Bounded capacity – finite length of n messages – Blocking receive has the receiver block until a message is Sender must wait if link full available 3. Unbounded capacity – infinite length • Non-blocking is considered asynchronous Sender never waits – Non-blocking send has the sender send the message and continue – Non-blocking receive has the receiver receive a valid message or null 11 12

  3. Motivation • In certain cases, a single application may need to run several tasks at the same time – Create a new process for each task Threads • Time consuming – Use a single process with multiple threads 13 14 Single and Multithreaded Processes Multi-process model Process Spawning: Process creation involves the following four main actions: • setting up the process control block, • allocation of an address space and • loading the program into the allocated address space and • passing on the process control block to the scheduler 15 16 Multi-thread model Threads vs Processes Thread Spawning: • Threads are created within and belonging to processes • Heavyweight Process = Process • All the threads created within one process share the resources of the • Lightweight Process = Thread process including the address space • Scheduling is performed on a per-thread basis. Advantages (Thread vs. Process): • The thread model is a finer grain scheduling model than the process • Much quicker to create a thread than a process model • Much quicker to switch between threads than to switch between processes • Threads have a similar lifecycle as the processes and will be managed • Threads share data easily mainly in the same way as processes are Disadvantages (Thread vs. Process): • Processes are more flexible – They don’t have to run on the same processor • No security between threads: One thread can stomp on another thread's data • For threads which are supported by user thread package instead of the kernel: – If one thread blocks, all threads in task block. 17 18

  4. Different Multi-threading Models Many-to-One Model • Many-to-One • Several user-level threads mapped to single kernel • One-to-One thread • Many-to-Many • Thread management in user space � efficient • If a thread blocks, entire process blocks • One thread can access the kernel at a time � limits parallelism • Examples: – Solaris Green Threads – GNU Portable Threads 19 20 One-to-One Model Many-to-Many Model • Allows many user level threads to • Each user-level thread maps to a kernel thread be mapped to a smaller number • A blocking thread does not block other threads of kernel threads • Multiple threads can access kernel concurrently � increased parallelism • Allows the operating system to • Drawback: Creating a user level thread requires creating a kernel level create a sufficient number of thread � increased overhead and limited number of threads kernel threads • Examples: Windows NT/XP/2000, Linux, Solaris 9 and later • Increased parallelism as well as efficiency • Solaris prior to version 9 • Windows NT/2000 with the ThreadFiber package 21 22 Two-level Model Threading Issues • Similar to M:M, except that it allows a user thread to be • Semantics of fork() and exec() system calls bound to kernel thread • Thread cancellation • Examples: IRIX, HP-UX, Tru64 UNIX, Solaris 8 and earlier • Signal handling • Thread pools • Thread specific data 23 24

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend