×

Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system

  • US 5,247,675 A
  • Filed: 08/09/1991
  • Issued: 09/21/1993
  • Est. Priority Date: 08/09/1991
  • Status: Expired due to Term
First Claim
Patent Images

1. A computer system for scheduling execution of program threads of one or more application programs based on parameters specified by the application program(s) and executing the scheduled program threads, said system comprising:

  • at least one processor;

    first means, responsive to specifications by said application program(s) that one plurality of said program threads is assigned to one class and another plurality of said program threads is assigned to another class, for storing indications that said one plurality of program threads is assigned to said one class and said other plurality of program threads is assigned to said other class;

    second means, responsive to specifications by said application program(s) of a priority level for each of said program threads, for storing an indication of the priority level of each of said program threads;

    third means, responsive to specification by an application program or program thread that a program thread is unavailable for execution, for storing an indication that said program thread is unavailable for execution and responsive to a specification by an application program or another program thread that said program thread is available for execution, for storing an indication that said program thread is available for execution; and

    means, coupled to the first, second and third storing means and said processor processors, for selecting the highest priority available program thread from each of said classes for execution by said processor or processors and scheduling said selected program threads for execution by said processor or processors in order of priority level such that the highest priority, selected program thread is executed first; and

    wherein the selecting and scheduling means includesmeans for preempting execution of a program thread from either of said classes with a higher priority level program thread from the other class, said higher priority level program thread from said other class being made available or assigned to said other class after selection by the selecting means of another program thread from said other class with a lower priority than the executing program thread, said selecting means subsequently selecting said higher priority program thread from said other class in place of said lower priority program thread from said other class for execution by the processor; and

    means for preventing a program thread in said one class, which was made available or assigned to said one class after selection by the selecting means of another, lower priority program thread from said one class for execution, from preempting execution of said other, lower priority selected program thread from said one class.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×