Operating System With A Single Kernel Stack Per Processor
Abstract
In one embodiment, a method includes storing thread state information associated with the first user-mode thread into a memory space associated with the first user-mode thread when executing in kernel space in response to a first system call by a first-user mode thread, executing first operations corresponding to the first system call on a processor, where data associated with executing the first operations are stored on a kernel stack associated with the processor, determining to pause the execution of the first operations, enqueuing a workload on a schedule queue for resuming execution of the first operations in a future, where the workload comprises data associated with executing a remainder of the first operations, and executing second operations corresponding to a second system call from a second user-mode thread on the processor, where data associated with executing the second operations are stored on the kernel stack associated with the processor.
Claims
exact text as granted — not AI-modified1 - 20 . (canceled)
21 . A method comprising, by a kernel-mode thread of an operating system of a computing device:
executing first operations corresponding to a first system call, wherein data associated with executing the first operations are stored on a kernel stack associated with a processor; determining to pause the execution of the first operations; enqueuing a workload on a schedule queue for resuming the execution of the first operations in a future, wherein the workload comprises data associated with executing a remainder of the first operations; and executing second operations corresponding to a second system call, wherein data associated with executing the second operations are stored on the kernel stack associated with the processor.
22 . The method of claim 21 , wherein a processor of the computing device is associated with only one kernel-mode thread.
23 . The method of claim 22 , wherein the first operations and the second operations are executed by the kernel-mode thread running on the processor.
24 . The method of claim 21 , wherein determining to pause the execution of the first operations comprises calling a scheduler function, wherein the scheduler function makes a schedule decision among a plurality of workloads in the schedule queue.
25 . The method of claim 24 , wherein the schedule decision is made based on one or more scheduling policies.
26 . The method of claim 21 , wherein the operating system is a microkernel-based operating system, wherein user-mode threads in the operating system comprise user application threads and service-providing threads.
27 . The method of claim 26 , wherein a first service-providing thread provides a particular service to one or more user-mode threads.
28 . The method of claim 27 , wherein a request for the particular service from one of the one or more user-mode threads to the first service-providing thread is communicated through one of available Inter-Process Communication (IPC) mechanisms.
29 . The method of claim 28 , wherein a result of the particular service from the first service-providing thread to the one of the one or more user-mode threads is communicated through one of the available IPC mechanisms or a shared memory.
30 . The method of claim 26 , wherein the service-providing threads comprise device drivers.
31 . The method of claim 26 , wherein the user application threads are implemented with an event-driven architecture.
32 . The method of claim 21 , wherein the first system call is made by a first user-mode thread, wherein thread state information associated with the first user-mode thread is stored into a memory space associated with the first user-mode thread before the first operations are executed, and wherein the thread state information associated with the first user-mode thread is a snapshot of register values associated with the processor when the first user-mode thread makes the first system call.
33 . The method of claim 32 , wherein the memory space associated with the first user-mode thread is a Thread-Local Storage (TLS) associated with the first user-mode thread or a Thread Control Block (TCB) associated with the first user-mode thread.
34 . The method of claim 21 , wherein the second system call is made by a second user-mode thread, and wherein the second operations comprise returning to the second user-mode thread.
35 . The method of claim 34 , wherein returning to the second user-mode thread comprises:
retrieving thread state information associated with the second user-mode thread from a memory space associated with the second user-mode thread; returning results of the second operations to the second system call; and restoring registers of the processor with the retrieved thread state information.
36 . One or more computer-readable non-transitory storage media embodying software that is operable by a kernel-mode thread of an operating system of a computing device when executed to:
execute first operations corresponding to a first system call, wherein data associated with executing the first operations are stored on a kernel stack associated with a processor; determine to pause the execution of the first operations; enqueue a workload on a schedule queue for resuming the execution of the first operations in a future, wherein the workload comprises data associated with executing a remainder of the first operations; and execute second operations corresponding to a second system call, wherein data associated with executing the second operations are stored on the kernel stack associated with the processor.
37 . The media of claim 36 , wherein a processor of the computing device is associated with only one kernel-mode thread.
38 . The media of claim 37 , wherein the first operations and the second operations are executed by the kernel-mode thread running on the processor.
39 . The media of claim 36 , wherein determining to pause the execution of the first operations comprises calling a scheduler function, wherein the scheduler function makes a schedule decision among a plurality of workloads in the schedule queue.
40 . A computing device comprising:
one or more processors; and one or more computer-readable non-transitory storage media coupled to one or more of the one or more processors and comprising instructions operable when executed by one of the one or more processors to cause a kernel-mode thread of an operating system of the computing device to:
execute first operations corresponding to a first system call, wherein data associated with executing the first operations are stored on a kernel stack associated with a processor among the one or more processors;
determine to pause the execution of the first operations;
enqueue a workload on a schedule queue for resuming the execution of the first operations in a future, wherein the workload comprises data associated with executing a remainder of the first operations; and
execute second operations corresponding to a second system call, wherein data associated with executing the second operations are stored on the kernel stack associated with the processor.Join the waitlist — get patent alerts
Track US2021286628A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.