The resource fork contained executable `CODE' blocks 16/32K each, plus a jump table blocks, acting as page file, no virtual memory needed!Finder/Multifinder wouldn't let you (may have something to do with wanting to protect the resource fork...dunno why else they made that decision)
That's what I liked about Macs, no 640K limit, also the whole app was just a single file, even defaults, settings, icons, ... all compiled into one file. Installation simple, just drag over.
Compare to modern OS, apps and their various files scattered across different places on the entire file system, including registry => security?
Each app defining its heap and stack, heap zones, and system heap. There was an interrupt 1/60 secs, checking stack did not grow into heap, if my memory does not fail me.
Data fork was mainly used for code texts and editors, I should think.
EDIT and productivity tools and of course compilers, etc.
Early mobile iOS was chosen cooperative on purpose [the marketing] and effectively beats Symbian OS preemptive, on marketing front => end user easier to use, programmer easier to program.
Plus, in time extensive computing loops (usually graphics render), a programmer was expected to call `SystemEvent()', or something like that, to give some cycles back to the system.had to stick GetNextEvent calls everywhere (and capture all those events and handle them)