Sujet : Re: PAD and preemptive multi-tasking
De : dxforth (at) *nospam* gmail.com (dxf)
Groupes : comp.lang.forthDate : 21. Dec 2024, 00:49:48
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <bb67ecf90c16a2038a7d366cfa35a07a671c2b58@i2pn2.org>
References : 1
User-Agent : Mozilla Thunderbird
On 20/12/2024 9:10 pm, Anton Ertl wrote:
Bernd Paysan have been wondering what to do about PAD in the presence
of preemptive multitasking (but not multi-user) as implemented in
Gforth.
You may need to explain 'preemptive' and its relevance here.
We see two possible scenarios:
If PAD is used only directly by the user for interactive work, only
one PAD is needed.
OTOH, if PAD is used as temporary storage in words that may be called
by any task, PAD needs to be part of the per-task (aka USER) data.
My understanding is that classical multi-tasking Forth systems
(polyForth, I guess) were also multi-user and had one dictionary per
task, so they also had one dictionary pointer and therefore one PAD
per task, but I have not worked with any of them and the descriptions
I have read have been very sketchy, so this could be wrong.
Based on a part disassembly the value of HERE (used as DP) was taken
from the user area and PAD was 34 bytes above that value.
In any case, the question is how PAD is used by current programs that
might be run on Gforth.
- anton