Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ulowell!cbmvax!jesup From: jesup@cbmvax.UUCP (Randell Jesup) Newsgroups: comp.sys.amiga.tech Subject: Re: Task KILL for Amiga Message-ID: <5843@cbmvax.UUCP> Date: 29 Jan 89 21:07:52 GMT References: <8901251704.AA18073@terra.oscs.montana.edu> <5799@cbmvax.UUCP> <5808@cbmvax.UUCP> <5813@cbmvax.UUCP> <87289@sun.uucp> Reply-To: jesup@cbmvax.UUCP (Randell Jesup) Organization: Commodore Technology, West Chester, PA Lines: 32 In article <87289@sun.uucp> cmcmanis@sun.UUCP (Chuck McManis) writes: >In the referenced articles Randell and Michael were debating where one >might want to truely use the MEMF_PUBLIC flag. Generally, in the Amiga >MEMF_PUBLIC has little or no use. What they seem to be overlooking is >that there is a large degree of difference between tasks/processes and >"context". In the future version of "Exec" that extends control to an >MMU based system, what will be important is what "context" the task is >running in, rather than what task the pc happens to be sitting in. >Essentially, some tasks such as handlers and I/O devices share the >same context as all of their client tasks. So when you go to Examine >a file or read the joystick the message you pass remains in your context >(and hence your address space) and thus the other task has no problem >reading or writing it. When a reply is sent, the context is established >first so that you can be sure the reply will go to the correct place. >Think of the Amiga as operating in a single context today. Tomorrow, >that context information may be changed on the fly but the programs >will still work. I think you're being a little bit over-presumptious about a protected Exec. You'll also note that I said that memory other tasks would access. I should have been more clear, I meant other "user" tasks. Handlers and devices are system tasks, and can run unprotected if need be, or in supervisor mode. The danger is in allocating things that will be put on system lists as public, where other people can find them. Ports (and the names they use!) are a good example of this, if they're made public. Private ports (not on the port list) should still be in public memory if you're going to send messages to a non-system task (since it will reply). And of course memory/structures pointed to by messages should be public. -- Randell Jesup, Commodore Engineering {uunet|rutgers|allegra}!cbmvax!jesup