Compare commits
1
Commits
trunk
..
12af283ec7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12af283ec7
|
+9
-7
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user