×

Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system

  • US 6,006,247 A
  • Filed: 02/27/1997
  • Issued: 12/21/1999
  • Est. Priority Date: 03/21/1995
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method, within a multiprocessor data processing system including a plurality of processors, for handling exceptions generated by said plurality of processors, wherein said multiprocessor data processing system has a global queue of multiple threads from which threads are dispatched for execution by said plurality of processors and a plurality of local dispatch flags, wherein each of said plurality of local dispatch flags is a storage location allocated to a respective one of said plurality of processors, said method comprising:

  • in response to an occurrence of an exception arising from execution of a particular thread by a particular processor among said plurality of processors, saving a state of said particular thread, wherein said state of said particular thread is at least partially defined by volatile data within said particular processor that is associated with said particular thread;

    executing a selected exception handler associated with said exception;

    determining whether or not resumption of said particular thread depends upon an occurrence of a specified event other than completion of said selected exception handler;

    in response to said determination that resumption of said particular thread depends upon an occurrence of said specified event, setting a particular local dispatch flag among said plurality of local dispatch flags that is allocated to said particular processor;

    in response to said particular local dispatch flag associated with said particular processor not being set, resuming execution of said particular thread on said particular processor following execution of said selected exception handler;

    in response to said particular local dispatch flag being set, dispatching a thread from said global queue for execution by said particular processor following execution of said selected exception handler; and

    in response to dispatching a thread for execution by said particular processor, clearing said particular local dispatch flag associated with said particular processor regardless of whether said thread dispatched from said global queue is said particular thread.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×