diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4c730524ab6..93a2e3b2ee9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

NuttX RTOS Porting Guide

-

Last Updated: March 8, 2009

+

Last Updated: March 13, 2009

@@ -1629,9 +1629,13 @@ The system can be re-made subsequently by just typing make.
  • CONFIG_PRIORITY_INHERITANCE: Set to enable support for priority inheritance on mutexes and semaphores. + Priority inheritance is a strategy of addessing + priority inversion. + Details of the NuttX implementation of priority inheritance is + discussed elsewhere.
  • - CONFIG_SEM_PREALLOCHOLDERS: : This setting is only used + CONFIG_SEM_PREALLOCHOLDERS: This setting is only used if priority inheritance is enabled. It defines the maximum number of different threads (minus one) that can take counts on a semaphore with priority inheritance support. @@ -1640,7 +1644,7 @@ The system can be re-made subsequently by just typing make. than two threads participate using a counting semaphore.
  • - CONFIG_SEM_NNESTPRIO. : If priority inheritance is enabled, + CONFIG_SEM_NNESTPRIO: If priority inheritance is enabled, then this setting is the maximum number of higher priority threads (minus 1) than can be waiting for another thread to release a count on a semaphore. This value may be set to zero if no more than one thread is expected to diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 5869beedf99..de3e370b871 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

    NuttX Operating System

    User's Manual

    by

    Gregory Nutt

    -

    Last Updated: March 8, 2009

    +

    Last Updated: March 13, 2009

    @@ -1695,8 +1695,9 @@ interface of the same name. and, as a result, can adversely affect system response times.

    - Priority Inversion. Proper use of semaphores avoids the issues of - sched_lock(). However, consider the following example: + Priority Inversion. + Proper use of semaphores avoids the issues of sched_lock(). + However, consider the following example:

    1. Some low-priority task, Task C, acquires a semphore in order to get exclusive access to a protected resource.
    2. @@ -1732,6 +1733,77 @@ interface of the same name. acquired, or
    3. Use sched_lock() in the low-priority task.
    4. +

      + Priority Inheritance. + As mentioned, NuttX does support priority inheritance provided that + CONFIG_PRIORITY_INHERITANCE is defined in your OS configuration file. + However, the implementation and configuration of the priority inheritance feature + is sufficiently complex that more needs to be said. + How can a feature that can be described by a single, simple sentence require such + a complex implementation: +

      +

      POSIX semaphore interfaces: