← Back to Patent Explorer
US5490272A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for creating multithreaded time slices in a multitasking operating system

Assignee: International Business Machines Corp
•
Filing: 1994-01-28
•
Granted: 1996-02-06
•
Expires: 2014-01-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for subdividing a thread's processing cycles among a set of threadlets or regions within a thread or process. This is achieved through instructions in the application code which are interpreted by the operating system. The beginning and ending of a threadlet is through the "Begin Threadlet" and "End Threadlet" instructions. A segmented stack is utilized to separately hold that part of the stack belonging to each threadlet. The programmer must know within the application code places where the data contents of the registers do not merit saving or is saved in memory. This provides the user with an opportunity to switch to a different activity without saving registers. The user identifies this to the operating system by a special instruction called "SWITCHIR". The SWITCHIR instruction tells the operating system not to save registers. Therefore, within the same thread, the operating system will keep on executing a threadlet until it encounters this instruction. Upon encountering the SWITCHIR instruction, the operating system will save the program counter and stack pointer in a threadlet control block and execute subsequently encountered threadlets.

Inventors

  • 👤 Harry M. Mathis
  • 👤 Shrikant N. Parikh

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 03:26
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/461; G06F9/30; G06F9/30003; G06F9/30076; G06F9/3009; G06F9/48; G06F9/4806; G06F9/4843

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 118 words
A method, implemented in a data processing system, of subdividing processing cycles of a thread among a set of threadlets within an application program, comprising: obtaining a first time slice for said thread having a fixed execution time within said data processing system, indicating to said data processing system the beginning and ending of said threadlets in said application program whose processing cycles will be subdivided among said set of threads, loading said data processing system with a threadlet control block of said thread containing said set of threadlets within said application program, and executing said set of threadlets for said threadlet control block in the order specified and within the fixed execution time of said time slice.
Claim 2
Independent Claim 118 words
A method, implemented in a data processing system, of subdividing processing cycles of a thread among a set of threadlets within an application program, comprising: obtaining a first time slice for said thread having a fixed execution time within said data processing system, indicating to said data processing system the beginning and ending of said threadlets in said application program whose processing cycles will be subdivided among said set of threads, loading said data processing system with a threadlet control block of said thread containing said set of threadlets within said application program, and executing said set of threadlets for said threadlet control block in the order specified and within the fixed execution time of said time slice.
Claim 3
Dependent Claim 31 words
The method of claim 1 wherein the step of executing said set of threadlets includes detecting a switch instruction indicating that the program counter and stack pointer are to be saved.
Claim 4
Dependent Claim 28 words
The method of claim 1 wherein the step of executing said set of threadlets includes the loading a program counter and stack pointer for said set of threadlets.
Claim 5
Dependent Claim 25 words
The method of claim 1 wherein the step of indicating the beginning of said threadlet is by a BEGIN THREADLET instruction in said application program.
Claim 6
Dependent Claim 25 words
The method of claim 1 wherein the step of indicating the ending of said threadlet is by a END THREADLET instruction in said application program.
Claim 7
Independent Claim 156 words
A method, implemented in a data processing system, of reducing the overhead for context switching for a threadlet having a fixed execution time by an operating system in said data processing system, comprising: defining the start of said first threadlet by a begin instruction within application code in said data processing system; and defining the location where data contents that would be saved in a threadlet context switch do not merit saving, and where only the program counter and stack point require saving in order to resume threadlet execution by said data processing system; and defining a threadlet switch instruction construct to identify where said threadlet context switch can occur at low cost: and executing said first threadlet by said operating system until a switch instruction is encountered within said application code and thereupon saving the program counter and stack pointer for said first threadlet and executing a second threadlet specified by a threadlet control block.
Claim 8
Independent Claim 156 words
A method, implemented in a data processing system, of reducing the overhead for context switching for a threadlet having a fixed execution time by an operating system in said data processing system, comprising: defining the start of said first threadlet by a begin instruction within application code in said data processing system; and defining the location where data contents that would be saved in a threadlet context switch do not merit saving, and where only the program counter and stack point require saving in order to resume threadlet execution by said data processing system; and defining a threadlet switch instruction construct to identify where said threadlet context switch can occur at low cost: and executing said first threadlet by said operating system until a switch instruction is encountered within said application code and thereupon saving the program counter and stack pointer for said first threadlet and executing a second threadlet specified by a threadlet control block.
Claim 9
Dependent Claim 36 words
The method of claim 6 wherein said step of executing said first threadlet includes saving said program counter and stack pointer into said data processing system when said switch instruction is encountered in said application code.
Claim 10
Dependent Claim 36 words
The method of claim 6 wherein said step of executing said second threadlet includes loading a program counter and stack pointer for said second threadlet for a stack segment different from that for said first threadlet.
Claim 11
Dependent Claim 47 words
The method of claim 6 wherein said step of executing said second threadlet includes saving the program counter and stack pointer for said second threadlet for a stack segment, separate from that for said first threadlet, when a second switch instruction is encountered in said application code.
Claim 12
Independent Claim 106 words
An apparatus in a data processing system for subdividing processing cycles of a thread among a set of threadlets within an application program, comprising: means for indicating to said data processing system a beginning and ending of said set of threadlet in said application program whose processing cycles will be subdivided among said set of threads, means for loading said data processing system with a threadlet control block of said thread containing said set of threadlets within said application program, and means for executing said set of threadlets within said threadlet control block in the order specified and within a fixed execution time of said thread.
Claim 13
Independent Claim 106 words
An apparatus in a data processing system for subdividing processing cycles of a thread among a set of threadlets within an application program, comprising: means for indicating to said data processing system a beginning and ending of said set of threadlet in said application program whose processing cycles will be subdivided among said set of threads, means for loading said data processing system with a threadlet control block of said thread containing said set of threadlets within said application program, and means for executing said set of threadlets within said threadlet control block in the order specified and within a fixed execution time of said thread.
Claim 14
Dependent Claim 36 words
The apparatus of claim 1 wherein the means for executing said set of threadlets includes means for detecting a switch instruction indicating that a program counter and stack pointer for said threadlet are to be saved.
Claim 15
Dependent Claim 36 words
The apparatus of claim 1 wherein the means for executing said set of threadlets includes means for loading a program counter and stack pointer for said set of threadlets from a stack different from said thread.
Claim 16
Dependent Claim 25 words
The apparatus of claim 1 wherein the means for indicating the beginning of said threadlet is by a BEGIN THREADLET instruction in said application program.
Claim 17
Dependent Claim 25 words
The apparatus of claim 1 wherein the means for indicating the ending of said threadlet is by a END THREADLET instruction in said application program.

References Cited (Backward Citations)

US4445173A Cited
US4562538A Cited
US5008812A Cited
US5438680A Cited
US5367676A Cited
US5142677A Cited
US5291608A Cited
US5390329A Cited
US5421014A Cited
US5430841A Cited
US5428779A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-02-05 1999-08-07 2000-02-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-02-05 2003-08-07 2004-02-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-02-05 2007-08-07 2008-02-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag