

        
   .  -   
,        ,      -
      .  ,  ,
,      ,  
       ,  -
 (  )    .  -
   ,        -
   .  ,     ,
   ,   . ,   
        -
,       ,     
    ,    .

 - . ,    ,  
     . 
,      ,  -
   (wake up)    ,   -
  .        
 (  nice  19).  ,    
  -  .       --
  .     -
    .   ,   -
,           
   .  ,   ,   
      
 (       -
   ).

     .      
ksoftirqd/n,    .      -
     ksoftiqd/0  ksoftirqd/1. To,    -
   , ,      
,         .
    ,    ,   -
.

for (;;) {

set_task_state(current, TASK_INTERRUPTIBLE) ;

add_wait_queue(&cwq->more work, Swait);

if (list empty(&cwq->worklist))

schedule();

else

set_task_state(current, TASK_RUNNING) ;

remove_wait_queue(&cwq->more_work, Swait);

if (!list_empty(&cwq->worklist))
run workqueue(cwq);

>

                                       147