Hello! I am still attempt to better understand how concurrency works. I read a lot of info but still misunderstood some key-points.
Here is my thought about it and questions:

1. There is OS threads. Context-switching is very expensive because during it we should to save ALL CPU registers to RAM. Accessing to RAM is slowly up 200-300 times then accessing to registers, so dumping/restoring registers take a lot of time. Right? 1.1 During context-switching OS is go to kernel-mode (ring-0). I have heard opinion that it's cost a lot, but can't understand is it true and why it cost a lot?

2. Message passing is superstructure of threads. Right? When it can be helpful? Any user-case please. 2.1 Can simple threads pass data/messages to each other without message passing?

3. Fibers is threads that works in user-mode (rather in single kernel-thread OS do not see them, it see only 1 own Thread). 3.1 Fibers are switch explicitly. If do not call yield mother-thread will be hang on. 3.2 Where fibers store CPU register state in moment of switching between fibers? In memory? But then what difference with context-switching (that take a lot of time to save/restore registers state)?

Please correct me where I am wrong and highlight where I am right.

Reply via email to