Method and system for accessing system resources of a data...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S241000, C709S241000

Reexamination Certificate

active

06732138

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates in general to a method and system for data processing and in particular to an improved method and system for accessing system resources within a multitasking data processing system. Still more particularly, the present invention relates to a method and system for accessing system resources within a multitasking data processing system which implements a multithreaded operating system kernel that supports kernel-only threads within user processes.
2. Description of the Related Art
A number of currently available multitasking operating systems such as AIX (Advanced Interactive Executive) enable multiple application programs to concurrently execute and share system resources within a data processing system. Typically, each application program comprises one or more processes, which are entities allocated system resources by the operating system. The operating system itself includes a lowest layer, called a kernel, which interacts with the data processing system's hardware. Like application programs, the kernel comprises multiple processes, which synchronize various system activities, implement multiprocessing capabilities, dispatch process threads, and provide interrupt handling services to device drivers.
Referring now to
FIG. 4
, there is depicted a conceptual diagram of conventional user and kernel processes within a data processing system. As illustrated, a multitasking data processing system concurrently executes multiple user processes
100
, which are each allocated a distinct user address space as well as ownership of other system resources. Each user process
100
comprises one or more user threads
102
. As will be understood by those skilled in the art, user threads
102
are abstract entities within the portable programming model for which an application designer writes code. Each user thread
102
is mapped to one or more kernel threads
104
in an implementation dependent manner.
Kernel threads
104
are schedulable entities that execute program steps and consume system resources owned by the processes which include kernel threads
104
. Each kernel thread
104
has an associated machine state that consists of the processor register contents, program counter, and other privileged information required to execute kernel thread
104
. Multiple kernel threads
104
can execute simultaneously when multiple CPUs are available. When only a single CPU is available, the operating system allocates CPU time slices to each of kernel threads
104
to create an appearance of concurrent execution.
As described above, the operating system kernel includes multiple concurrent kernel processes
106
. Each kernel process
106
represents a registered segment of code available to support a function of the data-processing system. For example, the operating system of a data processing system typically includes a number device drivers utilized to manage devices coupled to the system bus of the data processing system. Each of kernel processes
106
can be utilized by the operating system to provide services, such as interrupt handling, for these device driver routines. As illustrated, kernel threads
107
, which form kernel processes
106
, execute only within a kernel mode environment. Both kernel process kernel threads
107
and user process kernel threads
104
can reference the globally accessible kernel data structures utilized to control operation of the data processing system and to define system resources allocated to each user process
100
.
While a kernel thread
104
running under a user process
100
is executing application instructions, kernel thread
104
operates within a user mode environment. However, during its stream of execution, a kernel thread
104
may require access to system resources, for example, to perform a disk read or other asynchronous I/O, which are accessible only from the kernel mode environment. To access these system resources, kernel thread
104
first describes the desired I/O operation utilizing a control block data structure within the user address space assigned to user process
100
. In addition, kernel thread
104
specifies whether a notification signal should be issued to kernel thread
104
when the requested data is available. Kernel thread
104
then makes a system call to change domains from the user mode to the kernel mode environment.
Within the kernel mode environment, kernel thread
104
makes a kernel service call to the kernel address space, as illustrated by arrow
108
, requesting that a kernel thread
107
running under a kernel process
106
perform the access to the system resources. The kernel service call entails allocating a control block within the kernel address space, filling out the control block, and inserting the control block into the kernel process request queue. Following kernel service call
108
, kernel thread
104
returns to the user mode environment and continues execution.
Upon receipt of kernel service call
108
, a kernel thread
107
which supports the requested functionality wakes from sleep, that is, a state of suspended execution, and moves the control block from the kernel process request queue to a pending I/O queue. In the case of an asynchronous read, kernel thread
107
then interfaces with a device driver routine to initiate an access to the disk hardware, as illustrated by arrow
112
. Data read from the disk is stored within the global kernel address space. While waiting for the I/O request to complete, kernel thread
107
sleeps unless other I/O requests serviced by kernel thread
107
are received. Upon completion of the requested asynchronous read, kernel thread
107
is awakened by an interrupt from the disk interrupt handler, indicating that an asynchronous read has completed.
After kernel thread
107
wakes, kernel thread
107
determines which I/O request has been completed. Kernel thread
107
then copies the data from the kernel address space to the address space of user process
100
. Because kernel thread
107
runs under a different process from the calling kernel thread
104
, kernel thread
107
must obtain locks on a portion of the address space of user process
100
to ensure that the address space is not reallocated before the data transfer is complete. Once the data is copied into the user address space of user process
100
, kernel thread
107
updates a status indicator within the control block of user process
100
to indicate that the requested data is available. In addition, if requested by user process
100
, kernel process
106
transmits a signal to user process
100
to indicate that the requested data is available. Kernel process
106
then returns to sleep. After receiving notification of the availability of the requested data from kernel process
106
or by checking the status indicator within its control block, kernel thread
104
can then utilize the accessed data in its stream of execution.
Although the programming model illustrated conceptually in
FIG. 4
provides enhanced performance over prior programming models which did not support multithreaded processes, the programming model depicted in
FIG. 4
does not promote accountability for the use of system services by user processes
100
. In other words, each user process
100
can consume system resources available through kernel processes
106
without regard to the priority of user process
100
since kernel processes
106
provide generic response to kernel service calls issued by kernel threads
104
. Because of the generic support provided by kernel processes
106
, kernel service calls issued by a high priority kernel thread
104
running under a user process
100
can be delayed in favor of a call issued by a lower priority kernel thread
104
. In addition, when kernel threads running under multiple user processes
100
request a particular system resource accessible only through a single kernel process
106
, the programming model illustrated in
FIG. 4
requires that all of the kernel service calls be placed within a single

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for accessing system resources of a data... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and system for accessing system resources of a data..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for accessing system resources of a data... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3224728

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.