System and method for implementing shared locks between kernel and user space for synchronize access without using a system call to the kernel
First Claim
Patent Images
1. An apparatus comprising:
- one or more processors configured to implement a plurality of operations for an operating system (OS) platform including a kernel and a user application;
one or more shared physical memory blocks that are accessible to both a thread of the kernel and a user thread of the user application; and
one or more shared locks that are manageable by both the kernel thread and the user thread,wherein each of the shared locks corresponds to at least one of the shared physical memory blocks,wherein the user application is configured to synchronize accesses to the shared physical memory blocks between the user thread and the kernel thread by accessing the locks via the user thread without using a system call to the kernel,wherein the kernel thread is configured to set at least one of the shared locks prior to accessing the corresponding shared physical memory block to lock out access by the user thread,wherein the user thread is configured to set at least one of the shared locks prior to accessing the corresponding shared physical memory block to lock out access by the kernel thread,wherein the user application shares the shared physical memory blocks by mapping physical memory block data from a kernel space into a user space and operating on the mapped data,wherein the operations for the OS include a plurality of kernel threads and a plurality of user threads that are categorized according to priority,wherein the kernel threads that have higher priority are allowed to remove the locks set by the user threads that have lower priority by terminating the user threads, andwherein the shared locks are initialized in a kernel space and used by the user threads and the kernel threads.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus comprising one or more processors configured to implement a plurality of operations for an operating system (OS) platform including a kernel and a user application, one or more shared resource blocks by the kernel and the user application, and one or more shared locks by the kernel and the user application corresponding to the shared resource blocks, wherein the user application is configured to synchronize accesses to the shared resource blocks between a user thread and a kernel thread by directly accessing the locks without using a system call to the kernel.
-
Citations
7 Claims
-
1. An apparatus comprising:
-
one or more processors configured to implement a plurality of operations for an operating system (OS) platform including a kernel and a user application; one or more shared physical memory blocks that are accessible to both a thread of the kernel and a user thread of the user application; and one or more shared locks that are manageable by both the kernel thread and the user thread, wherein each of the shared locks corresponds to at least one of the shared physical memory blocks, wherein the user application is configured to synchronize accesses to the shared physical memory blocks between the user thread and the kernel thread by accessing the locks via the user thread without using a system call to the kernel, wherein the kernel thread is configured to set at least one of the shared locks prior to accessing the corresponding shared physical memory block to lock out access by the user thread, wherein the user thread is configured to set at least one of the shared locks prior to accessing the corresponding shared physical memory block to lock out access by the kernel thread, wherein the user application shares the shared physical memory blocks by mapping physical memory block data from a kernel space into a user space and operating on the mapped data, wherein the operations for the OS include a plurality of kernel threads and a plurality of user threads that are categorized according to priority, wherein the kernel threads that have higher priority are allowed to remove the locks set by the user threads that have lower priority by terminating the user threads, and wherein the shared locks are initialized in a kernel space and used by the user threads and the kernel threads. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus comprising:
-
one or more processors configured to implement a plurality of operations for an operating system (OS) platform including a kernel and a user application; one or more shared physical memory blocks that are accessible to both a thread of the kernel and a user thread of the user application; and one or more shared locks that are directly manageable by both the kernel thread and the user thread, wherein each of the shared locks corresponds to at least one of the shared physical memory blocks, wherein the user application is configured to synchronize accesses to the shared physical memory blocks between the user thread and the kernel thread by directly accessing the locks via the user thread without using a system call to the kernel, wherein the kernel thread is configured to set at least one of the shared locks prior to accessing the corresponding shared physical memory block to lock out access by the user thread, wherein the user thread is configured to set at least one of the shared locks prior to accessing the corresponding shared physical memory block to lock out access by the kernel thread, wherein the one or more shared physical memory blocks comprise a send buffer and a receive buffer, wherein the one or more shared locks comprise a send buffer lock and a receive buffer lock, wherein the user thread is a consumer user thread, wherein the kernel thread is a producer kernel thread, wherein the user application is associated with the consumer user thread, wherein the kernel is associated with the producer kernel thread, wherein the receive buffer is shared by the consumer user thread and the producer kernel thread, wherein the consumer user thread is configured to access the receive buffer and manage the receive buffer lock, wherein the consumer user thread is not configured to access the send buffer, wherein the consumer user thread is not configured to manage the send buffer lock, wherein the producer kernel thread is configured to access the receive buffer and manage the receive buffer lock, wherein the producer kernel thread is not configured to access the send buffer, and wherein the producer kernel thread is not configured to manage the send buffer lock.
-
Specification