[comp.sys.amiga.programmer] A Question and a Thought

markv@kuhub.cc.ukans.edu (02/02/91)

Simple question that could be answered with a quick test, but I'm in
the planning stage of some software, and my Amiga is a few days
away...

Is it safe for a task to RemTask() itself?  I have a parent that will
spawn n (no limit beyond available mem) children tasks that can exit
asynchronously to the parent.  Assuming post task cleanup (like
memory for the Task structure) will be done by mommy :-), can the
children Terminate themselves, or does Mommy have to do it for them?
If not, what about a real "Process" w/an empty seglist calling Exit()?

Second, I've been working on an idea for a real simple Amiga only disk
sharing via network.  Suppose machine A wants to read Access on
machine B.  A dummy filesystem on machine A gets mounted.  All it does
is catch DOS packets, stuff it over the network (transport layer could
be any protocol) to server process on machine B.  Server Process on
machine B then makes any needed temp buffers, sends the packets to a
"real" file system, takes the reply, stuffs it back to machine A,
where dummy file system fills in reply fields, copies data into
orignal buffers, then sends it back to DOS/proccess.

The advantage is simplicity (no duplication of existing intellegence in
Amiga OS), no real need for client to know any details of the server
like # of cyls etc (since this is done at the filesystem level), etc.
Assuming reasonable verfication/integrity to the protocol, any
problems/thoughts with this?
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mark Gooderum			Only...		\    Good Cheer !!!
Academic Computing Services	       ///	  \___________________________
University of Kansas		     ///  /|         __    _
Bix:	  mgooderum	      \\\  ///  /__| |\/| | | _   /_\  makes it
Bitnet:   MARKV@UKANVAX		\/\/  /    | |  | | |__| /   \ possible...
Internet: markv@kuhub.cc.ukans.edu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

jesup@cbmvax.commodore.com (Randell Jesup) (02/02/91)

In article <28304.27a99513@kuhub.cc.ukans.edu> markv@kuhub.cc.ukans.edu writes:
>Is it safe for a task to RemTask() itself?  I have a parent that will
>spawn n (no limit beyond available mem) children tasks that can exit
>asynchronously to the parent.  Assuming post task cleanup (like
>memory for the Task structure) will be done by mommy :-), can the
>children Terminate themselves, or does Mommy have to do it for them?
>If not, what about a real "Process" w/an empty seglist calling Exit()?

	RemTask(0) - seppuku.  Make sure the parent can't try to unload/free
it before RemTask is called.  Common method: Forbid(), Replymsg(to parent),
RemTask(0).  When the task goes away, it automatically breaks the forbid.

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.commodore.com  BIX: rjesup  
The compiler runs
Like a swift-flowing river
I wait in silence.  (From "The Zen of Programming")  ;-)

Jay@deepthot.UUCP (Jay Denebeim) (02/03/91)

In article <28304.27a99513@kuhub.cc.ukans.edu> markv@kuhub.cc.ukans.edu writes:
>Second, I've been working on an idea for a real simple Amiga only disk
>sharing via network.  Suppose machine A wants to read Access on
>machine B.  A dummy filesystem on machine A gets mounted.  All it does
>is catch DOS packets, stuff it over the network (transport layer could
>be any protocol) to server process on machine B.  Server Process on
>machine B then makes any needed temp buffers, sends the packets to a
>"real" file system, takes the reply, stuffs it back to machine A,
>where dummy file system fills in reply fields, copies data into
>orignal buffers, then sends it back to DOS/proccess.

This sounds like our PARNET and SERNET programs.  They've been available
for quite awhile now.  Works over the parallel/serial port respectively.
Transport layer is DNET for the serial, and parnet.device for the
parallel.  (Thanks Matt)

>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>Mark Gooderum                  Only...         \    Good Cheer !!!
>Academic Computing Services           ///        \___________________________
>University of Kansas                ///  /|         __    _
>Bix:     mgooderum           \\\  ///  /__| |\/| | | _   /_\  makes it
>Bitnet:   MARKV@UKANVAX                \/\/  /    | |  | | |__| /   \ possible...
>Internet: markv@kuhub.cc.ukans.edu
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--

 |_o_o|\\
 |. o.| || The           Jay Denebeim
 | .  | ||  Software
 | o  | ||   Distillery
 |    |//                         Address: mcnc!wolves!deepthot!jay
 ======          BBS:(919)-460-7430      VOICE:(919)-460-6934

markv@kuhub.cc.ukans.edu (02/06/91)

>>Second, I've been working on an idea for a real simple Amiga only disk
>>sharing via network....

> This sounds like our PARNET and SERNET programs.  They've been available
> for quite awhile now.  Works over the parallel/serial port respectively.
> Transport layer is DNET for the serial, and parnet.device for the
> parallel.  (Thanks Matt)

Tell me more.  I've never used DNET because the realy use for me would
be to VMS or PC Compatible host.  But sounds good.  Then all one would
have to do is write a Transport layer for Ethernet (not too hard).
Now if only I could find out more about this SANA stuff....(hint,
hint).

Now if we could only get some sort of Amiga standard for layer to
layer protocols, so we could do things like this compatibly....

App+Session
 Layers:	KA9Q 	Telnet	Domain/Other	Novell		Etc...
		 | \---\  |    /		  |		  |
Network Layer:	X.25	TCP/UDP			IPX		Other
		|       /     \---------------\   | /-----------/ |
Link Layer:	 \   SLIP               802.x "Packet" Driver     |
                   \  |      			  |		  |
Pysical:         serialx.device		  ethernet.device    xxx.device

This may seem a bit extreme, but isn't far fetched.  Heck, on my DOS PC at
work (with x.25 and Ethernet cards) I can run a telnet<-->X.25<->SLIP
gateway togather with Novell, so that my software can access file
servers, plus we run a special ICMP type protocol (but as top layer so
it doesn't conflict with other TCP/IP stuff like NCSA Telnet) for
smart polling, timing, etc.  (Also, please no arguments over my
quickie OSI diagram, esp TCP/IP on top of it...thats a whole different
can of worms).
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mark Gooderum			Only...		\    Good Cheer !!!
Academic Computing Services	       ///	  \___________________________
University of Kansas		     ///  /|         __    _
Bix:	  mgooderum	      \\\  ///  /__| |\/| | | _   /_\  makes it
Bitnet:   MARKV@UKANVAX		\/\/  /    | |  | | |__| /   \ possible...
Internet: markv@kuhub.cc.ukans.edu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~