t hreads
play

[T HREADS ] Shrideep Pallickara Computer Science Colorado State - PDF document

CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University CS 555: D ISTRIBUTED S YSTEMS [T HREADS ] Shrideep Pallickara Computer Science Colorado State University CS555: Distributed Systems [Fall 2019] October


  1. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University CS 555: D ISTRIBUTED S YSTEMS [T HREADS ] Shrideep Pallickara Computer Science Colorado State University CS555: Distributed Systems [Fall 2019] October 15, 2019 L15.1 Dept. Of Computer Science , Colorado State University Frequently asked questions from the previous class survey L15. 2 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.1 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  2. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University Topics covered in this lecture ¨ Threads ¤ Contrasting with processes ¤ Threads in Distributed Systems ¤ An example of performance improvements with Threads ¤ Threading architectures for Servers ¤ State L15. 3 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA T HREADS CS555: Distributed Systems [Fall 2019] October 15, 2019 L15.4 Dept. Of Computer Science , Colorado State University L15.2 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  3. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University Threads execute their own piece of code independently of other threads, but … ¨ No attempt is made to achieve high-degree of concurrency transparency ¤ Especially, not at the cost of performance ¨ Only maintains information to allow a CPU to be shared among several threads ¨ Thread context ¤ CPU Context + Thread Management info n List of blocked threads L15. 5 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA Information not strictly necessary to manage multiple threads is ignored ¨ Protecting data against inappropriate accesses by multiple threads in a process? ¤ Developers must deal with this L15. 6 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.3 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  4. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University T HREADS V S . M ULTIPLE P ROCESSES CS555: Distributed Systems [Fall 2019] October 15, 2019 L5.7 Dept. Of Computer Science , Colorado State University Why prefer multiple threads over multiple processes? ¨ Threads are cheaper to create and manage than processes ¨ Resource sharing can be achieved more efficiently between threads than processes ¤ Threads within a process share the address space of the process ¨ Switching between threads is cheaper than for processes ¨ BUT … threads within a process are not protected from one another L15. 8 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.4 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  5. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University Other costs for processes ¨ When a new process is created to perform a task there are other costs ¤ In a kernel supporting virtual memory the new process will incur page faults n Due to data and instructions being referenced for the first time ¨ Hardware caches must acquire new cache entries for that particular process L15. 9 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA Contrasting the costs for threads [1/2] ¨ With threads these overheads may also occur but they are likely to be smaller ¨ When thread accesses code & data that was accessed recently by other threads in the process? ¤ Automatically take advantage of any hardware or main memory caching L15. 10 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.5 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  6. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University Contrasting the costs for threads [2/2] ¨ Switching between threads is much faster than that between processes ¨ This is a cost that is incurred many times throughout the lifecycle of the thread or process L15. 11 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA A process with multiple threads of control can perform more than 1 task at a time CODE DATA FILES CODE DATA FILES Registers Registers Registers Stack Registers Stack Stack Stack Traditional Heavy weight process L15. 12 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.6 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  7. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University Implications? ¨ Performance of a multithreaded application is seldom worse than a single threaded one ¤ Actually leads to performance gains ¨ Development requires additional effort ¤ No automatic protection against each other L15. 13 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA Thread use in non-distributed settings ¨ Interactive multithreaded application ¤ Parts of program may be blocked or slow ¤ Remainder of program may still chug along ¨ A single threaded process can ONLY run on 1 processor ¤ Regardless of how many are available ¤ Underutilization of computational resources L15. 14 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.7 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  8. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University Another drawback of processes is the overheads for IPC (Inter Process Communications) Switch from Process A Process B user space to Switch from kernel kernel space space to user space Switch context from Operating System process A to B L15. 15 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA Applications can be constructed using separate threads ¨ Communications dealt entirely using shared data ¤ Performance is much better ¨ Software engineering ¤ Collection of several (generally independent) tasks ¤ Word Processor n Input handling, spell check, layout, index generation … L15. 16 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.8 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  9. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University T HREADS IN D ISTRIBUTED S YSTEMS CS555: Distributed Systems [Fall 2019] October 15, 2019 L5.17 Dept. Of Computer Science , Colorado State University Threads in distributed systems: Multithreaded clients ¨ Hide communication latencies ¤ Initiate communications Interleave ¤ Immediately do something else ¨ Web browsers ¤ As soon as main HTML page is fetched Identical n Display it Code ¤ Activate threads to retrieve other data types L15. 18 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.9 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  10. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University Several connections can be opened simultaneously ¨ To the same server ¤ If the server is overloaded; things get even slower ¨ To replicated servers ¤ Data transfer in parallel ¤ Much faster rendering of content L15. 19 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA Multithreaded Servers ¨ Simplifies server code ¨ Easier to develop servers that exploit parallelism ¨ E.g.: Handling concurrent connections ¤ Each connection managed by a different thread ¤ Multiple connections handled by a pool of threads L15. 20 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.10 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

  11. CS555: Distributed Systems [Fall 2019] Dept. Of Computer Science , Colorado State University A N EXAMPLE OF PERFORMANCE IMPROVEMENTS WITH T HREADS CS555: Distributed Systems [Fall 2019] October 15, 2019 L4.21 Dept. Of Computer Science , Colorado State University Client and Server with Threads DISK I/O Request Queue Client Server may have up to N threads Requests Server L15. 22 CS555: Distributed Systems [Fall 2019] October 15, 2019 Dept. Of Computer Science , Colorado State University Professor: S HRIDEEP P ALLICKARA L15.11 S LIDES C REATED B Y : S HRIDEEP P ALLICKARA

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