Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
As you have seen (previous pictures) when a task is set up, the kernel uses the OUIJA (Online User Import Junction Address) Table to set up the GHOST (Global Hosting Online Segment Table) for the task. For efficiency, several threads can share the GHOST (and its Address Registers) as they are all configured to be invariant (i.e. you can write through them but they themselves cannot be changed, i.e. pointed to other Segments) for security reasons. (See also ::SHE+ILA::'s Protected Mode). Whereas a thread within a task merely has its own set of ALU registers and Stacks, just enough for its independent execution.
Threads are distinguished within a task by each having their own "trigger function", e.g.
{! woo; yay; squee; giggle (1); giggle (2); !}
where "{!" and "!}" are thread begin and end brackets (see $F2 opcode). This starts in parallel the functions woo, yay, squee, with no parameters, and two instances of giggle with parameters (1) and (2).