talks

Log | Files | Refs

commit 2ca8e2e54008e9abc1d4698902016884016d981b
parent 69bfe6a9a92596ef6ca484383793b4d256f76355
Author: dwrz <dwrz@dwrz.net>
Date:   Fri,  5 Jun 2020 14:57:30 +0000

Update concurrency slides

Diffstat:
Mconcurrency/slides.org | 20+++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/concurrency/slides.org b/concurrency/slides.org @@ -18,8 +18,9 @@ You'll likely encounter it at work: Performance Benefits -- I/O versus CPU bound applications. - Typically outweigh gains from optimized data structures and algorithms. + - I/O versus CPU bound applications. + - Hardware limitations. - Rate of single core performance improvement is slowing. - More cores. @@ -113,9 +114,9 @@ Computers can "simultaneously" work on: * 15. How? -- Operating System's *Scheduler* -- Hardware - - /Interrupts/ +Combination of: +- Operating System *Scheduler* +- Hardware (/interrupts/) * 17. Cooperative Scheduling [[file:images/cooperative-scheduling.jpg]] @@ -131,7 +132,7 @@ Computers can "simultaneously" work on: * 21. Concurrency versus Parallelism -- Parallelism :: performing computations at the same moment. +- Parallelism :: performing computations at the same time. - Multiple cores. - Multiples computers. - Kind of like having multiple cooks in a kitchen. @@ -150,7 +151,7 @@ A little more nuance. - Process :: a program in execution. - Start off with one thread. - Can /fork/. - - Inter-Process Communication + - Communicate via inter-process communication (IPC). - Thread :: sequence of instructions that can be managed independently by scheduler. - Share resources ∴ less resource intensive. @@ -169,7 +170,7 @@ Press ~H~ to show threads. * 25. Languages and Runtimes - ~C~, ~C++~, ~Rust~ allow for fine-grained control of processes and threads. -#+begin_src C +#+begin_src C :output raw int main() { fork(); @@ -179,7 +180,7 @@ int main() { } #+end_src -* 26. nodejs +* 26. JavaScript - Single-threaded (for application code). - Runtimes implement concurrency via an event loop. @@ -199,7 +200,8 @@ Source: https://freethreads.net/2019/01/23/go-runtime-scheduler-design-internals - Sequential versus Concurrent Steps - Compare with recipes. - Concurrency versus Parallelism - - Multiple cooks. + - Parallelism: multiple cooks, simultaneously /doing/. + - Concurrency: one or more cooks, simultaneously /dealing/ with many tasks. - Operating System Scheduler - Processes and Threads - Languages and Runtimes