Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Nov 1999 15:36:43 -0800
From:      Amancio Hasty <hasty@rah.star-gate.com>
To:        Randell Jesup <rjesup@wgate.com>
Cc:        arch@freebsd.org
Subject:   Re: FSM's 
Message-ID:  <199911052336.PAA58947@rah.star-gate.com>
In-Reply-To: Your message of "05 Nov 1999 19:16:35 GMT." <ybuaeospx4c.fsf@jesup.eng.tvol.net.jesup.eng.tvol.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Amancio Hasty <hasty@rah.star-gate.com> writes:
> >1. Both FSM and Posix thread have locking problems. 
> >
> >  If you are in a state and need to access a data  region which is 
> >  shared by several states you may need to lock the data region.
> 
> 	True.
> 
> >2. FSMs with gotos are not linear. For instance for a multi connection
> >server you can serve concurrent connections which I did for an FTAM
> >file server.
> >
> >I implemented FTAM (ISO) as a FSM on VMS  a decade ago for Touch 
> >Communications. The ISO Session layer specification came with its own 
> >FSM which the engineer at Touch implemented. Again this was for a multi
> >connection server.
> 
> 	Of course, FSM's can be 'multitasking'/multithreaded - the old
> PlayNet software I wrote for C64's (later ported to the PC as America
> Online) used a 'multitasking' FSM (with state pushes/pops as well) to
> handle chat, Online (Instant) Messages, menus, etc.  This certainly works;
> the only problem is that this assumes that either (a) the time to handle an
> input is shorter than the time between inputs, or (b) responsiveness to an
> input doesn't need to be better than the maximum time to handle an input.
> You do get 'free' implicit locking of datastructures while handling a
> (single) input.
> 
> 	There are also issues of shared context, such as the current
> directory.

Which is why you need locking.


> 	In theory, you could call a multitasking (but non-pre-emptive) OS
> basically the same thing as a really big FSM.  Not that this tells you
> very much useful.

Well, Von Neumann second computer architecture was an FSM machine
to attempt to model the human brain 8)

> 	I simply find it _far_ easier to work in the paradigm of
> multitasking, messages, and queues than FSMs.  Sometimes FSMs are fine (a
> lot of windowing events can be handled in a Mac/Windows/Amiga/X-style event
> loop).  Sometimes they're not - a lot of X apps freeze and don't even
> refresh or let the UI work if a system call hasn't returned, because their
> UI handling is part of their program (via toolkits).


I think that this is an implementation issue : A few years ago I interviewed
over the phone for an X server position at Sun. 

	Top X server from Sun: What do you think X needs
	Amancio: How about tracing so programmers can have
                            and easier time debugging X applications?
	Top X server: Do you really think that programmers need 
                                 tracing?

At Touch we didn't have problems tracking down FSM states .

> 	However, we're wandering far afield here (sorry) - the question
> isn't "are threads useful" - they are.  The question is "how do we
> implement them".

	As an FSM of course , I thought that was clear 8)

-- 

 Amancio Hasty
 hasty@rah.star-gate.com






To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911052336.PAA58947>