Operating Systems 2015F Lecture 10
Video
The video from the lecture given on October 9, 2015 is now available.
Notes

Lecture 10
----------
What's in your final report?
- The idea (intro)
- Design/high level implementation
- implementation (problems encountered)
- Evaluation (does it work and how do you know)
- Conclusion
- contributions
- limitations
- future work
- appendix: code (potentially in patch form)
I suggest you use LaTeX, at least for the code listing
(may want to look at pandoc and markdown)
Concurrency
- race conditions
- producer/consumer
- locks
- protecting data structures
- rendezvous
- filesystem locks
- in-memory locks
Processes and threads
- a process is
- a CPU context (virtual CPU)
- plus a private address space
- a thread is
- a CPU context (virtual CPU)
- in a shared address space
- with threads, all threads see the same memory (within a single process)
Why have threads?
- because we have multiple CPUs
Why are threads bad?
- race conditions!
- memory concurrency!
- corrupted data!
- now you need locks in memory!