System and method for management of object transitions in an external storage facility accessed by one or more processors
Abstract
Two or more user applications executing on one or more processors, each controlled by an operating system, share use of a list and subsidiary list structure within a Structured External Storage (SES) facility to which each processor is connected. One of the applications registers interest in particular state transitions affecting one or more subsidiary lists within the list structure, causing a process within the SES to notify the appropriate processor when a list operation causes the particular state transition, without interrupting processing on the processor. The application receives notice of the state transition by periodically polling a vector within the processor, or by receiving control when a test by the operating system of a summary indicator for the vector causes an application exit to be driven.
Claims
exact text as granted — not AI-modifiedHaving thus described our invention, what we claim as new and desire to secure by Letters Patent is:
1. Notification controls in an system external storage (SES) connected to one or more central processor complexes (CPCs) commands and responses being communicated between the SES and any CPC, a list structure being stored in SES storage by a SES processor under CPC command, the list structure containing one or more lists, each list having a respective list control, each list having any number of list entries, and each list having any number of list entries which may be stored in contiguous and non-contiguous areas in SES storage, user programs in the CPC issuing commands to the SES for using list entries, the notification controls in the SES further comprising: each list containing any number of subsidiary lists including no subsidiary list, each subsidiary list comprised of a subset of list entries contiguously located in the SES storage and having a common subsidiary-list-entry identifier (SLEID), each SLEID being unique in each list, an event monitoring control (EMC) created in SES for an associated subsidiary list for each user program indicating an interest in the associated subsidiary list, each subsidiary list having a variable number of EMCs determined by the number of user programs indicating an interest in the associated subsidiary list and having no EMC when no user program has indicated an interest in the associated subsidiary list, an event queue (EQ) created in SES for a respective user program in any CPC which is to process subsidiary list n SES to provide a number of EQs in SES identified with corresponding user programs and CPCs containing the user programs, any EMC being queued onto the EQ created for the user program identified with the EMC when the subsidiary list associated with the EMC has a state transition from an empty state to a non-empty state or from a non-empty state to an empty state; and notification controls in SES for performing a notification communication by SES to the CPC identified for an EQ when an EMC is queue onto the EQ for notifying the user program associated with the EMC of the transition by the associated subsidiary list.
2. A list notification structure in an external storage (SES) as defined in claim 1, the notification controls in the SES further comprising: a list notification command signaled by SES to the CPC for indicating to the user program indicated in the notification communication that a state transition has occurred in a subsidiary list for which the user program has registered an interest.
3. A list notification structure in an external storage (SES) as defined in claim 2, the notification controls in the CPC further comprising: a field in an event queue notification vector in the CPC being set to a predetermined state by a signal received by the CPC from the list SES notification command to indicate the user's EQ in SES has a transition indicated in at least one subsidiary list for which the user has registered an interest.
4. A list notification structure in an external storage (SES) as defined in claim 3, the notification controls in the CPC further comprising: a user test instruction executed for a user program to determine the state of a field associated with an EQ of the user in the event queue notification vector to obtain notification of state transition by any subsidiary list in which the user program has registered an interest.
5. A list notification structure in an external storage (SES) as defined in claim 3, the notification controls in the CPC further comprising: a bit providing the field for each respective EQ represented in the event queue notification vector in the CPC.
6. A list notification structure in an external storage (SES) as defined in claim 3, the notification controls in the CPC further comprising: a protected storage area in the CPC containing the EQ notification vector.
7. A list notification structure in an external storage (SES) as defined in claim 1, the notification controls in the SES further comprising: EMC processing controls for queuing a representation of the EMC onto each EQ for each user program having registered with the EMC an interest in the associated subsidiary list when the associated subsidiary list registers a transition from an empty state to a non-empty state.
8. A list notification structure in an external storage (SES) as defined in claim 7, the notification controls in the SES further comprising: the EMC processing controls withdrawing the representation of the EMC queued onto each EQ for each user program having registered with the EMC an interest in the subsidiary list when the EMC registers a transition changing the associated subsidiary list from a non-empty state to an empty state.
9. A list notification structure in an external storage (SES) as defined in claim 7, the notification controls in the CPC further comprising: a user-application-protocol program in the CPC respectively associated with a field in the user's EQ-notification vector, the user's field being scanned by the associated user-application-protocol program for an indication of a notification by SES of a change in transition state of any subsidiary list in which the user program has registered an interest in the SES.
10. A list notification structure in an external storage (SES) as defined in claim 1, the notification controls further comprising: a register-list-monitor (RLM) command initiated by the CPC for signalling SES that a user identifier operand of the command represents a user program indicating an interest in an identified subsidiary list indicated by another operand of the command; and an EMC associated with the identified subsidiary list registering the user identifier operand to indicate an interest in an associated subsidiary list by the associated user program.
11. A list notification structure in an external storage (SES) as defined in claim 10, the notification controls further comprising: the register-list-monitor (RLM) command being executed for any user program any number of times in the CPC for signalling SES that the user program is indicating an interest in any number of identified subsidiary lists associated with any number of EMCs.
12. A list notification structure in an external storage (SES) as defined in claim 11, the notification controls in the CPC further comprising: the register-list-monitor (RLM) command also signalling to SES a user's list-notification token (LNT) and a field identification of which field in an EQ-list vector in the CPC is assigned to the user program for notification by the EMC associated with the identified subsidiary list, the LNT enabling the SES to identify the user program to the CPC in commands later issued by the SES.
13. A list notification structure in an external storage (SES) as defined in claim 12, the notification controls further comprising: the register-list-monitor (RLM) command also signalling SES to create an EQ associated with the identified subsidiary list in the RLM command if no EQ is found associated with the identified subsidiary list.
14. A list notification structure in an external storage (SES) as defined in claim 13, the notification controls further comprising: the register-event-monitors (REMS) command being issued by an operating system in the CPC for signalling SES that a user program identifier operand is indicating an interest by a user program in one or more identified subsidiary-list-associated operand(s) identifying associated EMC(s) and registering the user program identifier in the associated EMC(s).
15. A list notification structure in an external storage (SES) as defined in claim 1, the notification controls in the CPC further comprising: a dequeue-event-monitor-controls (DEMC) command executed by the CPC for a user program to request SES to dequeue EMC representations enqueued onto the user's EQ for identifying to the user the subsidiary lists associated with the dequeued EMCs representing state transitions to empty state.
16. A list notification structure in an external storage (SES) as defined in claim 15, the notification controls in the CPC further comprising: all EMC representations on an EQ being dequeued from the EQ and returning the content of each dequeued EMC to the CPC, in response to the DEMC command.
17. A notification structure in a SES as defined in claim 1, the notification controls further being included in: one or more additional CPCs being connected to the SES in a multi-system; each CPC independently executing one or more operating system (OSs) with user programs running under the OSs; and any one or more user programs in any one or more of the CPCs communicating with the SES through any of the OSs to use EQs and EMCs in the SES to access and use subsidiary lists in the SES for which any user program has registered an interest.
18. A notification method for use in a system external storage (SES) connected to at least one central processor complex (CPC) having commands and responses being communicated between the SES and CPC, a list structure being stored in the SES storage by a SES processor under CPC command, the list structure containing one or more lists, each list having a respective list control, each list having any number of list entries, and each list having any number of list entries which may be stored in contiguous and non-contiguous areas in SES storage, user programs in the CPC issuing commands to the SES for using list entries, controls in the SES further comprising the steps of: storing in any list none, one or more subsidiary lists, each subsidiary list comprised of a subset of list entries contiguously located in SES storage and having a common subsidiary-list-entry identifier (SLEID), each SLEID being unique in each list; creating in SES for any subsidiary list an associated event monitoring control (EMC) for a user program in a CPC indicating to SES an interest in the subsidiary list; creating in SES an event queue (EQ) for each user program in an identified CPC which can access the subsidiary lists in SES, queuing on an EQ a created EMC indicating the same user program as the EQ when the subsidiary list associated with the EMC has a state transition from empty to non-empty or from non-empty to empty, and communicating when the EMC is queued on the EQ the state transition to a CPC identified for the EQ and also communicating the user program indicated for the EMC.
19. A notification method for use in an external storage (SES) as defined in claim 18, the notification controls in the SES further comprising the steps of: signaling a list notification command by SES to the CPC for indicating to the user program that a transition has occurred in a subsidiary list for which the user program has registered an interest.
20. A list notification method for use in an external storage (SES) as defined in claim 19, the notification controls in the SES further comprising the steps of: setting a field in an event queue notification vector in the CPC to a predetermined state by a signal received by the CPC from the list SES notification command to indicate the user's EQ in SES has a transition indicated in at least one subsidiary list for which the user has registered an interest.
21. A list notification method for use in an external storage (SES) as defined in claim 20, the notification controls in the SES further comprising the steps of: executing a user test instruction for a user program to determine the state of a field associated with an EQ of the user in the event queue notification vector to obtain notification of state transition by any subsidiary list in which the user program has registered an interest.
22. A list notification method for use in an external storage (SES) as defined in claim 20, the notification controls in the SES further comprising the steps of: providing a bit as the field for each respective EQ represented in the event queue notification vector in the CPC.
23. A list notification method for use in an external storage (SES) as defined in claim 20, the notification controls in the SES further comprising the steps of: accessing for the SES a protected storage area in the CPC containing the EQ notification vector.
24. A notification method for use in an external storage (SES) as defined in claim 18, the notification controls in the SES further comprising the steps of: queuing an EMC representation onto each EQ for each user program for a state transition registered in the EMC associated with the subsidiary list registered in the EMC as having interest to the user program associated with the EQ when the EMC registers a state transition from an empty state to a non-empty state for the associated subsidiary list.
25. A list notification method for use in an external storage (SES) as defined in claim 24, the notification controls in the SES further comprising the steps of: withdrawing the EMC representation of the state transition queued onto each EQ for each user program registered with the EMC as having an interest in an associated subsidiary list when the EMC registers the state transition from a non-empty state to an empty state for the associated subsidiary list.
26. A list notification method for use in an external storage (SES) as defined in claim 24, the notification controls in the SES further comprising the steps of: executing a program using a user-application-protocol in the CPC for accessing a user associated field in the user's EQ-notification vector in CPC storage, the user associated field being scanned by the program using the user-application-protocol for detecting a notification by SES of a state transition by any subsidiary list in which the user program has registered an interest in the SES.
27. A list notification method for use in an external storage (SES) as defined in claim 18, the notification controls in the SES further comprising the steps of: initiating a register-list-monitor (RLM) command by the CPC for signalling SES that a user identifier operand of the command represents a user program indicating an interest in an identified subsidiary list indicated by another operand of the command; and registering the user identifier operand in an EMC associated with the identified subsidiary list to indicate an interest in an associated subsidiary list by the associated user program.
28. A list notification method for use in an external storage (SES) as defined in claim 27, the notification controls in the SES further comprising the steps of: executing the register-list-monitor (RLM) command for any user program any number of times in the CPC for signalling SES that the user program is indicating an interest in any number of identified subsidiary lists associated with any number of EMCs.
29. A list notification method for use in an external storage (SES) as defined in claim 28, the notification controls in the SES further comprising the steps of: signalling to SES the register-list-monitor (RLM) command with a user's list-notification token (LNT) and a field identification for locating a user's field in an EQ-list vector in the CPC assigned to the user program for notification by the EMC associated with the identified subsidiary list, the LNT enabling the SES to identify the user program to the CPC in commands later issued by the SES.
30. A list notification method for use in an external storage (SES) as defined in claim 29, the notification controls in the SES further comprising the steps of: signalling the register-list-monitor (RLM) command for SES to create an EQ associated with the identified subsidiary list in the RLM command if no EQ is found associated with the identified subsidiary list.
31. A list notification method for use in an external storage (SES) as defined in claim 30, the notification controls in the SES further comprising the steps of: issuing by an operating system (OS) the register-event-monitors (REMS) command in the CPC for signalling SES that a user-identifier operand is indicating an interest by a user program in a one or more identified subsidiary list(s) having other operand(s) for identifying associated EMC(s) and registering the user-identifier in the associated EMC(s).
32. A list notification method for use in an external storage (SES) as defined in claim 18, the notification controls in the SES further comprising the steps of: executing a dequeue-event-monitor-controls (DEMC) command by the CPC for a user program to request SES to dequeue EMC representations enqueued onto the user's EQ for identifying to the user the subsidiary lists associated with the dequeued EMCs having state transitions from the non-empty state to the empty state.
33. A list notification method for use in an external storage (SES) as defined in claim 32, the notification controls in the SES further comprising the steps of: dequeuing all EMC representations on an EQ and returning the content of each dequeued EMC to the CPC, in response to the DEMC command.
34. A notification method for use in an external storage (SES) as defined in claim 18, the notification controls in the SES further comprising the steps of: connecting one or more additional CPCs to the SES in a multi-system; independently executing in each CPC one or more operating system (OSs) running user programs; and any one or more of the user programs in any one or more of the CPCs communicating with the SES through an OS in any of the CPCs to access and use the EQs and EMCs in the SES in associated subsidiary lists in the SES for which any of the user programs has registered an interest.
35. A multi-system configuration controlling and communicating information about a list structure in a SES (shared electronic storage) between the SES and any CPC (central electronics complex) in a multi-system configuration, comprising: a list structure in the SES having a set of lists, each list in the list set containing any number of subsidiary lists from no subsidiary list to a large number of subsidiary lists, each subsidiary list containing any number of list entries from no list entry to a large number of list entries, an empty list containing no list entry in the list, and an empty subsidiary list containing no list entry in the subsidiary list; an event-monitor-controls object (EMC) in the SES provided for each monitoring user of each monitored subsidiary list to represent that particular user's interest in monitoring that particular subsidiary list's transition state; an event queue object (EQ) in the SES for each CPC user of the list structure, where each EQ is comprised of an event-queue controls object and zero or more event-monitor-controls objects which have been queued to the user's EQ in response to a transition from the empty to not-empty state of a subsidiary list with which the user's event-monitor-controls object is associated; a list notification vector being located in each CPC assigned to each user of the list structure in the SES, each entry in the list notification vector associated either with a particular monitored list in the list structure or with the user's monitored event queue in the list structure, and each entry in the list notification vector indicating the empty or not-empty state of its associated monitored list or event queue, and a list notification vector summary bit indicating whether any of the monitored lists or the user's event queue represented within the user's list notification vector have transitioned from the empty to the not-empty state; the EQ of any user transitioning to a not-empty state as a result of a particular subsidiary list monitored by the user having transitioned to the not-empty state, resulting in the associated event-monitor-controls object being queued to the user's event queue; and the list notification vector entry associated with the user's monitored event queue being set to indicate that the user's event queue has entered the not-empty state, and the associated list notification vector summary bit also being set to a notification state.
36. A multi-system SES list structure as defined in claim 1, further comprising: the event queue of the user having all of its queued event-monitor-controls objects dequeued and their contents returned to the user in response to a command from the CEC; the list notification vector entry associated with the user's event queue being set to an empty state when all of the event-monitor-controls objects are removed from the user's event queue; and the user making use of the returned contents of the event-monitor-controls objects from the user's event queue to determine which subsidiary list(s) within the list structure have transitioned from an empty to a not-empty state.
37. A method in a multi-system configuration for controlling and communicating information about a list structure located in a SES (shared electronic storage) between the SES and any CPC (computer processing complex) in a multi-system configuration, comprising: allocating and generating a list structure in the SES having a set of lists, each list in the list set containing any number of subsidiary lists from no subsidiary list to a large number of subsidiary lists, each subsidiary list containing any number of list entries from no list entry to a large number of list entries, an empty list containing no list entry in the list, and an empty subsidiary list containing no list entry in the subsidiary list; creating an event-monitor-controls object EMC in the SES for each monitoring user of each subsidiary list in the list structure to represent that particular user's interest in monitoring that particular subsidiary list's transition state; creating an event queue object (EQ) in the SES for each user of the list structure, where each EQ is comprised of an event-queue controls object and zero or more event-monitor-controls objects which have been queued to the user's event queue in response to a transition from the empty to not-empty state of the subsidiary list with which the event-monitor-controls object has been associated; locating a subsidiary list transition notification indicator in each CPC for each user of subsidiary lists in the list structure, associating each subsidiary list transition notification indicator with the user's monitored event queue in the SES; signalling from SES to the CPC containing a user interested in an EQ when the event queue queues an EMC of interest to the user associated with the EQ when the EMC transitions to a not-empty state as a result of a subsidiary list monitored by the user having transitioned to the not-empty state, and setting the subsidiary list transition notification indicator associated with the user's monitored event queue to indicate that the user's event queue has entered the not-empty state.
38. A method in a multi-system for controlling and communicating information about a list structure between any number of CECs and a SES, as defined in claim 3, further comprising: dequeueing from the event queue of the user all of its queued event-monitor-controls objects, and returning their contents to the user in response to a command from the CEC; setting the list notification vector entry associated with the user's event queue to an empty state when all of the event-monitor-controls objects are removed from the user's event queue; and making use of the returned contents of the event-monitor-controls objects from the user's event queue to determine which subsidiary list(s) within the list structure have transitioned from an empty to a not-empty state.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.