Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!ll-xn!ames!oliveb!amiga!bart From: bart@amiga.UUCP (Barry A. Whitebook) Newsgroups: comp.sys.amiga Subject: "kill" Message-ID: <1708@amiga.amiga.UUCP> Date: Tue, 25-Aug-87 20:41:51 EDT Article-I.D.: amiga.1708 Posted: Tue Aug 25 20:41:51 1987 Date-Received: Thu, 27-Aug-87 04:29:15 EDT Reply-To: bart@amiga.UUCP (Barry A. Whitebook) Organization: Commodore-Amiga Inc., 16795 Lark Ave. Suite 106, Los Gatos CA 95030 Lines: 33 Keywords: memory fragmentation [ eat this line - please! ] this is amiga!bart: just a little background on why there is no "kill" (and why memory gets fragmented...) in order to safely kill a process on the amiga, it would be necessary to either 1) keep track of all memory which it has allocated since launch 2) make sure that none of this memory is currently "owned" by another process < a loan effective occurs when a message is sent from one process to another - that is, between the time that a message is received at a port and the time that it is replymsg'd() the receiving process relys on its existing and being unmodified, effectively it becomes "owned" by the receiving task > 3) either free this memory OR live with the fact that it is forever lost to the system... (until reboot) this is not to mention the fact that the system would have to keep track of all the other resources in use by that process (flush asynchronous io, close libraries, etc) unless and until all processes respond to "kill" signals by performing hari-kirithemselves the SYSTEM OVERHEAD for these is both too high and too full of race conditions (some processes may have spwaned subtasks). a variant of the above is why coalescing of memory fragments on the amiga can be blocked under some conditions: taska allocates some, taskb allocates some, taska allocates some more and until taskb frees its "middle" chunk the contiguous region represented by aba can't be coalesed even if taska frees all. (also note that the system PERFORMS memory un-fragging whenever POSSIBLE!) this posting is not to discourage the thought of a "better" solution: but as long as we have no MMU... bart.