Linux进程理解( 八 )


这里面有很多,我们现在只需要了解三个.
t 状态
t进程是也是暂停状态,只不过它是调试的时候遇到的断点的状态.
总结
到这里我们已经把Linux状态全部谈完,这里总结一下.我们需要把理论的状态和实际的状态组合到一起,下面是一张图片.
优先级
所谓的优先级是我们排队使用某些东西,就像我们在食堂吃饭,食物是够的,但是我们却不能一拥而上,原因就是窗口有点少,所以我们需要排队.对于CPU也是如此,我们电脑的的CPU个数远远低于进程的个数,那么进程也要排队.我们就想问哪个进程可以先进入CPU,哪个不先进入?这就是调度器的事了.这就是进程的优先级.我们可以查看进程的优先级.关于优先级我们不惜细谈.
查看优先级
我们直接进入任务管理器,top.,找到相应得到pid就可以了.
[bit@Qkj 08_12]$ top
我们会发现,Linux的优先级分为两个部分,其中PRI 就是优先级
修改优先级
这里我们不建议这么做,但是需要了解一下这里面的原理.这里我们就可以来看看什么事NI了,我们通过修改NI来间接的修改优先级.
注意这个优先级需要在超级用户权限下进行.
我们想要给NI一个-100的值,你认为自己的PRI可以变得很低,但是实际情况也是如此吗.
我们看看你就会发现.为何NI的值是-20,我们我们明明给的是-100啊,这里就要谈了,造作系统很不想让你修改优先级,所以设置了超级用户权限,你还是要改,我就把NI的设置到一个范围,尽量让ide修改不破坏调度器的平衡,这里的NI取值[-20,19].也就是说我们的优先级的范围就是[60,99].
这里我们还要说一个结论,新的优先级等于老的PRI加上NI的值,我们看一看.
你们就会发现不对啊,我们重新给了NI是10,原来的PRI是60,这里按照结论新的应该是70啊,为何事90.这里是因为每一次我们修改优先级,进程的PRI都会被重置为80.也就是很大程度上老的PRI就是80.
竞争性 & 独立性
这里我们谈一下其他的概念,都是比较容易理解的.
竞争性
我们都知道一般的电脑只有一个CPU , 一个CPU只能运行一个进程 , 但是我们的电脑上跑的进程可不是就几个 , 那么进程之间是具有竞争属性的 。为了高效完成任务 , 更合理竞争相关资源,便具有了优先级,这也是优先级出现的原因.
独立性
这个我们还没有办法好好解释,这里先给大家一个结论.每一个进程都有自己独立的空间和资源,进程与进程之间互不干扰.这就是如果你在打游戏和听歌,发现游戏软件崩了,但是却不会影响你的听歌软件,至于这个机制是如何实现的,这里我们先不谈.
并行 & 并发
这两个概念是计算机两种不同的实现机制,一般还是并发的比例比较大点.
并行
如果你的计算机配置很高,存在多个CPU,这里以两个举例子.存在两个CPU,那么操作系统可以同时运行两个进程,每一个COU都有一个对应的运行队列.
并发
并发进程是如果的的电脑的只有一个CPU,我们的进程只能一个一个来这个CPU里面执行.
不要以为一个进程只能在CPU当中跑完才可以下来,我们大部分的操作系统都是分时的.系统会给每一个进程一个时间片的概念,再一次调度周期中,我们对进程进行交叉调度,让进程的代码得到相应的推进,这就是并发.
我们这里就开始疑惑了,如果我们进程是不断被切换的,那么这个时间是不是被有点长.是的,这个时间确实有点长,但是这个长是对于操作系统而言的,对于我们人来说这就很短了.这也是我们平常觉得多个进程在"同时"执行.