US 11,809,219 B2
System implementing multi-threaded applications
Ori Zakin, Sde Varburg (IL); Amir Krayden, Hertzelia (IL); Or Sadeh, Pardes-Hanna (IL); and Yuval Lev, Gan Yavne (IL)
Assigned to DRIVENETS LTD., Raanana (IL)
Appl. No. 17/256,526
Filed by DRIVENETS LTD., Raanana (IL)
PCT Filed Jun. 18, 2019, PCT No. PCT/IL2019/050682
§ 371(c)(1), (2) Date Dec. 28, 2020,
PCT Pub. No. WO2020/008449, PCT Pub. Date Jan. 9, 2020.
Claims priority of provisional application 62/692,912, filed on Jul. 2, 2018.
Prior Publication US 2021/0279096 A1, Sep. 9, 2021
Int. Cl. G06F 9/48 (2006.01)
CPC G06F 9/4881 (2013.01) 6 Claims
OG exemplary drawing
 
1. A method of executing instructions embedded in at least two threads stored in a processor system comprising at least two operating units and a virtual managing entity configured to hold a plurality of queues for virtual objects waiting to use a respective operating unit, and wherein said virtual managing entity is further configured to divert virtual objects from one of the queues to one other of the queues,
wherein each virtual object when held in one of said queues is associated with two virtual timers for dynamically tracking time periods linked to said virtual object, one being a virtual timer configured to measure a period of time during which said virtual object is being held in the queue (TIQ) whereas the other one of said two virtual timers is configured to provide a period of time during which said virtual object will remain in an alive state (TTL), said method comprising the steps of:
receiving by the virtual managing entity information that relates to virtual objects that are associated with the at least two threads;
operating on virtual objects which their respective TTLs have expired;
upon emerging from its respective queue, determining whether each virtual object should be diverted by said virtual managing entity to another one of said plurality of queues, and if in the affirmative, said virtual object would be diverted by the virtual managing entity to a queue having a largest timeout value which is smaller than the value of the TTL associated with the respective virtual object;
resetting the virtual timer configured to measure a period of time during which the virtual object is being held in the queue (TIQ); and
allocating an access time to each virtual object upon emerging from its respective queue, wherein said access time is determined based on a number of threads requiring said virtual object and the TIQ associated with said respective virtual object.