 down_trylock ()     
.    ,     -
 .         
  .

       up ().
  .

/*       mr sem  

 ,  1 */
static DECLARE_MUTEX(mr_sem) ;

if (down interruptible(&mr sem))

/*       */

/*   ... */

/*   */
up(&mr sem) ;

        . 9.5.

 9.5.     

                                 

sema_init (struct semaphore *, int)        -
      
 

init_MUTEX (struct semaphore *)            -
      
 1

init_MUTEX_LOCKED (struct semaphore *)    -
       -
 0 (..   )

down_interruptible (struct semaphore *)      -
    , 
     
 (contended)

down (struct semaphore *)                     -
    , 
     
 (contended)

down_trylock (struct semaphore *)            -
   , 
     
 (contended)

up (struct semaphore *)                      

  ,   

194                                                                    9