| ▲ | colonwqbang 4 hours ago | ||||||||||||||||||||||
Does there exist any platform which has multithreading but not atomics? Such a platform would be quite impractical as you can't really implement locks or any other threading primitive without atomics. | |||||||||||||||||||||||
| ▲ | addaon 3 hours ago | parent | next [-] | ||||||||||||||||||||||
> Does there exist any platform which has multithreading but not atomics? Yes. Also, almost every platform I know that supports multi threading and atomics doesn’t support atomics between /all/ possible masters. Consider a microcontroller with, say, two Arm cores (multithreaded, atomic-supporting) and a DMA engine. | |||||||||||||||||||||||
| ▲ | cogman10 4 hours ago | parent | prev [-] | ||||||||||||||||||||||
Certainly such systems can pretty readily exist. You merely need atomic reads/writes in order to implement locks. You can't create userspace locks which is a bummer, but the OS has the capability of enforcing locks. That's basically how early locking worked. The main thing needed to make a correct lock is interrupt protection. Something every OS has. To go fast, you need atomic operations. It especially becomes important if you are dealing with multiple cores. However, for a single core system atomics aren't needed for the OS to create locks. | |||||||||||||||||||||||
| |||||||||||||||||||||||