Communicator 3000 MPE/iX Release 6.0 (Platform Software Release C.60.00) (30216-90269)

Chapter 10 201
Technical Articles
CI Enhancements
4. If the process does not have any locks then "NONE" is displayed. If
the PIN owns or is waiting on one or more of the relevant
semaphores, then the semaphore name is shown under either the
"Owner" or "Waiter" column. There are three semaphores (locks)
considered.
The FLOCK semaphore is obtained when a processes calls the
FLOCK intrinsic. This lock is exclusive; meaning that only one
process at a time can own the FLOCK semaphore for a file.
Occasionally the FLOCK semaphore is used by the file system to
synchronize directory access.
The OPEN semaphore is locked by the file system when a file is
being formally opened. In this usage the OPEN semaphore is
locked exclusively. It is also used by the operating system to
protect certain file system data structures when they are being
read. This usage allows the OPEN semaphore to be locked in a
shared fashion. The OPEN semaphore can be locked shared by
multiple processes, but once it is locked exclusively all other PINs
trying to lock it will wait.
The GUFD semaphore is locked by the file system when it does I/O
on the target file. It is locked exclusively.
Phantom Accessors . It was mentioned earlier about processes that
pseudo-open (call sm_open) a file. STORE and PROGEN are examples of
processes that bypass the file system by not calling FOPEN or HPFOPEN
to open a file. This type of access is usually only evident by noticing that
the total accessors count is greater than the open count (O:), and format
9 output typically will not show these phantom accessors.
There are also cases where a process does not open the file in any way
at all, yet this process can lock one or more of the semaphores, and thus
needs to be accounted for. LISTFILE and MPEX (when calling
AIFSYSWIDEGET item 2065 to obtain a file's accessors) are examples of
these kinds of phantom accessors. In this case the total accessor count
is lower than what may be revealed by counting individual accessors
shown in format 9.
If any of these phantom accessors lock one of the three important
semaphores, then LISTFILE can detect the process and report reduced
information about the access. If the phantom accessor process does not
lock either the FLOCK, OPEN, or GUFD semaphores, then its access is
undetected. Following is a format 9 example of a file that another user
is also executing a LISTF,3 against. Notice that the total accessor
count is one, yet we see two accessors. PIN 58 is the process that is
doing the LISTF,3 and thus is seen as a phantom accessor.
FILE: GOPI.PUB.SYS
1 Accessor(O:1,P:2,L:2,W:0,R:1),Share
#S3 JVREM,MANAGER.SYS P:1,L:1,W:0,R:1 REM : 15.28.88.18
#P62 (LOCKP.PUB.SYS)
ACCESS: R-excl REC#: 0 FNUM: 11
LOCKSOwner Waiter