finite state machine/automaton framework?
Simon 'corecode' Schubert
corecode at fs.ei.tum.de
Fri Sep 3 11:06:18 PDT 2004
On 03.09.2004, at 19:54, Matthew Dillon wrote:
:hey,
:
:considering that operating systems in general (and dfly in special)
:have lots of finite state machines in source - most of them hidden as
:evil if/else constructs of which the authors supposedly never heard
:about FSM before.
:Is it a good or bad idea to have a (simple) FSM framework available
:which can be used by different parts of the operating system? If yes,
:do such frameworks already exist?
:
:Just a thought because of the need to implement a i8254 PIT
emulation...
Well, I don't think it's really applicable to what the kernel
has to do in most cases. For example, emulating an 8254 with an
FSM
would basically require emulating the 8254's logic, which would
take
megabytes through a generic FSM module, even one designed for logic
emulation. But it would only a few kilobytes if you 'faked' it in
C
(emulated the 8254 at a functional level rather then at a logic
level).
I was thinking of a system that generates C code out of a formal
description. This way the code wouldn't differ much from the hand
written one, but it would definitely be better to maintain (compare
yacc).
for example:
state_idle:
if:
written_byte & WHATEVER_BITMASK
newstate:
state_program_oneshot
output:
this_var = that_var;
run_foo();
etc
cheers
simon
--
/"\
\ /
\ ASCII Ribbon Campaign
/ \ Against HTML Mail and News
Attachment:
PGP.sig
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgp00001.pgp
Type: application/octet-stream
Size: 186 bytes
Desc: "Description: This is a digitally signed message part"
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20040903/89f42932/attachment-0020.obj>
More information about the Kernel
mailing list