linux操作系统原理

linux:进程抢占,根据时间中断抢占
系统时钟:内部时钟频率,产生时钟中断
 tick:时间解析度,中断次数Hz

 100Hz  每秒100次时间中断
 1000Hz
每次滴答都会产生可抢的时钟中断
A:5ms, 1ms
C:

进程类别:
   交互式进程(I/O)
   批处理进程(CPU)
   实时进程(Real-time),立即响应,优先级最高
   
   CPU密集型(批处理进程):时间片长,优先级低
   IO密集型(交互式进程):时间片短,优先级高


[root@localhost ~]# ps -e -o class,rtprio,nice,pri,nice,cmd
CLS RTPRIO  NI PRI  NI CMD
TS (other)      -   0  19   0 /sbin/init
TS       -   0  19   0 [kthreadd]  凡是加了括号的都为内核线程
FF (fifo)     99   - 139   - [migration/0]
TS       -   0  19   0 [ksoftirqd/0]
FF      99   - 139   - [migration/0]


Liunx优先级:priority
  实时优先级:1-99,数字越小,优先级越低
  静态优先级:100-139,数字越小,优先级越高

 nice值 -20到19,对应100到139,nice值为0对应的为120,默认为0
  实时优先级毕静态优先级高

  nice值:调整静态优先级

调度类别;
  实时进程:
    SCHED FIFO:first in first out 调度fifo的进程
    SCHED_RR: round robin 调度rr的实时调度进程
    SCHED_Other:专门用来调度用户空间进程的,100-139之间的进程

 红帽6上多2个:

     SCHED_BATCH 调度批处理进程

     SCHED_IDLE    调度空闲进程

动态优先级:
  临时性的调高优先级,主要对100-139的进程,对用户空间进程,长时间没有获得时间片或长时间获得时间片,进行调整
   dynamic priority = max (100,min ( static priority - bonus + 5,139)) 动态优先级等于 从100和 min ( static priority - bonus + 5,139)中取最大数

bonus(范围-10到10)   

比如110的优先级   惩罚3级的措施后
    110-(-3)+5 =118
    等于118

手动调整进程优先级:

    100-139 :nice值

      nice N COMMAND

      renice  -n  指定新的nice值  指定PID号

    1-99:

      chrt:

         -p  指定PID

         -f  指定fifo类别

         -r  指定 rr类别

         -b 指定批处理进程

         -i 空闲进程

       chrt -f -p [prio]  PID 调整fifo的优先级

       chrt -r -p [prio]  PID  调整rr的优先级

    

       chrt -f -p [prio] COMMAND 启动命令时指定优先级

       ps -e -o class,rtprio,nice,pri,nice,cmd 查看命令

       chrt -p [prio] COMMAND 调整100-139进程的优先级




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章