TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Arjen Lentz
from: Craig Swanson
date: 1994-08-03 10:59:20
subject: OS/2 EXEs with shared code?

AL> A DLL used by multiple OS/2 processes, will only be loaded once. Right?

Usually that is true.  However, if the preferred load address for the DLL
is already used in some processes that need the DLL, then it may have to be
loaded additional times.

 AL> An EXE running in multiple OS/2 processes, like a
 AL> mailer/BBS in a multi-line situation, will be loaded
 AL> again for each process. Right?

OS/2 shares executable code pages for both EXE and DLL files. If there is a
process running PROGRAM.EXE and you start a second process running
PROGRAM.EXE, additional memory for process and thread control blocks, file
handles, stacks, and read/write data areas will be allocated.  The actual
executable code in RAM will be shared between all processes running
PROGRAM.EXE.

 AL> If the above two observations are correct, it'd be rather unfortunate,
 AL> wouldn't you agree? For instance UNIX only loads a
 AL> program once, you can even give it a 'sticky bit'
 AL> attribute, forcing it to stay in memory all the time,
 AL> even if no processes use it at a particular time
 AL> (imagine a BBS program, called by getty).

There is no "sticky bit" in OS/2, but it is easy enough to
simulate this simply by blocking a thread on a named semaphore or some
other IPC object so that you can cause the process to terminate if you want
to release the memory.


--- Maximus/2 2.01wb


* Origin: OS/2 Connection {at} Mira Mesa, CA (1:202/354)
SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 413 430
SEEN-BY: 711/807 808 809 934 942 712/353 623 713/888 800/1
@PATH: 202/354 301 1 209/710 209 280/1 396/1 3615/50 229/2
@PATH: 12/2442 711/409 54/54 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.