Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Part A - Multithreading & Thread Synchronization - ( Pthreads )
Section 1: Getting Started With Multi-Threading
1. Agenda and Prerequisites (4:30)
2. What is a Thread ? (3:25)
3. Join Telegram Group (0:13)
4. Code Access for this Course (0:58)
5. Hello World Ex - Part 1 (9:03)
6. Hello World Ex - Part 2 (3:50)
7. Race Condition on Thread Creation (4:19)
8. Thread Termination (4:09)
9. main( ) thread termination (2:08)
10. Resource Sharing (5:46)
11. Thread Stack Memory Mgmt (5:12)
12. Thread Scheduling (5:39)
Section 2: Concurrency vs Parallelism (Theory Section)
13. Understanding Concurrency (Analogy) (4:41)
14. Understanding Parallelism (Analogy) (2:28)
15. Understanding Singularism (Analogy) (4:07)
16. Analogy Multithreading World (Mapping) (2:03)
17. Multithreading Environment (12:30)
18. Why do we need Concurrency ? (5:05)
19. Concurrent Process Design - Example 1 (5:14)
20. Concurrent Process Design - Example 2 (3:33)
21. Why Threads are called Light Weighted Processes ? (4:03)
22. Overlapping and Non-Overlapping Work (3:02)
23. Conclusion and Summarization (2:29)
Assignment 1: Probable Interview Questions
Section 3: Joinable and Detached Threads
24. Joinable Threads (6:12)
25. Detached Threads (2:31)
26. Joinable Threads in Action (16:21)
27. Whom to Join ? (3:49)
28. Implementing Map-Reduce Algorithm - Problem Statement (8:09)
29. When to Create Joinable/Detached Thread ? (1:48)
Assignment 2: Practice Assignment
Section 4: Inter Threads Communication
30. Inter Thread Communication (3:57)
31. Transfer of Computation (5:14)
32. Transfer of Computation - Example (5:36)
33. Opening Gates to Publisher Subscriber Model (1:30)
Section 5: Let us go on Vacations : yaay :
34. Vacations ! Dont miss it ! (1:21)
Section 6: Notification Chains
35. Notification Chains - Introduction (2:58)
36. NFC - Pictorial Representation (7:28)
37. NFC - Data Structure (4:41)
38. NFC Implementation (8:05)
Assignment 3: Assignment - NFC Some Enhancement
39. Real World - Problem Statement On NFC - Publisher Subscriber Model (4:04)
40. Setting up a Data Source (4:25)
41. Setting Up the Publisher (7:16)
42. Setting up the Subscriber (8:34)
43. Subscription and Notification (2:03)
Assignment 4: Mandatory Assignment
44. Implementing Subscription (7:23)
45. Implementing Notification (5:27)
46. Final Demo ! (2:54)
Section 7: Threads Cancellation - Asynchronous
47. Why Thread Cancellation ? (2:27)
48. Understanding Thread Cancellation - Asynchronous Mode (5:30)
49. Asynchronous Thread Cancellation - Demo Base Program (4:51)
50. Asynchronous Cancellation - Code Changes (6:48)
51. Thread Resource Leaking Problem (4:07)
52. Data Structure Corruption - Invariants (5:23)
53. Thread Cancellation Causing Deadlocks (2:09)
54. Handling Resource Leaking on Thread Cancellation (6:25)
55. Code Changes and Demo (4:40)
56. Cleanup handlers Usage (7:39)
Section 8: Thread Cancellation - Deferred
57. Understanding Deferred Cancellation (5:04)
58. Deferred Cancellation Implementation (6:29)
Section 9: Listener Threads
59. Listener Threads - Responsibility Delegation (7:13)
60. Preparation of Implementation (3:36)
61. Network APIs and Demo (3:46)
62. Multi - Listener Application Implementation (3:46)
63. Listener Thread - Quick Code Walk (6:31)
Assignment 5: Assignment - Let's Add on
Section 10: Threads Sychronization - Getting Start...
64. Thread Synchronization (7:51)
65. Critical Section (4:20)
66. Mutexes (2:57)
67. How Mutex Works ? (8:39)
68. Mutex Rules (4:06)
69. Mutex Locking - Code Locking (4:02)
70. Mutex Locking - Data Locking (13:32)
71. Mutex Posix APIs (1:35)
72. Mutexes in Action - Problem Statement (9:42)
73. Mutexes in Action - Deploying Mutual Exclusion (3:35)
Assignment 6: Assignment on Mutexes & CS
Section 11: Deadlocks
74. Deadlocks (4:53)
75. Four Necessary Conditions for Deadlocks (3:26)
76. Mutex Lock Ordering Causing Deadlocks (5:50)
Section 12: Condition Variables
77. Getting Started with CV (3:29)
78. Understanding Condition Variables (7:28)
79. Condition Variables Vs Mutex (7:07)
80. Using Condition Variables - Wait & Signal (12:28)
Assignment 7: Assignment
81. Producer Consumer Threads Synchronization (12:38)
82. What is Spurious Wake Up ? (5:08)
83. Spurious Wake Up - Producer Consumer Threads Synchronization (10:04)
Assignment 8: Assignment Questions
84. Understanding Pseudocodes through Real World Analogy (7:43)
85. Thread specific Vs Resource Specific CV (8:07)
86. Broadcasting a CV (8:38)
87. Lab Time - Implement Producer Consumer (8:04)
88. Question Program Setup (14:16)
89. Producer Consumer - Solution Implementation Step by Step (15:21)
Assignment 9: Assignment - Test your Understanding
Avoid Spurious Wake with Multiple Conditions (6:43)
Section 13: Dining Philosopher Problem
90. Problem Statement Explanation (7:56)
91. Data Structure Setup (4:03)
92. Assignment Program Setup (11:36)
93. Solution - RoadMap (3:19)
94. Solution Part 1 : Implementing philosopher_fn( ) (3:35)
95. Solution Part 2 : Implementing philosopher_release_both_spoons( ) (7:24)
96. Solution Part 3 : Implementing philosopher_get_access_both_spoons( ) (11:03)
97. Solution Part 4 : Test and Conclude (4:14)
Section 14: Thread Barriers
98. Thread Barriers Introduction (3:49)
99. Thread Barrier Functioning (6:58)
100. Thread Barrier Data Structures (8:37)
Thread Barrier APIs (3:25)
102. Thread Barrier Wait ( ) Implementation (12:23)
103. Thread Barrier Demo (5:54)
Section 15: Semaphores
104. Introduction & Analogy (4:00)
105. Semaphore Vs Mutex (8:01)
106. Semaphore APIs and Working Example (11:12)
107. Semaphore - Hello World Example (9:29)
108. Strict Alternation Problem (6:01)
Assignment 10: Semaphore based Simple Problems
Section 16: Semaphores - Internal Implementation
109. Semaphores Internal Implementation (1:19)
110. Understanding Semaphore Counter Variable (6:56)
111. Semaphore Implementation (10:01)
112. Types of Semaphores (3:10)
113. Strong and Weak Semaphores (11:18)
Assignment 11: Assignment Questions on Semaphores
Spin Locks
Spin Locks (10:16)
Recursive Mutexes/Locks
How Recursive Locks Works (6:10)
Practical Scenario of Using Recursive Locks (7:03)
Assignment - Rec Mutex Internal Implementation (4:19)
Recursive Mutex - Data Structure Definition (5:06)
rec_mutex_lock() API Implementation (11:46)
rec_mutex_unlock() API Implementation (9:09)
Read-Write Locks
What in this Section ? (1:00)
Understanding Read/Write Locks (10:39)
POSIX APIs (1:36)
Demo Example Program (10:11)
RW Lock Self Implementation - Begin (5:47)
Custom RW LOCK Data Structure (6:29)
Read Lock API Implementation (17:12)
Write Lock API Implementation (12:12)
RW lock Unlock API Implementation (11:36)
Assignment
Validating our RW lock Implementation
Implement Thread Safe Highly Concurrent CRUD Operations
CRUD Operations - Introduction (3:56)
Performance Aspects with Wider Locks (6:52)
CRUD Goals (6:10)
Tools We need to Implement Thread Safe and Highly Concurrent CRUD Operations (4:17)
Understanding Reference Counting (15:06)
Reference Count APIs (7:12)
Ref Count Usage Examples (13:11)
CRUD : Locking Rules (11:04)
CRUD : Algorithm for READ & UPDATE ( WRITE ) Operation
Setting Up Demo Example Project (3:46)
CRUD : Algorithm for READ & UPDATE Operation - Implementation (7:16)
Section 17: Appendix A : Glue Based Linked List
114. Introduction (3:35)
115. GLThread Definition (4:19)
116. Pictorial Difference (4:53)
117. Structure Field Offset (7:37)
118. Node Insertion (3:41)
119. Iteration (3:15)
120. Node Removal (1:18)
121. Code Walk - Demo (6:24)
122. Traditional Linked List Problems (5:39)
123. GLThread Benefits (4:54)
Section 18: Bonus - Get Some Candies!
124. Get My Courses for Free (1:16)
Spin Locks
Complete and Continue
Discussion
0
comments
Load more
0 comments