Operating Systems 2015F Lecture 10: Difference between revisions
|  Created page with "==Video==  The video from the lecture given on October 9, 2015 [http://homeostasis.scs.carleton.ca/~soma/os-2015f/lectures/comp3000-2015f-lec10-09Oct2015.mp4 is now available]." | |||
| (3 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
| The video from the lecture given on October 9, 2015 [http://homeostasis.scs.carleton.ca/~soma/os-2015f/lectures/comp3000-2015f-lec10-09Oct2015.mp4 is now available]. | The video from the lecture given on October 9, 2015 [http://homeostasis.scs.carleton.ca/~soma/os-2015f/lectures/comp3000-2015f-lec10-09Oct2015.mp4 is now available]. | ||
| ==Notes== | |||
| [[File:Blackboard-concurrency.jpeg|thumb]] | |||
| <pre> | |||
| 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! | |||
| </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!