进程调试

多任务系统:
1.非抢占式多任务:除非主进程自己主动停止运行,否则它会一直执行。进程主动挂起自己的操作称为让步(yielding)
2.抢占式多任务:由调度程序决定什么时候停止一个进程的运行以便其他进程能够得到执行机会。这个强制的挂起动作就叫作抢占(preemption)

进程优先级:
1.nice值:-20到+19,默认为0,值越大优先级越低
2.实时优先级:其值可配置,0到99,任何实时进程的优先级都高于普通的进程

进程抢占:
1.linux当一个进程进入TASK_RUNNING状态,内核会检查它的优先级是否高于当前正在运行的进程,如果高于,调度程序会被唤醒,抢占当前运行的进程并运行新进程
2.当一个进程的时间片为0时,它会被抢占,调度程序被唤醒选择一个新的进程

可执行队列:调度程序中最基本的数据结构,有两个优先级数组,一个活跃的和一个过期的,每个可投入运行的进程都惟一的属于一个可执行队列

优先级数组:是一种能提供O(1)级算法复杂度的数据结构。使可运行处理器的每一种优先级都包含一个相应的队列,而这些队列包含对应优先级上的可执行进程链表

上下文切换:从一个可执行进程切换到另一个可执行进程

进程上下文:一种内核所处的操作模式,此时内核代表进程执行系统调用,运行内核线程等。

猜你喜欢

转载自xiangjie88.iteye.com/blog/1056860