DragonFly BSD
DragonFly kernel List (threaded) for 2004-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: finite state machine/automaton framework?


From: "Simon 'corecode' Schubert" <corecode@xxxxxxxxxxxx>
Date: Fri, 3 Sep 2004 20:05:08 +0200

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
Description: This is a digitally signed message part



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]