Method and system for privilege-level-access to memory...

Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S164000

Reexamination Certificate

active

06745307

ABSTRACT:

TECHNICAL FIELD
The present invention relates to computer architecture and data security within computer systems and, in particular, to a method and system for providing, to processes operating at certain selected privilege levels, access to a memory region while preventing processes operating at other privilege levels from accessing the memory region.
BACKGROUND OF THE INVENTION
The present invention is related to security and access privileges within a computer system that allow processes executing at certain privilege levels to access a region of memory while preventing processes executing at other privilege levels from accessing the memory region. The topics of computer architecture and memory security are far too complex to summarize comprehensively in this section. Instead, a simplified, but adequate, background is presented in this section as a basis for presenting a detailed description of several embodiments of the claimed invention in a subsequent section.
FIG. 1
is a block diagram showing hardware, operating-system, and application-program layers within a generalized computer system. A computer system
100
can be considered to comprise a hardware layer
102
, an operating system layer
104
, and an application-programming layer
106
. Computer systems are quite complex, with many additional components, sub-layers, and logical entity interrelationships, but the 3-layer hierarchy shown in
FIG. 1
represents a logical view of computer systems commonly employed within the computer software and hardware industries.
The hardware layer
102
comprises the physical components of a computer system. These physical components include, for many small computer systems, a processor
108
, memory storage components
110
,
112
, and
114
, internal buses and signal lines
116
-
119
, bus interconnect devices
120
and
122
, and various microprocessor-based peripheral interface cards
124
-
129
. The processor
108
is an instruction-execution device that executes a stream of instructions obtained by the processor from internal memory components
110
,
112
, and
114
. The processor contains a small number of memory storage components referred to as registers
130
that can be quickly accessed. Data and instructions are read from, and written to, the memory components
110
,
112
, and
114
via internal buses
116
and
117
and the bus interconnect device
120
. Far greater data storage capacity resides in peripheral data storage devices such as disk drives, CD-ROM drives, DVD drives, and other such components that are accessed by the processor via internal buses
116
,
118
, and
119
, interconnect devices
120
and
122
, and one or more of the peripheral device interconnect cards
124
-
129
. For example, the stored instructions of a large program may reside on a disk drive for retrieval and storage in internal memory components
110
,
112
, and
114
on an as-needed basis during execution of the program. More sophisticated computers may include multiple processors with correspondingly more complex internal bus interconnections and additional components.
The operating system layer
104
is a logical layer comprising various software routines that execute on the processor
108
or one or more of a set of processors and that manage the physical components of the computer system. Certain operating system routines, in a traditional computer system, run at higher priority then user-level application programs, coordinating concurrent execution of many application programs and providing each application program with a run-time environment that includes processor time, a region of memory addressed by an address space provided to the application program, and a variety of data input and output services, including access to memory components, peripheral devices, communications media, and other internal and external devices. Currently running programs are executed in the context of a process, a logical entity defined by various state variables and data structures managed by the operating system. One important internal data structure managed by the operating system is a process queue
132
that contains, for each currently active process, a process-control block or similar data structure that stores data that defines the state of the currently active process managed by the operating system.
The application-programming and user interface layer
106
is the user-visible layer of the computer system. The current invention relates primarily to the application program interface as well as to internal kernel and operating-system interfaces, and thus the application-programming and user interface layer will be discussed primarily with reference to the application program interface. An application program comprises a long set of stored instructions
134
, a memory region addressed within an address space provided by the operating system to the process executing the application program
136
, and a variety of services
138
-
142
provided through the operating-system interface that allow the application program to store data to, and retrieve data from, external devices, access system information, such as an internal clock and system configuration information, and to access additional services.
FIG. 2
illustrates the concept of privilege within a traditional computer system, such as the computer system diagrammed in
FIG. 1. A
privilege level is a value contained within a process-status control register of a processor within the hardware layer of the computer system. Many current computer systems employ two privilege levels: (1) a most privileged level, or kernel-privilege level; and (2) a less privileged level, or application-program privilege level. In computer systems providing two privilege levels, the current privilege level (“CPL”) for a currently executing process can be represented by a single CPL bit within the process status register. When the CPL bit has the value “0,” the currently executing process executes at kernel-privilege level, and when the CPL bit has a value of “1,” the currently executing process executes at application-privilege level. The privilege level at which a process executes determines the total range or ranges of virtual memory that the process can access and the range of instructions within the total instruction set that can be executed by the processor on behalf of the process. In
FIG. 2
, the area within outer circle
202
represents the resources accessible by a processor executing at kernel-privilege level, privilege level 0, and the area within the inner circle
204
represents resources accessible by a process executing at application-privilege level, privilege level 1. In
FIG. 2
, the left-hand rectangle
206
represents the entire instruction set provided by the processor architecture, and right-hand rectangle
208
represents the entire range of addressable virtual memory that can be accessed by a routine executing at the most privileged level. A process executing with privilege level 0 (
202
in
FIG. 2
) can access the entire instruction set
206
and the entire addressable virtual memory
208
of the computer system. However, a process executing at privilege level 2 (
204
in
FIG. 2
) can access only a portion of the instruction set
210
(represented by the cross-hatched region of the entire instruction set
206
) and only a portion
212
of the entire addressable memory
208
.
The privilege concept is used to prevent full access to computing resources by application programs. In order to obtain services that employ resources not directly available to application programs, application programs need to call operating system routines through the operating system interface. Operating system routines can promote the CPL to privilege level 0 in order to access the necessary resources, carry out a task requested by an application program, and then return control to the application program while simultaneously demoting the CPL back to privilege level 1. By restricting application-program access to computer resources, an operating system can maintai

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 privilege-level-access to memory... 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 privilege-level-access to memory..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for privilege-level-access to memory... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3347913

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