Jump to content

Funnel (concurrent computing)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Nekiko (talk | contribs) at 00:37, 12 January 2010 (Created page). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

In Computer Science, a funnel is a synchronization primitive used in kernel development to protect system resources. First used on Digital UNIX as a way to "funnel" device driver execution onto a single processor, funnels are now used in the Mac OS X kernel to serialize access to the BSD portion of xnu. [1]

The kernel funnel is a mutex that prevents more than one thread from running inside the BSD portions of the kernel at the same time. Each thread acquires the kernel funnel when it enters the BSD portion of the kernel, and releases it when it leaves. In addition, if a thread blocks (sleeps) while holding a funnel, it automatically drops the funnel, and thus allows other threads to enter the kernel.

Notes

For notes referring to sources, see bibliography below.

  1. ^ Singh 07, pp. 1223-1229

References

  • Singh, Amit (2007). Mac OS X Internals, A Systems Approach. Boston, Massachusetts: Addison-Wesley. ISBN 0-321-27854-2.