Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PVM_SHMD(1PVM)			PVM Version 3.4			PVM_SHMD(1PVM)

NAME
       pvm_shmd	- PVM shared memory (2)	daemon

SYNOPSIS
       pvm_shmd	[ -options ] [ hostfile	]

DESCRIPTION
       Pvm_shmd	 is  a daemon process which maintains and handles the usage of
       shared memory resources (memory segments, semaphores,  message  queues)
       on a particular PVM host.  One pvm_shmd must run	on each	host in	a vir-
       tual  machine  that wants to use	the shmd shared	memory message passing
       layer. The shmd message passing layer allows local processes to a  host
       to  use	shared	memory	for message passing on that host ONLY. See the
       shmd directory README for further notes and restrictions.

       The daemon can be started manually as with any other  PVM  task.	  Only
       one  pvm_shmd  can  be active per host. If the pvm_shmd detects another
       pvm_shmd	it will	shutdown.

       The pvm_shmd can	be killed from the PVM console by using	the reset com-
       mand.  Local and	remote pvm_shmds can also be started from the PVM con-
       sole program pvm.

       The name	of the daemon executable is pvm_shmd.

Shared Resource	Usage
       The pvm_shmd will attempt to create upto	MAXSEG shared memory  segments
       of  upto	MAXPAGES memory	pages in size. The size	of each	memory page is
       architecture dependent(see getpagesize(3C)).   The  segments  are  then
       numbered	 0..N-1	 where N is the	number of segments created.  The first
       segement	(0) has	the shared memory  control  structure  placed  in  its
       head. This structure allows alien processes to located the other	shared
       memory segments and any required	controlling information.

       The  message  passing layer, allocates memory from these	segments asyn-
       chronously without any interaction with the pvm_shmd  using  semaphores
       to  protect data	during updates to any associated structures.  For each
       segment there is	an associated page map of which	 processes  have  cur-
       rently  locked a	page. Each page	map for	a segment has a	separate sema-
       phore protecting	it. The	semaphores are accessed	with the SEM_UNDO flag
       set so that if a	 process  holding  a  semaphore	 should	 die,  the  OS
       (should)	 reset	the  semaphore	automatically, thus allowing any wait-
       ing/blocked processes to	continue.

       The pvm_shmd only maintains the	segments  and  their  allocation  page
       map(s).	Thus if	a process allocated pages in a segment and then	exits,
       it  is  the  pvm_shmd  that  detects  this and then frees the allocated
       pages.

       The pvm_shmd can	have its status	checked	 at  any  time	by  using  the
       pvm_shmd_stat  process  to  kick	it into	reporting onto either stdio or
       the pvm log file	(pvml.uid) its internal	state.

       The shared memory and all associated processes can be cleared by	 send-
       ing the pvm_shmd	a HUP signal.

       Sending	the  pvm_shmd  a  TERM	signal will just cause it to clear any
       shared resources	and then exit.

       The pvm_shmd cannot catch the KILL signal.

       If the pvm_shmd is killed without clearing all of its shared  resources
       these  can  be cleared by calling ipcfree which resides in the pvm3/lib
       directory.

Message	Passing	using SHMD
       The pvm_shmd handles resources that are used  by	 special  versions  of
       pvm_psend() and pvm_precv() stored in the libpvmshmd.a library. Thus to
       use these facilities, applications have to link to this library instead
       of the usual libpvm3.a library.

OPTIONS
       The  following options may be specified on the command line when	start-
       ing the pvm_shmd:

       -debug=level
	       Sets the	pvm_shmd debug level.  Used to debug the  pvm_shmd  or
	       libpvmshmd  (not	 intended to be	used to	debug application pro-
	       grams).

       -maxsegs=maxsegs
	       Sets the	maximum	number of segments that	the pvm_shmd can  cre-
	       ate.  This  is  used  to	 over-ride  the	compiled in value from
	       shmd.h. Note that the value cannot be above the MAXSEGS in  the
	       shmd.h file.

       -maxpages=maxpages
	       Sets the	maximum	segment	size to	maxpages pages of memory. This
	       value  cannot be	above the compiled value MAXPAGES in shmd.h or
	       the actual OS defined limit.

NOTES
       Remember	that pvm_shmd allocated	memory from the	VM  available  on  the
       machine.	 Allocating  more  segements  improves performance as there is
       less sharing of segments	(semaphores for	their page maps). Although you
       must remember to	leave some memory available for	normal program and  OS
       system  usage, as the pvm_shmd allocated	memory is *ONLY* used for mes-
       sage passing.

FILES
	 $PVM_ROOT/lib/$PVM_ARCH/pvm_shmd PVM shared memory daemon executable
	 $PVM_ROOT/shmd/shmd.h Shared Memory hard limits header	file
	 /tmp/pvml.uid Pvmd runtime error log

SEE ALSO
       pvm(1PVM), pvmd(1PVM), getpagesize(3C), ipcs(1),	msgctl(2),  semctl(2),
       shmctl(2), signal(5)

G.E.Fagg			11 March, 1999			PVM_SHMD(1PVM)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pvm_shmd&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help