-
公开(公告)号:US20210365389A1
公开(公告)日:2021-11-25
申请号:US17397966
申请日:2021-08-09
Applicant: Apple Inc.
Inventor: Jeremy C. ANDRUS , Joseph R. Auricchio , Russell A. BLAINE , Daniel A. CHIMENE , Simon M. DOUGLAS , Landon J. FULLER , Yevgen GORYACHOK , John K. KIM-BIGGS , Arnold S. LIU , James M. MAGEE , Daniel A. STEFFEN , Roberto G. YEPEZ
Abstract: Embodiments described herein provide techniques to manage drivers in a user space in a data processing system. One embodiment provides a data processing system configured perform operations, comprising discovering a hardware device communicatively coupled to the communication bus, launching a user space driver daemon, establishing an inter-process communication (IPC) link between a first proxy interface for the user space driver daemon and a second proxy interface for a server process in a kernel space, receiving, at the first proxy interface, an access right to enable access to a memory buffer in the kernel space, and relaying an access request for the memory buffer from the user space driver daemon via a third-party proxy interface to enable the user space driver daemon to access the memory buffer, the access request based on the access right.
-
公开(公告)号:US20160357600A1
公开(公告)日:2016-12-08
申请号:US14871837
申请日:2015-09-30
Applicant: Apple Inc.
Inventor: Daniel A. CHIMENE , Daniel A. STEFFEN , James M. MAGEE , Russell A. BLAINE , Shantonu SEN
CPC classification number: G06F9/4818 , G06F9/4881 , G06F9/5011 , G06F9/526 , G06F2209/485
Abstract: Disclosed herein are systems, methods, and computer-readable media directed to scheduling threads in a multi-processing environment that can resolve a priority inversion. Each thread has a scheduling state and a context. A scheduling state can include attributes such as a processing priority, classification (background, fixed priority, real-time), a quantum, scheduler decay, and a list of threads that may be waiting on the thread to make progress. A thread context can include registers, stack, other variables, and one or more mutex flags. A first thread can hold a resource with a mutex, the first thread having a low priority. A second thread having a scheduling state with a high priority can be waiting on the resource and may be blocked behind the mutex held by the first process. A scheduler can execute the context of the lower priority thread using the scheduler state of the second, higher priority thread. More than one thread can be waiting on the resource held by the first thread. A “pusher list” of threads that are waiting on the first thread can be associated with the first thread. The scheduler can use the pusher list to identify threads that need the first thread to make progress until the first thread releases the resource and mutex. Then, the scheduler can use the pusher list to identify threads that are now runnable and make immediate use of the resource.
Abstract translation: 这里公开的是指向在多处理环境中调度线程的系统,方法和计算机可读介质,其可以解决优先级反转。 每个线程都有调度状态和上下文。 调度状态可以包括诸如处理优先级,分类(背景,固定优先级,实时),量子,调度器衰减和可能在线程上等待进行的线程列表的属性。 线程上下文可以包括寄存器,堆栈,其他变量和一个或多个互斥标志。 第一个线程可以使用互斥体保存资源,第一个线程具有低优先级。 具有高优先级的调度状态的第二线程可以等待资源并且可能被阻止在由第一进程所保持的互斥体之后。 调度器可以使用第二较高优先级线程的调度器状态来执行较低优先级线程的上下文。 多个线程可以等待第一个线程持有的资源。 在第一个线程上等待的线程的“推送器列表”可以与第一个线程相关联。 调度程序可以使用推送器列表来识别需要第一个线程以在第一个线程释放资源和互斥体之前进行的线程。 然后,调度程序可以使用推送器列表来识别现在可运行的线程,并立即使用该资源。
-