Systems and methods are provided for scheduling the processing of a
coprocessor whereby applications can submit tasks to a scheduler, and the
scheduler can determine how much processing each application is entitled
to as well as an order for processing. In connection with this process,
tasks that require processing can be stored in physical memory or in
virtual memory that is managed by a memory manager. The invention also
provides various techniques of determining whether a particular task is
ready for processing. A "run list" may be employed to ensure that the
coprocessor does not waste time between tasks or after an interruption.
The invention also provides techniques for ensuring the security of a
computer system, by not allowing applications to modify portions of
memory that are integral to maintaining the proper functioning of system
operations.