Compare commits

..
1 Commits
Author SHA1 Message Date
dwrz 12af283ec7 Add README 2026-10-27 14:02:33 +00:00
+9 -7
View File
@@ -1,24 +1,25 @@
* Talks * Talks
Slides and example code from two technical presentations given in 2020. This repository contains slides and example code from two technical presentations given in 2020.
Slides use [[https://orgmode.org/][org-mode,]] and were presented in Emacs with [[https://github.com/rlister/org-present][org-present]]. Slides use [[https://orgmode.org/][org-mode,]] and were presented in Emacs with [[https://github.com/rlister/org-present][org-present]].
** Concurrency (June 2020) ** [[file:concurrency/][Concurrency]] (June 2020)
Introduction to concurrency. Introduction to concurrency.
*** Slides ** Slides
- Sequential vs. concurrent execution, I/O latency, interrupts, and cooperative vs. preemptive scheduling - Sequential vs. concurrent execution, I/O latency, interrupts, and cooperative vs. preemptive scheduling
- Concurrency vs. parallelism, processes vs. threads, and language runtimes (C, JavaScript event loop, Go scheduler) - Concurrency vs. parallelism, processes vs. threads, and language runtimes (C, JavaScript event loop, Go scheduler)
- Shared memory synchronization vs. message passing, backpressure, and distributed data races - Shared memory synchronization vs. message passing, backpressure, and distributed data races
*** Examples ** Examples
- temperatures: concurrent HTTP requests fetching city temperatures from OpenWeatherMap. - temperatures: concurrent HTTP requests fetching city temperatures from OpenWeatherMap.
- mutex: data race demonstration and mutual exclusion on a shared bank account balance (~go run -race ./main.go~). - mutex: data race demonstration and mutual exclusion on a shared bank account balance (~go run -race ./main.go~).
- csp: pipeline of goroutines and channels reading a CSV of zip codes, querying weather data with a concurrency limiter, and displaying a live top-ten leaderboard. - csp: pipeline of goroutines and channels reading a CSV of zip codes, querying weather data with a concurrency limiter, and displaying a live top-ten leaderboard.
To run the examples: *** Running Go examples
#+begin_src shell #+begin_src shell
# Mutex example (with and without race detector): # Mutex example (with and without race detector):
cd concurrency/cmd/mutex cd concurrency/cmd/mutex
@@ -31,7 +32,7 @@ cd concurrency/cmd/temperatures && go run .
cd concurrency/cmd/csp && go run . cd concurrency/cmd/csp && go run .
#+end_src #+end_src
** x86-64 Assembly (November 2020) ** [[file:x86-assembly/][x86 Assembly]] (November 2020)
A brief tour of x86-64 assembly on Linux. A brief tour of x86-64 assembly on Linux.
@@ -49,7 +50,8 @@ A brief tour of x86-64 assembly on Linux.
- stack: pushing bytes onto the stack and printing from ~%rsp~. - stack: pushing bytes onto the stack and printing from ~%rsp~.
- func: function call, stack frame setup (~%rbp~ / ~%rsp~), and return. - func: function call, stack frame setup (~%rbp~ / ~%rsp~), and return.
To run the examples: *** Running x86-64 examples
#+begin_src shell #+begin_src shell
as exit.s -o exit.o as exit.s -o exit.o
ld exit.o -o exit ld exit.o -o exit