12 years ago it might have been laughable. But the Core2 Duo was released in 2006, some 7 years before, so the problem was well in hand by then.
But go back 20 years, and you predate Linux RCU. The OS Developers weren't laughing at the problem then.
Arguably the Linux Real Time patches are solving a similar problem, which could be said to be extracting maximum parallelism out of the code. For Real Time this isn't so they can run in parallel, but rather so a higher priority task can interrupt a lower priority one with impunity. Real Time Linux still isn't done yet, although it's getting close.
> But go back 20 years, and you predate Linux RCU. The OS Developers weren't laughing at the problem then.
I believe it was the DEC Ultrix dev team who, reportedly, amused themselves after hours by making transparencies of Linux source code, projecting them on a screen, cracking open a few beers and having a laugh at the idiot mistakes those college kids made -- mistakes, of course, that you can avoid by choosing a real Unix OS.
It took a while for Linux to actually be taken seriously outside of home-lab tinkering.
> It took a while for Linux to actually be taken seriously outside of home-lab tinkering.
It took a while and big companies like IBM and organizations like the OSDL and FSG (which became the Linux Foundation) pouring many thousands of person hours and millions of dollars into it. The Linux kernel has plenty of independent "amateur" (not paid to do so) contributors but it's also got a lot of paid contributors for who it's their day job.
It's an awesome mix of contributors but I think there's a definite generational shift around the 2.2/2.4 to a much more capable kernel than 2.0 and before. Had Linux not gotten the financial backing it did I don't know that it would be where it is today.
Typical audio software, for example, has been multithreaded since the 90s (simply because the audio callback and the GUI must run in different threads). And in the mid 2000s these threads started to run on different CPUs.
As a freshman CS student? Granted things were changing rapidly in the 90s, but this wasn't the case my freshman year a couple of years prior. I know that I was aware of the concept of threading by my sophomore or junior year, and by the time I graduated had encountered them first hand. I'm not sure we even covered multitasking (fork() and friends) at all in my freshman year, but of that I'm far less certain.
Point is the programming paradigm of POSIX threads or multitasking wasn't a new concept then and likewise been in the curriculum for a while. Multi-core only brought a new level of performance to it.
There were in fact attempts for new concurrency paradigms (like Software Transactional Memory) which however led nowhere outside academia.
Thankfully many DAWs, video editing, CAD, servers and other useful software saw the value in multi-core workloads.
It’s a thing… just not for web folks most of the time.