A data processing technique is disclosed which permits a plurality of users of a data processing system to share data in a data store, providing independent and asynchronous access to the data for subsequent processing by either user. The sharing of small data items is accomplished without requiring the use of interlocks to prevent one user from obtaining access to the shared data item while the other is processing the data for subsequent replacement in the shared data store. In addition, sharing of data items of sufficient size permit the user to build up controls for safe and efficient sharing of data items of any size.
A method for reducing programming or data errors generated by a new computer program or data set when the computer program updates or replaces an existing computer program. A set of baseline output records is generated by running the existing computer program on an input file (step 701). A set of revised output records is generated by running the new computer program with the input file (step 702). The baseline and revised output records are mapped to form an association between corresponding records (step 707). The associated records are compared using tolerance data stored in a control file to produce a plurality of difference records, a portion of which represents the programming or data errors (step 711). The difference records are examined to identify the portion of the difference records corresponding to the programming or data errors for editing the new computer program.
A serialization apparatus for a data processing system wherein access restrictions are automatically enforced: (1) in behalf of individual machine instructions in order to maintain object integrity; and (2) at each user's discretion in order to maintain synchronization among all concurrent users of any given object. Various types of restrictions can be enforced in behalf of both machine instructions and users, allowing concurrent access to objects at various levels where appropriate.
A cooperative operation system in which a plurality of operators use workstations to perform a cooperative operation by use of common data. The cooperative operation system includes a common data monitoring unit for monitoring operations to be performed on the common data by the respective operators, a notifying level information storage unit for storing notifying level information used to decide notifying modes in which the operations by the operators are notified to the other operators, a notifying information creating unit for creating notifying information on the basis of the information from the common data monitoring unit and the notifying level information from the notifying level information storage unit, a notifying information decoding unit for decoding the notifying information transmitted and for deciding a notifying mode corresponding to a notifying level included in the notifying information, and a notifying information supply unit for supplying the notifying information to the operators in accordance with the notifying mode decided by the notifying information decoding unit.
A novel linked-list-based concurrent shared object implementation has been developed that provides non-blocking and linearizable access to the concurrent shared object. In an application of the underlying techniques to a deque, non-blocking completion of access operations is achieved without restricting concurrency in accessing the deque's two ends. In various realizations in accordance with the present invention, the set of values that may be pushed onto a shared object is not constrained by use of distinguishing values. In addition, an explicit reclamation embodiment facilitates use in environments or applications where automatic reclamation of storage is unavailable or impractical.
In a data processing system having an intermediate buffer memory provided between a large space main memory and small space, high speed buffer memories of a plurality of processors, a data block of the intermediate buffer memory to be replaced with a data block of the main memory is determined by utilizing LRU (Least Recently Used) algorithm as well as copy flags employed in buffer invalidation processing. In the intermediate buffer memory, a data block that the number of its copy flags in the ON state is smaller than any other data blocks, is selected as the data block to be replaced. The fact that the number of copy flags in the ON state implies that the data block is not frequently used by the processors. Replacement of such a data block alleviates the burden of the buffer invalidation processing imposed on the intermediate buffer memory.