Mail Archives: opendos/1997/03/21/09:06:58
Once upon a time (on 21 Mar 97 at 13:27) Gints Linis said:
> Could anyone tell the following:
>
> - Is the 512 descriptors in GDT a principal limitation of this OS, or can it
> be modified?
No. both LDT and GDT have a limit of 8192 descriptors so it seems that the
one to blame here is the server software yo're using
> - What is the absolute maximal number of threads that can exist at a time?
No limit except for the memory and the (if on DOS) server's limitation. On
OpenDOS you depend on the DPMI software you're using. I don't know about
OpenDOS's EMM386, but DJGPP's CWSDPMI takes full advantage of the GDT and LDT
capacity. Are you using OD's TaskSwitcher and/or MultiTasker software? If so
then check out Ralph Brown's Interrupt List - it has detailed information
about this particular piece of software. Also soon a detailed documentation
in Envoy format should be available from http://www.deltasoft.co.uk/dos/
> - If the GDT size can be changed, then can it be done by means of e.g. a
> configuration option, or it is possible exclusively through recompiling the
> OS?
Usually it's being done when entering the protected mode - in case of OpenDOS
when any DPMI client is first started. GDT and LDT size depends on the
sever's configuration - again, CWSDPMI has sources and may be configured at
will.
> - Any ideas as to what else could be done to increase the maximal number of
> threads?
If I were in your shoes I wouldn't allocate a separate GDT entry for each
thread - it's very inefficient. Instead use an internal dispatch table for
this purpose or LDT entries if you really want to allocate each thread as
separate task (the only reason I see for allocating LDT or GDT descriptors
for threads) which is very slow in operation. If you want to secure the
dispatch table and/or dispatch code, allocate separate descriptors for
them *only*. Dispatch routine might be installed in IDT as a task gate - all
the data it uses could be in separate memory pool pointed to by a
descriptor allocated in GDT (for global thread management) or LDT (for
local/per-application thread management)
****************************************************************
You ask for my love on a strength of a kiss,
But can't you just play for experience?
I'm a poet, I'm a minstral, I don't need your chains
Romance lies in ruin, let debauch you bewail, let it rain...
---
Visit http://ananke.amu.edu.pl/~grendel
- Raw text -