# Computer Architecture and Operating Systems http://www.ee.surrey.ac.uk/Teaching/Unix/ https://www.computerhistory.org/timeline/ - [ ] latency, throughput, [goodput](https://en.wikipedia.org/wiki/Goodput), roofline analysis, nagle's algorithm - [ ] [cache](https://en.wikipedia.org/wiki/Cache_(computing)), virtual memory, paging, segmentation, canary - compulsory/capacity/conflict/coherency miss - write back/through, (no-)write allocate - How OS actually handles dynamic memory allocation - huge page - double free - memory leak - dynamic/multiple dispatch, virtual function, vtable - wiki: as of 2021, C++ only supports single dispatch - unresolved external symbol (linking?) - multiple inheritence - buffer overflow attack - [write, what, where](https://www.martellosecurity.com/kb/mitre/cwe/123/) - [ ] deadlock, data race - [ ] mutex, semaphore, conditional variable, [futex](https://en.wikipedia.org/wiki/Futex) - [ ] thread, coroutine, synchronization point, barrier - [futures and promises](https://en.wikipedia.org/wiki/Futures_and_promises) - [ ] scheduling - [ ] context switch, interrupt, exception - [ ] compile, link, load, ELF, DLL - [ ] inter-process communication - [ ] shared file - [ ] shared memory (with semaphores) - [ ] pipe (named and unnamed) - [ ] message queue - [ ] socket - [ ] signal - [ ] RAID, LVM, ZFS, XFS, btrfs - [ ] filesystem, permissions, ACL - [ ] SELinux, apparmour - [ ] systemd, syslog - [ ] namespace, container - [ ] module - [ ] PXE, UEFI - [ ] eBPF - [ ] VM - [ ] ipoute2, wireshark, dig, nmap, openvswitch - [ ] error detection and correction, e.g., CRC - [ ] ARM, x86-64 - [ ] GPU - [ ] FPGA - [ ] raft, paxos - [ ] profiler, debugger, sanitizer, mtrace, strace, ptrace - [ ] [2's complement](https://www.youtube.com/watch?v=lKTsv6iVxV4), ieee754 - [ ] ABI - [ ] blocking, non-blocking, synchronous, asynchronous - https://stackoverflow.com/questions/2625493/asynchronous-and-non-blocking-calls-also-between-blocking-and-synchronous - https://stackoverflow.com/questions/7931537/whats-the-difference-between-asynchronous-non-blocking-event-base-architectu/9489547#9489547 - [Faster async functions and promises](https://v8.dev/blog/fast-async) - [ ] reactor, proactor - [ ] half-duplex, full-duplex, multiplex