This question Why can a system become unresponsive? comes close. The answer kind of explains what is likely happening, but I just don't understand why this problem hasn't been solved since at least the 80s. Are there any theoretical reasons?
Specifically what happens is that the system runs fine without noticable performance drop while I have many tabs in my browser (happens with both Firefox and Chrome) but sometimes the opening of a new tab (or the launching of the other browser) causes the HDD to make constant noise and the mouse/keyboard input response lags so heavily that I rather cold reboot. That saves me 10 minutes and a lot of gray hair.
I disabled swap completely and the same happens. Shouldn't the kernel just kill the 1st process that reaches the limits of the physical memory, or the biggest maybe?
The kernel should not allow any processes, not even buggy/malicious, not to mention Firefox/Chrome, to cause unresponsiveness to such an extent that the quickest way out is a cold reboot. Whatever the reason. What is the reason? Can't trashing be recognized? Shouldn't a too "greedy" process be killed automatically, instead of causing the user to manually kill all of them with a reboot and loosing unsaved data?
I know about the SysRq keycombos and pkill (>10 minutes), but I dont want to have to use either of them. I want this problem to be solved automatically.
I am interested in why this isn't solved in Linux?