Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
BATCH BASED FIRST IN FIRST OUT ORDERED INTER-THREAD COMMUNICATION
Document Type and Number:
WIPO Patent Application WO/2017/203320
Kind Code:
A1
Abstract:
In this invention we have one or more producer threads which communicate with one or more consumer threads with the help of fixed size objects through an unbounded first in first out queue(wait-free non-blocking algorithm is used to perform insertion and deletion operations on the queue) in batches of size n where n is a number from a set of positive integers.

Inventors:
SHARMA PRATIK (IN)
Application Number:
PCT/IB2016/052997
Publication Date:
November 30, 2017
Filing Date:
May 23, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SHARMA PRATIK (IN)
International Classes:
G06F9/54; G06F9/46; G06F9/52
Foreign References:
US20070169123A12007-07-19
Download PDF:
Claims:
Following is the claim for this invention :-

1> The novel technique by which we achieve communication between one or more produce threads and one or more consumer threads with the help of fixed size objects through an unbounded first in first out queue (wait-free non-blocking algorithm is used to perform insertion and deletion operations on the queue) in batches of size n where n is a number from a set of positive integers.

AMENDED CLAIMS

received by the International Bureau on 17 August 2017 (17.08.17)

1. In this invention we have a set of one or more producer threads which produce fixed size objects and a set of one or more consumer threads which consume these objects. Producer threads pass fixed size objects to consumer threads through an unbounded first in first out ordered queue using wait-free non-blocking algorithm for performing insertion and deletion operations on the queue. Here producer threads pass objects to consumer threads in batches of size n where n is a number from the set of positive integers. Producer threads generate fixed size objects and insert them into the unbounded first in first out ordered queue(using wait-free non-blocking

algorithm) till we reach a queue size of n elements on which the producer thread which inserted the nth element in the queue will generate a token. The scheduler in this case only schedules producer threads along with other threads and not consumer threads for current and subsequent rounds of scheduling till the token gets generated on reaching the queue size of n elements, and thereafter the scheduler only schedules consumer threads along with other threads and not producer threads for current and subsequent rounds of scheduling till the generated token gets absorbed by the consumer thread which dequeued the last remaining element in the queue. So token based batched communication with wait-free non-blocking algorithm for unbounded first in first out ordered queue is one of the features of the invention.

2. The scheduler here maintains a table of entries consisting of thread identifier as the key and the value consists of the type of thread, i.e., producer or consumer, along with the pointer to the token if generated or a null reference if token is not generated, for the given set of producer and consumer thread identifiers containing this thread identifier. So the scheduler maintaining information about producer and consumer threads for each cycle of scheduling is the other feature of this invention.

Description:
In this invention we have a set of one or more producer threads which produce fixed size objects and a set of one or more consumer threads which consume these objects. Producer threads pass fixed size objects to consumer threads through an unbounded first in first out ordered queue using wait-free non-blocking algorithm for performing insertion and deletion operations on the queue. Here producer threads pass objects to consumer threads in batches of size n where n is a number from the set of positive integers. Producer threads generate fixed size objects and insert them into the unbounded first in first out ordered queue(using wait-free non-blocking algorithm) till we reach a queue size of n elements on which the producer thread which inserted the nth element in the queue will generate a token. The scheduler in this case only schedules producer threads along with other threads and not consumer threads for current and subsequent rounds of scheduling till the token gets generated on reaching the queue size of n elements, and thereafter the scheduler only schedules consumer threads along with other threads and not producer threads for current and subsequent rounds of scheduling till the generated token gets absorbed by the consumer thread which dequeued the last remaining element in the queue.

The scheduler here maintains a table of entries consisting of thread identifier as the key and the value consists of the type of thread, i.e. , producer or consumer, along with the pointer to the token if generated or a null reference if token is not generated, for the given set of producer and consumer thread identifiers containing this thread identifier.