Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process
First Claim
1. A multitasking data processing system, comprising:
- system resources;
a processor for executing kernel threads scheduled to said processor;
a memory having a user address space and a kernel address space, wherein an application program is stored within said user address space;
an operating system kernel stored within said kernel address space;
a user process stored within said user address space which has ownership of said system resources, said user process including one or more first kernel threads which each comprise a schedulable unit of said application program, wherein in response to said processor processing an instruction within a particular first kernel thread which requires access to said system resources, said particular first kernel thread invokes a second kernel thread within said user process to access said system resources, said second kernel thread executing out of said kernel address space; and
a thread scheduler for scheduling selected ones of said one or more first kernel threads and said second kernel thread to said processor for execution, wherein access to said system resources by said user process is accomplished by invoking a kernel thread within said user process.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system are disclosed for managing access to system resources by a user process within a multitasking data processing system. The data processing system includes a processor for executing kernel threads scheduled to the processor and a memory having a user address space which stores an application program and a kernel address space which stores an operating system kernel. The operating system kernel includes a kernel process comprising one or more first kernel threads which can each access the system resources. The user address space also stores a user process which has ownership of the system resources. The user process includes a second kernel thread comprising instructions within the application program. To access certain system resources, the second kernel thread invokes a first kernel thread within the user process. A thread scheduler schedules selected ones of the one or more first kernel threads and the second kernel thread to the processor for execution, such that access to the system resources by the user process is accomplished by invoking a kernel thread within the user process without invoking a kernel thread within the kernel process.
-
Citations
18 Claims
-
1. A multitasking data processing system, comprising:
-
system resources;
a processor for executing kernel threads scheduled to said processor;
a memory having a user address space and a kernel address space, wherein an application program is stored within said user address space;
an operating system kernel stored within said kernel address space;
a user process stored within said user address space which has ownership of said system resources, said user process including one or more first kernel threads which each comprise a schedulable unit of said application program, wherein in response to said processor processing an instruction within a particular first kernel thread which requires access to said system resources, said particular first kernel thread invokes a second kernel thread within said user process to access said system resources, said second kernel thread executing out of said kernel address space; and
a thread scheduler for scheduling selected ones of said one or more first kernel threads and said second kernel thread to said processor for execution, wherein access to said system resources by said user process is accomplished by invoking a kernel thread within said user process. - View Dependent Claims (2, 3, 4, 5, 16)
-
-
6. A method within a multitasking data processing system for managing access to system resources by a user process, said data processing system including a memory having a user address space which stores an application program and a kernel address space which stores an operating system kernel, said method comprising:
-
creating a user process within said user address space which has ownership of said system resources, said user process including a first kernel thread which comprises a schedulable unit of said application program;
scheduling said first kernel thread to said processor for execution;
in response to said processor processing an instruction within said first kernel thread which requires access to said system resources, creating a second kernel thread within said user process to perform said access to said system resources, wherein said second kernel thread executes out of said kernel address space; and
thereafter, continuing execution of said first kernel thread within said user address space, wherein access to said system resources is accomplished by invoking a kernel thread within said user process. - View Dependent Claims (7, 8, 9, 10, 17)
executing said second kernel thread within said user process to access said system resources; and
in response to completion of said access to said system resources, notifying said-first kernel thread that said access to said system resources is complete.
-
-
8. The method for managing access to system resources by a user process of claim 7, said user process having a scheduling priority, wherein said execution of said second kernel thread within said user process is performed according to said scheduling priority of said user process.
-
9. The method for managing access to system resources by a user process of claim 6, and further comprising accounting processor cycles utilized to execute said second kernel thread within said user process to said user process.
-
10. The method for managing access to system resources by a user process of claim 6, and further including a plurality of user processes, wherein each of said plurality of user processes maintains a separate queue of requests to perform system resource accesses, said method further comprising:
in response to a request by thread within a particular user process among said plurality of user processes to perform an access to said system resources, placing said request on a queue of requests maintained by said particular user process.
-
17. The method of claim 6, wherein invocation of said second kernel thread by said first kernel thread comprises said first kernel thread issuing a kernel service call.
-
11. A computer program product for managing access to system resources by a user process within a data processing system having a user address space which stores an application program and a kernel address space which stores an operating system kernel, said computer program product comprising:
-
a data processing system usable medium;
instruction means within said medium for causing said data processing system to create a user process within said user address space which has ownership of said system resources, said user process including a first kernel thread which comprises a schedulable unit of said application program;
instruction means within said medium for causing said data processing system to schedule said first kernel thread to said processor for execution;
instruction means within said medium for causing said data processing system to create a second kernel thread within said user process to perform said access to said system resources in response to said processor processing an instruction within said first kernel thread which requires access to said system resources, wherein said second kernel thread executes out of said kernel address space; and
instruction means within said medium for causing said data processing system to thereafter continue execution of said first kernel thread within said user address space, wherein access to said system resources is accomplished by invoking a kernel thread within said user process. - View Dependent Claims (12, 13, 14, 15, 18)
instruction means within said medium for causing said data processing system to execute said second kernel thread within said user process to access said system resources; and
instruction means within said medium for causing said data processing system to notify said first kernel thread that said access to said system resources is complete in response to completion of said access to said system resources.
-
-
13. The computer program product of claim 12, wherein said instruction means for causing said data processing system to execute said second kernel thread within said user process causes said data processing system to execute said second kernel thread within said user process according to a scheduling priority of said user process.
-
14. The computer program product of claim 11, and further comprising instruction means within said medium for causing said data processing system to account processor cycles utilized to execute said second kernel thread within said user process to said user process.
-
15. The computer program product of claim 11, said data processing system further including a plurality of user processes, wherein each of said plurality of user processes maintains a respective one of a plurality of queues for storing requests to perform a system resource access, said computer program product further comprising:
instruction means within said medium for causing said data processing system to place a request to perform an access to system resources on a queue of requests maintained by a particular user process among said plurality of user processes in response to a request by a first kernel thread within said particular user process to perform an access to said system resources.
-
18. The computer program product of claim 11, wherein said instruction means for causing said data processing system to create a second kernel thread within said user process comprises instruction means for causing said data processing system to create a second kernel thread within said user process in response to said first kernel thread issuing a kernel service call.
Specification