Operating Systems 2015F Lecture 10: Difference between revisions
| (2 intermediate revisions by the same user not shown) | |||
| Line 4: | Line 4: | ||
| ==Notes== | ==Notes== | ||
| [[File:Blackboard-concurrency.jpeg|thumb]] | |||
| <pre> | <pre> | ||
Latest revision as of 16:56, 14 October 2015
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!