← Back to Patent Explorer
US4374409A Expired / Lapsed US ⏱️ 0.0 years remaining

Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system

Assignee: Bull SAS
•
Filing: 1978-11-03
•
Granted: 1983-02-15
•
Expires: 1998-11-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Synchronization of processes in a multiprogramming/multiprocessing system is provided by P and V instructions that are executed during execution of processes and operate on data structures known as semaphores which represent processes and events. A process that performs P instruction requests data. The P instruction addresses a semaphore data structure stored in memory. If the semaphore indicates that the data is available, the process continues execution of its next instruction; otherwise, the process is stopped and placed into a wait state until the data become available. A process that performs a V instruction, on the other hand, delivers data to another process. The V instruction addresses a semaphore to determine whether another process is awaiting the data and data are transferred to an awaiting process. If no process is available, the V instruction enables one of the processes in the wait state tied to the same addressed semaphore to be transferred to the ready state. P and V instructions are provided for semaphore structures without messages as well as semaphore structures with messages. Each of the P and V instructions includes test instructions that enable a process to continue in the running state in the event that the test P or V instruction is unable to be executed.

Inventors

  • 👤 Jacques Bienvenu
  • 👤 Claude Carre
  • 👤 Duc L. Tuong
  • 👤 Henri Verdier

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 19:15
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 243 words
In a multiprocessing data processing system wherein a data element is held in a memory member of said system, said data element having a tally field representing the number of times a particular kind of event has occurred, and wherein said data processing system during the execution of a process executes instructions of a particular class, a system for transferring data between processes comprising: retrieving means controlled by one of said instructions for retrieving said data element from said memory member; testing means for testing the tally field of said data element retrieved from said memory member to determine the number of times the particular event has occurred and for generating a first signal when the number represented by said tally field is greater than a predetermined value and for generating a second signal when said number is not greater than said predetermined value; transfer means responsive to said first signal and controlled by an instruction executed during execution of said process for initiating selectively the transfer of data from said process to an area in said memory member of said system associated with said data element and the transfer of data previously stored in the area from the area to said process to establish data transfer between processes; and changing means further responsive to said first signal and controlled by said instruction for updating said tally field following said transfer of data by changing said tally field to represent a different number.
Claim 2
Dependent Claim 243 words
In a multiprocessing data processing system wherein a data element is held in a memory member of said system, said data element having a tally field representing the number of times a particular kind of event has occurred, and wherein said data processing system during the execution of a process executes instructions of a particular class, a system for transferring data between processes comprising: retrieving means controlled by one of said instructions for retrieving said data element from said memory member; testing means for testing the tally field of said data element retrieved from said memory member to determine the number of times the particular event has occurred and for generating a first signal when the number represented by said tally field is greater than a predetermined value and for generating a second signal when said number is not greater than said predetermined value; transfer means responsive to said first signal and controlled by an instruction executed during execution of said process for initiating selectively the transfer of data from said process to an area in said memory member of said system associated with said data element and the transfer of data previously stored in the area from the area to said process to establish data transfer between processes; and changing means further responsive to said first signal and controlled by said instruction for updating said tally field following said transfer of data by changing said tally field to represent a different number.
Claim 3
Dependent Claim 68 words
The system of claim 1, wherein said instruction is of a first kind, wherein said transfer means responds to said first signal and is controlled by said first kind of instruction to transfer data from said area to said process, and wherein said changing means responds to said first signal and is controlled by said first kind of instruction to decrement the number represented by said tally field.
Claim 4
Dependent Claim 68 words
The system of claim 1, wherein said instruction is of a second kind, wherein said transfer means responds to said first signal and is controlled by said second kind of instruction to transfer data from a process to said area, and wherein said changing means responds to said first signal and is controlled by said second kind of instruction to increment the number represented by said tally field.
Claim 5
Dependent Claim 30 words
The system of claim 3, further including means responsive to the incremented number represented by said tally field for enabling another process to receive the data transferred to said area.
Claim 6
Dependent Claim 284 words
In a multiprocessing data processing system wherein a first queue of representations of processes awaiting the occurrence of a particular kind of event and a second queue of representations of processes ready to be executed by said system are held in a memory member of said system, wherein a data element is held in said memory member of said system, said data element having a tally field representing, depending upon its numerical value, one of (a) a number of process representations in said first queue and (b) a number of times said particular kind of event has occurred, and wherein said system during the execution of a process executes instructions of a particular class, a system for synchronizing events and processes, comprising: retrieving means controlled by one of said instructions for retrieving said data element from a memory member; testing means for testing the tally field of said data element retrieved from said memory member to determine the numerical value of the tally field, and for generating a first signal when said tally field represents a number of process representations in said first queue and a second signal when said tally field represents a number of times said particular kind of event has occurred; transfer means responsive to said second signal and controlled by an instruction executed during execution of said process to transfer a representation of the occurrence of said particular kind of event to said process in execution; and changing means further responsive to said second signal and controlled by said instruction for decrementing the number represented by said tally field to update said tally field in accordance with the transfer of said particular kind of event to said process in execution.
Claim 7
Dependent Claim 284 words
In a multiprocessing data processing system wherein a first queue of representations of processes awaiting the occurrence of a particular kind of event and a second queue of representations of processes ready to be executed by said system are held in a memory member of said system, wherein a data element is held in said memory member of said system, said data element having a tally field representing, depending upon its numerical value, one of (a) a number of process representations in said first queue and (b) a number of times said particular kind of event has occurred, and wherein said system during the execution of a process executes instructions of a particular class, a system for synchronizing events and processes, comprising: retrieving means controlled by one of said instructions for retrieving said data element from a memory member; testing means for testing the tally field of said data element retrieved from said memory member to determine the numerical value of the tally field, and for generating a first signal when said tally field represents a number of process representations in said first queue and a second signal when said tally field represents a number of times said particular kind of event has occurred; transfer means responsive to said second signal and controlled by an instruction executed during execution of said process to transfer a representation of the occurrence of said particular kind of event to said process in execution; and changing means further responsive to said second signal and controlled by said instruction for decrementing the number represented by said tally field to update said tally field in accordance with the transfer of said particular kind of event to said process in execution.
Claim 8
Dependent Claim 76 words
The system of claim 5, wherein said instruction is of a first kind, and further including linking means responsive to said first signal and controlled by said first kind of instruction for inserting a representation of said process in execution into said first queue, said changing means being further responsive to said first signal and controlled by said first kind of instruction to change said tally field to represent the additional representation in said first queue.
Claim 9
Dependent Claim 49 words
The system of claim 5, wherein said instruction is of a second kind, and further including means responsive to an occurrence of said first signal and controlled by said second kind of instruction for providing a further signal to said system to continue to execute the process in execution.
Claim 10
Dependent Claim 58 words
The system of claim 5, wherein said particular kind of event comprises an insertion of a message in a message queue held in said memory member of said system, and wherein said transfer means responds to said second signal and is controlled by said instruction to transfer a message from said message queue to said process in execution.
Claim 11
Dependent Claim 244 words
In a multiprocessing data processing system wherein a data element is stored in a memory member of said system, said data element having a tally field representing the number of times a particular kind of event has occurred, and wherein said data processing system during the execution of a process executes instructions of a particular class, a method of transferring data between processes, comprising the steps of: retrieving said data element from said memory member under control of one of said instructions; testing the tally field of said data element retrieved from said memory member to determine a number of times a particular event has occurred; generating a first signal in response to said testing when the number represented by the tally field is greater than a predetermined value; generating a second signal in response to said testing when said number represented by said tally field is not greater than said predetermined value; in response to said first signal and under control of an instruction, initiating selectively transfer of data between a process and an area in said memory member of said system associated with said data element and transfer of data previously stored in the area from said area to said process to establish data transfer between processes; and further responsive to said first signal and under control by said instruction, updating the tally field following the transfer of data from the process by changing said tally field to represent a different number.
Claim 12
Dependent Claim 244 words
In a multiprocessing data processing system wherein a data element is stored in a memory member of said system, said data element having a tally field representing the number of times a particular kind of event has occurred, and wherein said data processing system during the execution of a process executes instructions of a particular class, a method of transferring data between processes, comprising the steps of: retrieving said data element from said memory member under control of one of said instructions; testing the tally field of said data element retrieved from said memory member to determine a number of times a particular event has occurred; generating a first signal in response to said testing when the number represented by the tally field is greater than a predetermined value; generating a second signal in response to said testing when said number represented by said tally field is not greater than said predetermined value; in response to said first signal and under control of an instruction, initiating selectively transfer of data between a process and an area in said memory member of said system associated with said data element and transfer of data previously stored in the area from said area to said process to establish data transfer between processes; and further responsive to said first signal and under control by said instruction, updating the tally field following the transfer of data from the process by changing said tally field to represent a different number.
Claim 13
Dependent Claim 75 words
The method of claim 9 wherein said instruction is of a first kind, wherein said transfer initiating step is in response to the first signal and is controlled by the first kind of instruction to transfer data from the memory member area into a process and wherein the changing step is in response to the first signal and is controlled by the first kind of instruction to decrement the number represented by the tally field.
Claim 14
Dependent Claim 75 words
The method of claim 9, wherein said instruction is of a second kind, wherein said transfer initiating step is in response to the first signal and is controlled by the second kind of instruction to transfer data from the process to the memory member area, and wherein the changing step is in response to the first signal and is controlled by the second kind of instruction to increment the number represented by the tally field.
Claim 15
Dependent Claim 33 words
The method of claim 11, including the step of enabling another process to receive the data transferred to the memory member area in response to the incremented number represented by the tally field.
Claim 16
Dependent Claim 285 words
In a multiprocessing data processing system wherein a first queue of representations of processes awaiting the occurrence of a particular kind of event and a second queue of representations of processes ready to be executed by the system are held in a memory member of the system, wherein a data element is held in the memory member of the system, said data element having a tally field representing, depending upon its numerical value, one of (a) a number of process representations in said first queue and (b) a number of times said particular kind of event has occurred, and wherein said system during the execution of a process executes instructions of a particular class, a method of synchronizing events and processes, comprising the steps of: retrieving the data element from the memory member under control by an executed instruction of said particular class; testing the tally field of said data element received from said memory member to determine the numerical value of the tally field; generating a first signal in response to said testing step when the tally field represents the number of process representations in the first queue; generating a second signal in response to the testing step when the tally field represents the number of times said particular kind of event has occurred; in response to said second signal and controlled by said instruction, transferring a representation of the occurrence of said particular kind of event to said process in execution; and further in response to said second signal and controlled by said instruction decrementing the number represented by the tally field to update said tally field in accordance with the transfer of said particular kind of event to said process in execution.
Claim 17
Dependent Claim 285 words
In a multiprocessing data processing system wherein a first queue of representations of processes awaiting the occurrence of a particular kind of event and a second queue of representations of processes ready to be executed by the system are held in a memory member of the system, wherein a data element is held in the memory member of the system, said data element having a tally field representing, depending upon its numerical value, one of (a) a number of process representations in said first queue and (b) a number of times said particular kind of event has occurred, and wherein said system during the execution of a process executes instructions of a particular class, a method of synchronizing events and processes, comprising the steps of: retrieving the data element from the memory member under control by an executed instruction of said particular class; testing the tally field of said data element received from said memory member to determine the numerical value of the tally field; generating a first signal in response to said testing step when the tally field represents the number of process representations in the first queue; generating a second signal in response to the testing step when the tally field represents the number of times said particular kind of event has occurred; in response to said second signal and controlled by said instruction, transferring a representation of the occurrence of said particular kind of event to said process in execution; and further in response to said second signal and controlled by said instruction decrementing the number represented by the tally field to update said tally field in accordance with the transfer of said particular kind of event to said process in execution.
Claim 18
Dependent Claim 77 words
The method of claim 13, wherein said instruction is of a first kind, and further including the step of in response to the first signal and controlled by the first kind of instruction, inserting a representation of the process in execution into the first queue, said changing step being further responsive to the first signal and controlled by the first kind of instruction to change the tally field to represent the additional representation in the first queue.
Claim 19
Dependent Claim 48 words
The method of claim 13, wherein said instruction is of a second kind, and further including the step of in response to the occurrence of a first signal and controlled by the second kind of instruction, generating a further signal to continue to execute the process in execution.
Claim 20
Dependent Claim 56 words
The method of claim 13, wherein said particular kind of event includes an insertion of a message in a message queue held in said memory member of the system, wherein the transferring step in response to the second signal and controlled by the instruction transfers a message from the message queue to the process in execution.

References Cited (Backward Citations)

US3550133A Cited
US3331057A Cited
US3417374A Cited
US3432813A Cited
US3541513A Cited
US3564504A Cited
US3601809A Cited
US3577130A Cited
US3771136A Cited
US3618031A Cited
US3686641A Cited
US3879711A Cited
US3818461A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1986-02-14 1986-08-16 1987-02-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1990-02-14 1990-08-16 1991-02-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1994-02-14 1994-08-16 1995-02-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag