发明名称 Techniques for executing normally interruptible threads in a non-preemptive manner
摘要 A technique for executing normally interruptible threads of a process in a non-preemptive manner includes in response to a first entry associated with a first message for a first thread reaching a head of a run queue, receiving, by the first thread, a first wake-up signal. In response to receiving the wake-up signal, the first thread waits for a global lock. In response to the first thread receiving the global lock, the first thread retrieves the first message from an associated message queue and processes the retrieved first message. In response to completing the processing of the first message, the first thread transmits a second wake-up signal to a second thread whose associated entry is next in the run queue. Finally, following the transmitting of the second wake-up signal the first thread releases the global lock.
申请公布号 US8856801(B2) 申请公布日期 2014.10.07
申请号 US201213602365 申请日期 2012.09.04
申请人 International Business Machines Corporation 发明人 Kamath Dayavanti G.;Ghosh Nirapada;Leu Dar-ren;Mukherjee Nilanjan;Pandey Vijoy
分类号 G06F9/46;G06F9/48;G06F9/52 主分类号 G06F9/46
代理机构 Yudell Isidore Ng Russell PLLC 代理人 Yudell Isidore Ng Russell PLLC ;Baca Matthew
主权项 1. A method of executing normally interruptible threads of a process in a non-preemptive manner, comprising: in response to a first entry associated with a first message for a first thread reaching a head of a run queue, receiving, by the first thread, a first wake-up signal, wherein the first thread is a serialized stem pthread; in response to receiving the wake-up signal, waiting, by the first thread, for a global lock; in response to the first thread receiving the global lock, retrieving, by the first thread, the first message from an associated message queue; processing, by the first thread, the retrieved first message; in response to completing the processing of the first message, transmitting, by the first thread, a second wake-up signal to a second thread whose associated entry is next in the run queue, wherein the second thread is a serialized pthread that requires access to a data structure that is shared with the first thread; releasing, by the first thread, the global lock following the transmitting of the second wake-up signal; checking, by the first thread, the associated message queue for a second message for the first thread; and in response to the associated message queue including the second message, queuing a second entry associated with the second message to an end of the run queue.
地址 Armonk NY US