  ,    (  nice 
       ),    -
 100 ,    . 4.1.

 4.1.    

                    nice       8^0"'

                ,           
                      

        +19                         5  (MIN_TIMESLICE)
        0                           100  (DEF_TIMESLICE)
       -20                         800  (MAX_TIMESLICE)

      : 
  ,       
      ,     
.  ,      -
       : 
  ,    .   -
    ,     
0(1).   ,     ,   
   ,     ,  
 ""   .      -
     .  ,   -
     ,       
   ,     .  
 - scheduler_tick (),    -
  (   10, "   "),  -
 .

struct task struct *task = current; 
struct runqueue *rq = this_rq();

if (!--task->time slice) {

if (!TASK_INTERACTIVE(task) || EXPIRED_STARVING(rq))
enqueue task(task, rq->expired);

else

enqueue task(task, rq->active);

}

        , 
     .  ,     
      .      -
     TASK_INTERACTIVE ().   
   nice ,    "
".    nice (  ),   -
   .     nice,  19,
          -

80                                                                            4