1 / 20

SE3910 Week 8, Class 1

Explore multithreading options like pthreads and qthreads in C/C++ with in-depth analysis on Java thread initialization and communication between threads. Learn rate monotonic analysis and thread management techniques.

cardinal
Download Presentation

SE3910 Week 8, Class 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SE3910Week 8, Class 1 • Today • Return Quiz • First true release of final project (Lab 8) • Multithreading Options • Qt socket buffers between threads SE-2811 Slide design: Dr. Mark L. Hornick Content: Dr. Hornick Errors: Dr. Yoder

  2. Quizzes • Today • Various unit analyses (e.g. audio rates, video rates, Nyquist theorem) • Scheduling • Round-robin vs. Cyclic Code Scheduling • Rate Monotonic Analysis • Compile vs. Link errors • In-lab (8-Lab) • Interthread communication • Ask me on Monday! SE-2811 Dr.Yoder

  3. Options for multithreading (review) • pthreads • POSIX (Linux/Unix standard) threads • Can use in C/C++ • qthreads • Qt Threads • Object-Oriented • Uses pthreads under the hood, when on POSIX [1] • Derek Malloy’s GPIO class • Uses pthreads under the hood, but is single-threaded • Boost (Please discuss this with me BEFORE HAND if you want to use it.) [1] http://stackoverflow.com/questions/4140189/qthreads-vs-pthreads

  4. I was asked this question in an interview today…. (continued) "When we create a thread with pthread_create() (POSIX Threads), the thread starts on its own. Why do we need to explicitly call start() in Java. What is the reason that Java doesnt start the thread when we create an instance of it." I was blank and interviewer was short of time and eventually he couldnt explain the reason to me. http://stackoverflow.com/questions/5269535/java-threads-vs-pthreads SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling

  5. Task States Wiki:Process (computing) See also Laplanteand Ovaske 4E p. 97 SE-2811 Dr.Yoder

  6. Threading – pthreads (review)

  7. Threading – pthreads (updated) • Caveat: “POSIX threads can wait at condition variables of a greater generality than available in Java, but the corresponding queues may be leaky.” http://wimhesselink.nl/pub/whh241b.pdf SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling

  8. Threading – qthreads UNTESTED

  9. Threading – qthreads

  10. Looks useful if you are into Qt slots/signals == events “A QThread should be used much like a regular thread instance: prepare an object (QObject) class with all your desired functionality in it. Then create a new QThread instance, push the QObject onto it using moveToThread(QThread*) of the QObject instance and call start() on the QThread instance. That’s all.” https://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/ I have not used this approach. SE-2811 Dr.Yoder

  11. Possibly Fun • Very simple C++ wrapper for pthreads • http://www.cs.utexas.edu/users/lavender/courses/cs345/lectures/CS345-Lecture-09.pdf • notify/wait – example comparison with Java and pthreads • http://wimhesselink.nl/pub/whh241b.pdf • Compares create for Java, pthreads, and Win32 threads • http://cs.millersville.edu/~csweb/lib/userfiles/9ThreadsII.pdf SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling

  12. Certainly fun (Dr. Taylor’s Reviews) • http://msoe.us/taylor/tutorial/ce2810/functionpointers • Function Pointers • http://msoe.us/taylor/tutorial/ce2810/csimilar • C/C++/Java • http://msoe.us/taylor/tutorial/ce2810/ooc • Object-Oriented C SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling

  13. Other references • http://granite.sru.edu/~whit/cpsc464/Notes/figs/02-14.jpg • Simple pthread chart • From http://granite.sru.edu/~whit/cpsc464/Notes/ch2.html • https://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Fapis%2Fusers_75.htm • IBM example of using pthread_cond_init SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling

  14. Standards • http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread.h.html • pthead.h • http://pubs.opengroup.org/onlinepubs/7908799/xsh/systypes.h.html • systypes.h – for xxxx_t SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling

  15. Muddiest Point Wait for the slides, or follow this link to answer both questions at once: • http://bit.ly/1Mow5a3 SE-2811 Dr.Yoder

  16. http://bit.ly/1Mow5a3 SE-2811 Dr. Josiah Yoder

  17. http://bit.ly/1Mow5a3 SE-2811 Dr. Josiah Yoder

  18. References EBB: Derek Malloy, Exploring Beaglebone, Wiley, 2015 RTS: Laplanteand Ovaska, Real-Time Systems Design and Analysisby, Fourth Edition, Wiley, 2012 SE-2811 Slide design: Dr. Mark L. Hornick Content: Dr. Hornick Errors: Dr. Yoder

  19. Someday soon • Late next week? • Real-Time Operating Systems • What is a RTOS? How does it relate to the rest? • OS roles • Interrupts and the OS • Definitions, Flowchart, Timing diagram • Detailed steps • Scheduling • Task states & pre-runtime vs runtime SE-2811 Dr.Yoder

  20. Task States Wiki:Process (computing) See also Laplanteand Ovaske 4E p. 97 SE-2811 Dr.Yoder

More Related