Skip to content

Communication #16

@Lucus16

Description

@Lucus16

We need to decide upon how we do this.

  1. Kernel->Kernel communication is simple, we do it by direct JSRs. I don't think there is any need for a different system.
  2. Process->Kernel communication can be done by either using JSR or INT. Using JSR has the advantage of being quicker, while INT has the advantage of not needing special addresses to store function pointers. Right now, JSR is assumed, I believe, but we should consider whether it is really the best..
  3. Kernel->Process communication is not really documented yet, as far as I know. I imagine this being done by using signals. Signals are 1 word long. This is basically simulated interrupts. This also means we probably want to be able to queue signals, just like interrupts can be queued. The problem with this is, if we have a max of 16 processes at a time, and a queue of only 16 signals, and we need to store only the signal word and the sender, we still end up with needing a full memory page to store that. And we likely want more than 16 procs at a time.
  4. Process->Process communication would then be possible using the same system, sending signals from one process to another. Messages could be communicated by saying all signal numbers above 0x1000 for example, are simply pointers to messages.

So, opinions on all of this please, how are we going to implement this. I need to know this soon to be able to make a proper dynamic interrupt handler.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions