Variably-sized kernel memory stacks
First Claim
1. In a computer system having privileged and non-privileged execution modes, a method comprising the following steps:
- using a variably-sized kernel memory stack in the privileged execution mode;
executing a stack overflow handler that dynamically allocates additional memory for the variably-sized kernel memory stack;
using a fixed-size memory stack for the stack overflow handler.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention includes a computer system having a processor that executes program instructions in privileged and non-privileged execution modes. A user stack is used when the processor is executing in the non-privileged execution mode. A kernel memory stack is used when the processor is executing in the privileged execution mode. The kernel memory stack can grow and shrink dynamically as it is used by its associated thread, through the use of allocate-on-demand memory. A stack overflow handler is executed from within the kernel to resolve allocate-on-demand faults. The stack handler uses only fixed-size memory stacks.
104 Citations
56 Claims
-
1. In a computer system having privileged and non-privileged execution modes, a method comprising the following steps:
-
using a variably-sized kernel memory stack in the privileged execution mode; executing a stack overflow handler that dynamically allocates additional memory for the variably-sized kernel memory stack; using a fixed-size memory stack for the stack overflow handler. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. In a computer system having privileged and non-privileged execution modes, a method comprising the following steps:
-
using a variably-sized kernel memory stack in the privileged execution mode; executing a stack overflow handler, the stack overflow handler allocating physical memory for the variably-sized kernel memory stack in response to accessing an address in the variably-sized kernel memory stack that has not been allocated; switching to a fixed size memory stack while executing the stack overflow handler. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. In a computer system having privileged and non-privileged execution modes, a method comprising the following steps:
-
executing a user process or thread in the non-privileged execution mode, the user process or thread having a user memory stack; invoking a kernel process or thread from the user process or thread, the kernel process or thread executing in the privileged execution mode, the kernel process or thread having a variably-sized kernel memory stack; initiating a memory fault handler in response to memory faults; the memory fault handler notifying a helper thread of memory faults that result from using out-of-bounds kernel memory stack addresses; the helper thread allocating additional memory for the variably-sized kernel memory stack in response to being notified by the memory fault handler; using one or more fixed-size memory stacks for the memory fault handler and the helper thread. - View Dependent Claims (28, 29, 30)
-
-
31. A computer system comprising:
-
a processor having privileged and non-privileged execution modes; a user memory stack that is used when the processor is in the non-privileged execution mode; a variably-sized kernel memory stack that is used when the processor is in the privileged execution mode; a stack overflow handler that is executed by the processor to dynamically allocate additional memory for the variably-sized kernel memory stack; at least one fixed-size memory stack that is used by the stack overflow handler. - View Dependent Claims (32, 33, 34, 35, 36, 37)
-
-
38. A computer system comprising:
-
a processor having privileged and non-privileged execution modes; a user process or thread having a user memory stack, the user process or thread executing in the non-privileged execution mode; a kernel process or thread having a variably-sized kernel memory stack, the kernel process or thread executing in the privileged execution mode; a memory fault handler that is initiated in response to memory faults; a helper thread that is responsive to notifications from the memory fault handler to allocate additional memory for the variably-sized kernel memory stack; a first fixed-size memory stack that is used by the memory fault handler; and a second fixed-size memory stack that is used by the helper thread. - View Dependent Claims (39)
-
-
40. A computer-readable medium having instructions for performing steps in conjunction with a computer having privileged and non-privileged execution modes, the steps comprising:
-
using a variably-sized kernel memory stack in the privileged execution mode; executing a stack overflow handler that dynamically allocates additional memory for the variably-sized kernel memory stack; using a fixed-size memory stack for the stack overflow handler. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53)
-
-
54. In a computer system, an operating system having a non-privileged execution mode and a privileged execution mode, comprising:
-
a user process that executes in the non-privileged execution mode and invokes both privileged and non-privileged procedure calls; a dynamically resizable user memory stack for storing data associated with an invocation of a non-privileged procedure call; a kernel process that executes in the privileged execution mode and executes privileged procedure calls invoked by the user process; a variably-sized kernel memory stack for storing data associated with the privileged procedure call, wherein the variably-sized kernel memory stack has an allocated size, wherein the allocated size increases dynamically in response to stack utilization. - View Dependent Claims (55, 56)
-
Specification