I've excerpted this from Wikipedia "Cooperative Multitasking":
Early multitasking systems used applications that voluntarily ceded time to one another. This approach, which was eventually supported by many computer operating systems, is known today as cooperative multitasking. Although it is now rarely used in larger systems except for specific applications, cooperative multitasking was once the only scheduling scheme employed by Microsoft Windows and Classic Mac OS to enable multiple applications to run simultaneously.
As a cooperatively multitasked system relies on each process regularly giving up time to other processes on the system, one poorly designed program can consume all of the CPU time for itself, either by performing extensive calculations or by busy waiting; both would cause the whole system to hang.
Although "one poorly designed program consuming all of the CPU time for itself" is a common cause of "freezes" it's not the only cause. In the old Mac OS, memory allocation was fixed (by the settings in the "get Info" window) and it's easy to have an app simply run out of memory, thereby causing it to hang and therby causing the entire system to go belly-up. All of this is why Apple went through the incredibly awkward and painful process of moving the entire Mac ecosystem to the preemptive multitasking UNIX-based system called OSX.
Actually, considering the fragility of the entire principle the old Mac OS is based on, it's kind of amazing that it does work as well as it does. You do need to keep some guardrails in place to help ensure that however. The most important one is probably keeping unnecessary memory usage to an absolute minimum. Having multiple apps open in the background - even if they're idle, is the #1 no-no. The system cannot reallocate idle memory to active processes as needed the way it can in OSX, so the best-running systems are usually doing one thing at a time. This is not the place for an entire primer on how to manage Mac OS memory but it's a fine art that every Mac OS user should be familiar with.
If your computer is "freezing" at random it's probably not really random - you just haven't identified the common cause of it yet.
Does the Command-period combo ever help? That's tool #1 for systems stuck from "busy waiting".
There's also a fine line with PT "piles of PCI cards" systems where Doofusdesign wants more memory than it should be entitled to, that may require some trial-and-error experimentation to find the sweet spot where all processes have just enough RAM in their pocket. That varies with each user since it depends RAM available, exactly which apps you use, etc.
Let me take a second to poke you again by reminding you that that is one of the main things Apple tried to address as well as possible with each succeeding release.
OS9 has better memory allocations than OS8 and many processes have better cooperative decision-making.
Yeah, it also has a lot of what you may see as unnecessary junk and clutter too, but that doesn't matter if you simply don't use it. Excess extensions and such can't be an issue if they're simply not enabled. I think you already have a clue about this since you're suddenly asking a lot of questions about memory allocation, defragging and such.
Anyway, as usual, I'm just sayin'…