|
Claims  |
|
|
I claim:
1. A network, comprising:
a plurality of computing devices;
a plurality of resources;
storage means containing data defining an access log;
a communications channel permitting each computing device to access each of
the resources and the storage means for data transfer;
each computing device being adapted to access a required one of the
resources according to a resource accessing procedure comprising;
a. recording an entry in the access log identifying the required resource
prior to any accessing of the required resource;
b. scanning the access log prior to any accessing of the required resource
to locate any conflicting entry identifying the required resource;
c. terminating the resource accessing procedure in response to any
conflicting entry located during the scanning of the access log;
d. accessing the required resource in response to the absence of any
conflicting entry in the access log;
e. deleting the recorded entry when any accessing of the required resource
by the computing device is finished.
2. The network of claim 1 in which the said scanning of the access log is
performed subsequent to the recording of the entry and in which the said
terminating of the resource accessing procedure includes deleting the
recorded entry.
3. The network of claim 2 in which the resource accessing procedure
comprises a preliminary scanning of the access log prior to recording the
entry in the access log to locate any conflicting entry and terminating
the resource accessing procedure without accessing the required resource
in response to any conflicting entry located during the preliminary
scanning.
4. The network of claim 1 adapted to restrict access to any one of the
resources according to priority levels assigned to each computing device,
in which:
the access log includes a multiplicity of storage locations defining an
actual use log and a multiplicity of storage locations defining a virtual
use log;
each computing device is adapted to record any entry identifying a required
resource only in the actual use log;
each computing device is adapted to recognize a priority level associated
with the computing device;
each computing device is adapted to scan the actual use log and depending
on the priority level assigned to the computing device to scan the virtual
use log whenever scanning the access log to locate conflicting entries.
5. The network of claim 4 in which at least one of the computing devices is
adapted to record entries in the virtual use log and to permit selective
recording of a virtual use of the resources in the storage locations
associated with the virtual use log.
6. The network of claim 1 in which:
the access log comprises a first multiplicity of storage locations, each
computing device being uniquely associated with one of the first
multiplicity of storage locations;
each computing device is adapted to calculate the location of the
associated storage location according to a predetermined formula and to
record an entry identifying a requirement for a single resource only at
the calculated location.
7. The network of claim 6 adapted to permit each computing device to access
multiple resources among the plurality of resources contemporaneously, in
which:
the access log comprises a second multiplicity of storage locations
defining a multiple entry log identified with a predetermined resource
code;
the resource accessing procedure of each computing device includes a
multiple resource accessing procedure initiated in response to a
requirement for access to multiple resources, the multiple resource
accessing procedure comprising;
a. recording a sign-on entry in the associated storage location identifying
the multiple entry log with the predetermined resource code prior to
recording any entries in the multiple entry log;
b. scanning the first multiplicity of storage locations for a conflicting
sign-on entry identifying the multiple entry log;
c. desisting from recording entries in the multiple entry log and from
accessing the multiple resources in response to any conflicting sign-on
entry located during the scanning for a conflicting sign-on entry;
d. scanning the access log for conflicting resource entries identifying the
multiple resources;
e. recording a plurality of resource entries in the multiple entry log
identifying the multiple resources and then deleting the sign-on entry and
accessing the multiple resources, in the event that no conflicting
resource entries are located during the scanning for conflicting resource
entries;
f. terminating the multiple resource accessing procedure in the event that
a conflicting resource entry is located during the scanning for
conflicting resource entries;
g. deleting the recorded plurality of resource entries when any accessing
of the multiple resources by the computing device is finished.
8. The network of claim 7 in which the scanning for conflicting sign-on
entries is performed subsequent to the recording of the sign-on entry and
in which the recorded sign-on entry is deleted and the multiple resource
accessing procedure is terminated in response to location of any
conflicting sign-on entry.
9. The network of claim 7 in which the multiple resource accessing
procedure comprises a preliminary scanning of the first multiplicity of
storage locations prior to recording the sign-on entry to locate any
conflicting sign-on entry and terminating the multiple resource accessing
procedure in the event that a conflicting sign-on entry is located.
10. The network of claim 7 in which the scanning of the access log for
conflicting resource entries is performed subsequent to the recording of
the plurality of resource entries and the terminating of the multiple
resource access procedure in the event that a conflicting resource entry
is located comprises deleting the plurality of resource entries.
11. The network of claim 10 in which the multiple resource accessing
procedure comprises the additional step of scanning the access log prior
to recording the plurality of resource entries to locate any conflicting
resource entry and thereupon terminating the multiple resource access
procedure in the event that any conflicting resource entry is located.
12. The network of claim 1 in which:
the storage means comprises a plurality of storage units, each of the
storage units being associated with and accessible for data transfer by a
different one of the plurality of computing devices;
a plurality of duplicate copies of the access log is stored in each of the
plurality of storage units, one of the plurality of duplicate copies of
the access log being associated with each of the computing devices;
each computing device is adapted:
a. to scan, record entries in, and delete entries from the associated
duplicate copy of the access log during the resource accessing procedure;
b. to transmit a modification message to each of the other computing
devices along the communications channel indicating each entry recorded
and deleted from the associated duplicate copy during the resource
accessing procedure of the computing device;
c. to modify the associated duplicate copy of the access log in response to
each modification message received from the other computing devices.
13. The network of claim 1 in which:
the storage means comprises a plurality of storage units, each of the
storage units being associated with and accessible for data transfer by a
different one of the plurality of computing devices;
a plurality of duplicate copies of the access log is stored in each of the
plurality of storage units, one of the plurality of duplicate copies of
the access log being associated with each of the computing devices;
each computing device is adapted:
a. to scan, record entries in, and delete entries from the associated
duplicate copy of the access log during the resource accessing procedure;
b. to transmit a modification message to each of the other computing
devices along the communications channel indicating each entry recorded
and deleted from the associated duplicate copy during the resource
accessing procedure of the computing device;
c. to modify the associated duplicate copy of the access log in response to
each modification message received from each of the other computing
devices.
14. A network, comprising:
a plurality of computing devices;
a plurality of resources;
storage means storing data defining an access log;
a communications channel permitting each computing device to access each of
the resources and the storage means for data transfer;
each computing device being adapted to access a required one of the
resources according to a resource accessing procedure comprising:
a. recording an entry in the access log identifying the required resource;
b. scanning the access log subsequent to recording the entry to locate any
conflicting entry identifying the required resource;
c. terminating the resource accessing procedure without accessing the
required resource in the event that a conflicting entry is located, the
terminating including deleting the recorded entry;
d. accessing the required resource in the event that a conflicting entry is
not located and deleting the recorded entry when the computing device
discontinues the accessing of the required resource.
15. The network of claim 14 adapted to restrict access to any one of the
resources according to priority levels assigned to each computing device,
in which:
the access log includes a multiplicity of storage locations defining an
actual use log and a multiplicity of storage locations defining a virtual
use log;
each computing device is adapted to record any entry identifying a required
resource only in the actual use log;
each computing device is adapted to recognize a priority level associated
with the computing device;
each computing device is adapted to scan the actual use log and depending
on the priority level assigned to the computing device to scan the virtual
use log whenever scanning the access log to locate conflicting entries.
16. A network, comprising:
a plurality of computing devices;
a plurality of peripherals;
storage means containing data defining an access log;
a communications channel permitting each computing device to access each of
the peripherals and the storage means for data transfer;
each computing device having an input device permitting a user to select a
peripheral for data transfer between the computing device and the selected
peripheral and being adapted to respond to selection of the selected
peripheral according to a peripheral accessing procedure comprising:
a. recording an entry in the access log identifying the selected peripheral
prior to any accessing of the selected peripheral;
b. scanning the access log prior to any accessing of the selected
peripheral to locate any conflicting entry identifying the selected
peripheral;
c. terminating the peripheral accessing procedure in response to any
conflicting entry located during the scanning of the access log;
d. accessing the selected peripheral in response to the absence of any
conflicting entry in the access log;
e. deleting the recorded entry when any accessing of the selected
peripheral by the computing device is finished.
17. The network of claim 16 in which the said scanning of the access log is
performed subsequent to the recording of the entry and in which the said
terminating of the peripheral accessing procedure includes deleting the
recorded entry.
18. The network of claim 17 in which the peripheral accessing procedure
comprises a preliminary scanning of the access log prior to recording the
entry in the access log to locate any conflicting entry and terminating
the peripheral accessing procedure without accessing the selected
peripheral in response to any conflicting entry located during the
preliminary scanning.
19. The network of claim 16 adapted to restrict access to any one of the
peripherals according to priority levels assigned to each computing
device, in which:
the access log includes a multiplicity of storage locations defining an
actual use log and a multiplicity of storage locations defining a virtual
use log;
each computing device is adapted to record any entry identifying a selected
peripheral only in the actual use log;
each computing device is adapted to recognize a priority level associated
with the computing device;
each computing device is adapted to scan the actual use log and depending
on the priority level assigned to the computing device to scan the virtual
use log whenever scanning the access log to locate conflicting entries.
20. The network of claim 19 in which at least one of the computing devices
is adapted to record entries in the virtual use log and to permit
selective recording of a virtual use of the peripherals in the storage
locations associated with the virtual use log.
21. The network of claim 16 in which:
the access log comprises a first multiplicity of storage locations, each
computing device being uniquely associated with one of the first
multiplicity of storage locations;
each computing device is adapted to calculate the location of the
associated storage location according to a predetermined formula and to
record an entry identifying a requirement for a single peripheral only at
the calculated location.
22. The network of claim 21 adapted to permit each computing device to
access multiple peripherals among the plurality of peripherals
contemporaneously, in which:
the access log comprises a second multiplicity of storage locations
defining a multiple entry log identified with a predetermined peripheral
code;
the peripheral accessing procedure of each computing device includes a
multiple peripheral accessing procedure initiated in response to a
requirement for access to multiple peripherals, the multiple peripheral
accessing procedure comprising:
a. recording a sign-on entry in the associated storage location identifying
the multiple entry log with the predetermined peripheral code prior to
recording any entries in the multiple entry log;
b. scanning the first multiplicity of storage locations for a conflicting
sign-on entry identifying the multiple entry log;
c. desisting from recording entries in the multiple entry log and from
accessing the multiple peripherals in response to any conflicting sign-on
entry located during the scanning for a conflicting sign-on entry;
d. scanning the access log for conflicting peripheral entries identifying
the multiple peripherals;
e. recording a plurality of peripheral entries in the multiple entry log
identifying the multiple peripherals and then deleting the sign-on entry
and accessing the multiple peripherals, in the event that no conflicting
peripheral entries are located during the scanning for conflicting
peripheral entries;
f. terminating the multiple peripheral accessing procedure in the event
that a conflicting peripheral entry is located during the scanning for
conflicting peripheral entries;
deleting the recorded plurality of peripheral entries when any accessing of
the multiple peripherals by the computing device is finished.
23. The network of claim 22 in which the scanning for conflicting sign-on
entries is performed subsequent to the recording of the sign-on entry and
in which the recorded sign-on entry is deleted and the multiple peripheral
accessing procedure is terminated in response to location of any
conflicting sign-on entry.
24. The network of claim 23 in which the scanning of the access log for
conflicting peripheral entries is performed subsequent to the recording of
the plurality of peripheral entries and the terminating of the multiple
peripheral access procedure in the event that a conflicting peripheral
entry is located comprises deleting the plurality of peripheral entries.
25. The network of claim 24 in which the multiple peripheral accessing
procedure comprises the additional step of scanning the access log prior
to recording the plurality of peripheral entries to locate any conflicting
peripheral entry and thereupon terminating the multiple peripheral access
procedure in the event that any conflicting peripheral entry is located.
26. The network of claim 22 in which the multiple peripheral accessing
procedure comprises a preliminary scanning of the first multiplicity of
storage locations prior to recording the sign-on entry to locate any
conflicting sign-on entry and terminating the multiple peripheral
accessing procedure in the event that a conflicting sign-on entry is
located.
27. The network of claim 16 in which:
the storage means comprises a plurality of storage units, each of the
storage units being associated with and accessible for data transfer by a
different one of the plurality of computing devices;
a plurality of duplicate copies of the access log is stored in each of the
plurality of storage units, one of the plurality of duplicate copies of
the access log being associated with each of the computing devices;
each computing device is adapted:
a. to scan, record entries in, and delete entries from the associated
duplicate copy of the access log during the resource accessing procedure;
b. to transmit a modification message to each of the other computing
devices along the communications channel indicating each entry recorded
and deleted from the associated duplicate copy during the resource
accessing procedure of the computing device;
c. to modify the associated duplicate copy of the access log in response to
each modification message received from each of the other computing
devices.
28. A network:
a plurality of computing devices, each computing device being operably
coupled to a different one of a plurality of storage units, each storage
unit containing data defining a copy of an access log which copy is
associated with the computing device coupled to the storage unit;
a communications channel permitting each computing device to access each of
the resources and each of the other computing devices for data transfer;
each computing device being adapted to access a required one of the
resources according to a resource accessing procedure comprising:
a. scanning the associated copy of the access log prior to any accessing of
the required resource to locate any conflicting entry identifying the
required resource;
b. terminating the resource accessing procedure in response to any
conflicting entry located during the scanning of the associated copy of
the access log;
c. accessing the required resource in response to the absence of any
conflicting entry in the associated copy of the access log;
d. recording an entry identifying the required resource in the associated
copy of the access log prior to any accessing of the required resource and
transmitting a message corresponding to the recorded entry along the
communications channel to each of the other computing devices;
e. deleting the recorded entry from the associated copy of the access log
when any accessing of the required resource by the computing device is
finished and transmitting a message along the communications channel to
each of the other computing devices indicating deletion of the recorded
entry;
each of the computing devices being adapted to respond to each message
received from each of the other computing devices by recording and
deleting entries in the associated copy of the access log according to the
message received such that the copies of the access log associated with
the computing devices remain substantially identical. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF THE INVENTION
The invention relates to networks permitting computing devices to share
network resources and in particular to mediation of conflicting demands
for network resources.
DESCRIPTION OF THE PRIOR ART
Networks have been formed to allow computer users to share resources. These
resources may be such items as mass storage media, printers, and modems.
The resources may also include individual files or records stored in a
mass storage medium. These files may for instance be associated with a
data base or may constitute a pool of word processing precedents.
A network must mediate conflicting demands for resources. It is
consequently common to restrict access to a given resource at any given
time to a single user. Devices commonly referred to as "servers" will
control access functions, basically monitoring requests for access to
resources by network computers, permitting or denying access according to
assigned priorities and the current state of use of the resources. There
may be a separate server associated with each distinct network resource.
Dedicating a computer to function exclusively as a server is not normally
cost-justified. It is consequently common, for example, to allow one
digital computer and an associated mass storage unit to function
contemporaneously as a file server and as a local work station for a
system user. This arrangement is impractical if the network becomes
relatively large and the particular digital computer is required to
process a large number of requests for file resources. The local user is
in effect deprived of any truly effective use of his computer. The
particular user might be provided with a computer which has considerable
excess processing capacity but this normally involves considerable
expense. Moreover, such measures do not conveniently accommodate
situations in which an existing set of computers are to be networked and
may not adequately anticipate future expansion of an existing network.
BRIEF SUMMARY OF THE INVENTION
The invention provides a network in which the function of mediating
conflicting demands for shared network resources is distributed among the
various computing devices connected to the network.
In one aspect, the invention provides a network comprising a plurality of
computing devices, a plurality of resources, and storage means containing
an access log. A communications channel permits each computing device to
access the resources and storage means. Each computing device is adapted
to access a required resource according to a resource accessing procedure
which comprises recording an entry in the access log identifying the
required resource prior to accessing the required resource, scanning the
access log prior to accessing the required resource to locate any
conflicting entry identifying the required resource, terminating the
resource accessing procedure in response to any conflicting entry or
accessing the required resource in the absence of any conflicting entry,
and deleting the recorded entry when any accessing of the required
resource by the computing device is finished. The order in which the steps
are performed and the point at which the procedure is terminated will
depend on the precise configuration of the network and in particular the
manner in which the storage means operate. For example, if the storage
means restrict access to a single user then the scanning may simply be
performed prior to recording the entry and the access procedure terminated
prior to recording the entry. If the storage means are adapted to
interleave read and write commands from the various computing devices then
it may be desirable to perform the scanning subsequent to recording the
entry (to mediate potential conflicts described in greater detail below)
and to include deletion of the recorded entry as part of the termination
procedure in response to location of any conflicting entry. In any event,
the individual computing devices mediate conflicting demands for network
resources, and no single device associated with the network need be
dedicated to performing the mediating functions.
In another aspect, the invention provides in the above-described network an
arrangement for restricting access to system resources according to
priority levels assigned to the individual computing devices. The access
log includes a multiplicity of storage locations defining a virtual use
log. Each computing device is adapted to record entries identifying
required resources only in the actual use log. However, a network operator
can record entries in the virtual use log identifying a virtual
(non-existent) use of system resources. Each computing device is adapted
to recognize a priority level assigned to the computing device and to scan
the actual use log, and, depending on the priority level assigned to the
computing device, to scan the virtual use log (in whole or in part),
whenever attempting to locate conflicting entries. Accordingly, if a
particular computing device is required to scan the virtual use log and
the required resource is identified by a virtual use entry, access to the
resource is effectively prohibited for the particular computing device.
It is desirable, as explained more fully below, to uniquely associate each
computing device with one storage location in the actual use log where the
computing device can record access to a single system resource. Each
computing device may be adapted to calculate the location of the
associated storage location according to a predetermined formula (which
may simply be a function of the unique network identification code
commonly associated with a computing device connected to a network) and to
record entries identifying single required resources at the calculated
location. In another aspect of the invention, a network involving such a
unique association between each computing device and one storage location
associated with the storage means is adapted to permit each computing
device to access two or more of the resources contemporaneously. To that
end, the access log comprises a multiplicity of locations defining a
multiple entry log identified with a predetermined resource code. The
resource accessing procedure includes a procedure responsive to
requirements for access to multiple resources, which comprises recording a
sign-on entry in the associated storage location identifying the multiple
entry log with the predetermined resource code, the multiple entry log
effectively being treated as a network resource for which conflicting
access demands must be mediated. The first multiplicity of storage
locations is scanned for a conflicting sign-on entry identifying the
multiple entry log, and the computing device desists from recording of
resource entries in the multiple entry log and from accessing the multiple
resources in response to any conflicting sign-on entry located. The access
log is scanned for conflicting resource entries identifying the multiple
resources. If no conflicting resource entries are located, the computing
device records a plurality of resource entries in the multiple entry log
identifying the multiple resources and then deletes the sign-on entry (to
permit other computing devices access to the multiple entry log) and
accesses the multiple resources. If conflicting resources entries are
located, the multiple resource accessing procedure is terminated. Once any
accessing of the resources is finished, the recorded plurality of resource
entries are deleted. Once again, the order in which steps in the accessing
procedure are performed can be interchanged. For example, the scanning for
conflicting resource entries and terminating in response to conflicting
resource entries might be performed prior to scanning for conflicting
sign-on entries and determining whether the multiply entry log can be
accessed for recording of resource entries. The order in which related
scanning and recording steps are executed can also be changed, as
discussed above, to accommodate the nature of the storage means used.
The access log for purposes of the invention may be formed in multiple
duplicate copies. In order to reduce demands on a single storage device
such as a file servers, the storage means may comprise a multiplicity of
individual storage units each associated with a different one of the
computing devices. A duplicate copy of the access log may be stored in
each of the storage units, and each computing device may be adapted to
scan, record entries in, and delete entries from the associated duplicate
copy of the access log during its resource accessing procedure, rather
than demanding access to a single storage device containing the only
network copy of the access log. In order to ensure that all copies of the
network log remains substantially identical, each computing device is
adapted to transmit a modification message to each of the other computing
devices along the communications channel, indicating each entry recorded
and deleted from its duplicate copy of the access log. Each computing
device is adapted to modify its associated duplicate copy of the access
log in response to each modification message received from the other
computing devices.
Other aspects of the invention will be apparent from description of a
preferred embodiment below and will be defined in greater detail in the
appended claims.
DESCRIPTION OF THE DRAWINGS
The invention will be better understood with reference to drawings
illustrating a preferred embodiment of a network, in which:
FIG. 1 diagrammatically illustrates the network;
FIG. 2 diagrammatically illustrates an access log associated with the
network;
FIG. 3 is a flow chart illustrating an access procedure by which each
computer of the network accesses a single system resource;
FIG. 4 is a flow chart indicating a multiple resource accessing procedure
implemented by each computer;
FIG. 5 diagrammatically illustrates an alternative network in which each
network computing device is uniquely associated with a separate duplicate
copy of a network access log.
DESCRIPTION OF PREFERRED EMBODIMENT
References made to FIG. 1 which provides an overall diagrammatic
representation of a network 10. The network 10 comprises three computers
C1-C3 with three associated input devices I1-I3, a storage unit 12, and
three resources R1-R3. The input devices I1-I3 may be a keyboard, mouse or
any other device which, along with other functions normally required of
such a device, allows user specification of a requirement for access to
the resources R1-R3. The computers C1-C3 may, however, initiate
requirements for network resources through their inherent operation. The
storage unit 12 may be a disk drive and the computer C3 may function as a
file server controlling access to the disk drive and to the access log 16
in a known manner. The resources R1-R3 may be "peripherals", that is,
printers, disk drives, modems or other distinct input/output devices. The
resource R1-R3 may, however, be disk files, file records, tasks to be
distributed among multiple computers or other units of data stored in any
appropriate medium. A communications channel 14 permits data transfer
between each computer and the resources R1-R3 and storage unit 12. The
general configuration and operation of such a network will be apparent to
those skilled in the art.
The storage unit 12 contains data defining an access log 16. The access log
16 comprises an actual use log 18 for recording of actual access to
resources R1-R3 and a virtual use log 20 where non-existent or virtual use
of network resources R1-R3 is recorded. The actual use log 18 comprises a
sign-on log 22 and a multiple use log 24, the latter being associated with
a predetermined resource identification code. The sign-on log 22 has a
dual function: it can be used to record access to single resources; it can
also be used to indicate access by one of the computers C1-C3 to the
multiple use log 24. The virtual use log 20 comprises two sublogs 26, 28
dedicated to recording virtual entries, which in this particular
embodiment of the invention are used effectively to create three priority
levels restricting access to the resources on a selective basis. Each of
the logs and sublogs is effectively defined by a multiplicity of storage
locations as symbolically indicated, but the number of storage locations
has been drastically limited for purposes of illustration. A header 30
associated with the access log 16 contains data indicating the number of
storage locations and defining a directory indicating the location on the
storage unit 12 of the various logs and sublogs. It should be noted that
for the broad purposes of the invention the access log 16 need not be a
single file or physically located on a single storage device. The multiple
entry log 24 might, for example, be a separate file and might be located
on a different storage device coupled to the communications channel 14 and
effectively treated as a separate and distinct network resource.
Each storage location is capable of retaining an entry comprising two
fields: a user identification field and a resource identification field.
The user identification field will typically receive the actual name of a
network user associated with a particular computer. The resource
identification field will typically receive a unique resource code
assigned to a particular network resource. The user identification field
of each storage location is required primarily to permit each computer to
indicate to its associated user which of the other users has preempted a
particular resource. Additional fields may be associated with each storage
location to provide other information such as access time. The user
identification fields of the virtual use log 20 may contain elements of a
warning messages to be reproduced when attempts are made to access
prohibited resources. If a resource is a disk file, the resource code may
typically be the identification code used in the associated disk directory
to identify the resource. With respect to a file record, the resource code
is preferably a descriptor under which the file record is indexed in the
associated file.
In this embodiment of the invention, each computer is associated with the
unique storage location in the sign-on log 22. These unique storage
locations are allocated or assigned according to a simple formula or
function, f(user ID)=user ID+.beta., where the user ID is a unique network
code assigned to a particular computer and where .beta. represents the
number of virtual use storage locations preceding the sign-on log 22. The
formula effectively maps each user identification code one-to-one onto a
number identifying an appropriate storage location. Each computer is
programmed to calculate the location of the associated storage location in
the access log 16 and, when a single resource is being accessed (which is
the most common case), the computer simply records an actual use entry
directly in the associated storage location. The storage locations of the
actual use log 18 uniquely associated with each of the computers C1-C3
have been identified by placing the same reference characters used to
identify the computers C1-C3 in FIG. 1 in the relevant user identification
fields of the storage locations.
Although such a unique association between each computer and a storage
location in the actual use log 18 is not essential to the broad aspect of
the invention, it considerably expedites and simplifies operations
involving access to a single resource. With single resource access,
calculation and use of a unique storage location avoids the need to scan
the access log 16 and test retrieved data to locate an empty storage
location where access to a particular resource can be recorded. It also
simplifies subsequent finding of a recorded entry for deletion. Most
significantly, it avoids the need for a special procedure to mediate
conflicting demands for empty storage locations and the risk that an entry
may be overwritten. The nature of the sequence of events leading to
potentially conflicting demands for empty storage locations will be
apparent from the description of analogous problems below. The preferred
single resource accessing procedure does, however, complicate recording of
contemporaneous access to multiple resources (a less common form of
access), which is handled in a manner described more fully below.
The resource accessing procedure associated with each computer includes a
single resource access procedure and a multiple resource access procedure.
The single resource access procedure is illustrated in the flow chart of
FIG. 3 and will be described with reference to an attempt by the computer
C1 to access the resource R1.
The computer C1 first checks its assigned priority level which is
incorporated into the software adapting the computer C1 to implement the
access procedures. In the present case, there are three priority levels
arbitrarily designated in ascending order of priority as 1, 2 and 3. The
computer C1 then scans one or both virtual use sublogs 26, 28 or neither
of the sublogs 26, 28 depending on its assigned priority level. If the
virtual use log 20 is scanned and a conflicting virtual use entry
identifying the required resource R1 is located, the computer C1
terminates the access procedure and indicates to the user that access is
prohibited. The computer C1 may be adapted to re-initiate the access
procedure a predetermined number of times in the event that a required
resource appears to be in actual use by another computer.
If a conflicting virtual use entry is not located, or if the virtual use
log 20 is not scanned, the computer C1 then scans the actual use log 18
for conflicting use entries. If such an entry is located in the actual use
log 18, the computer C1 terminates the access procedure and indicates to
the user that the required resource is not available. If no conflicting
entry is located during this initial scanning of the access log 16, the
computer C1 records an entry in the associated storage location
identifying the resource code associated with the resource R1 in the
resource identification field.
The computer C1 then scans the access log 16 again for conflicting entries.
If finds a conflicting entry, it then terminates the access procedure
indicating to its user that the requested resource R1 is in use and
deletes the entry recorded in its associated storage location, deletion
simply involving changing the recorded resource value to zero or some
other arbitrary value. The reason for performing a scan subsequent to the
recording of the entry is to determine whether another computer has
written a conflicting entry since recording of the resource entry. Since
the storage unit 12 is effectively part of a file server, demands to read
and write to the storage unit 12 are interleaved. In such circumstances, a
conflict requiring mediation may arise in the following manner. The
computer C2 seeking to access the resource R1 scans the access log 16 and
finds no conflicting entry. The computer C1 seeking access to the same
resource R1 immediately follows this operation with its own scan of the
access log 16 and locates no conflicting entry. The computer C2 then
records a request for access to the resource R1 in its associated storage
location. This potentially conflicting entry has been recorded subsequent
to the initial scan by the computer C1, and the computer C1 simply
proceeds to record in its associated storage location the same request for
the resource R1.
Such a conflict cannot be detected unless each computer is adapted to scan
once again after recording its entry. Because of the manner in which the
computers C1-C3 are programmed, the computer C2 would detect the
conflicting entry recorded by the computer C1 and would then prepare to
terminate its access procedure and delete its recorded entry identifying
the resource R1. The computer C1 in performing its further scan would
detect the conflicting entry of the computer C2 and would similarly
prepare to terminate its access procedure and delete its recorded entry.
The result is that both computers C1, C2 effectively terminate their
attempts to access the resource R1 and indicate to their users that the
resource is in use. Instances of such conflicts are expected to be rare,
and this type of mediation in which neither computer obtains access is
appropriate. It will be appreciated that in this type of operation, the
pr | | |