我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:多盈娱乐注册 > 多处理器分配 >

操作系统时间片是按进程or线程分配?

归档日期:08-08       文本归类:多处理器分配      文章编辑:爱尚语录

  百度知道电脑/网络操作系统/系统故障Windows

  如题,如果按线程分配,那么进程线程数量够多,它将占据多数CPU时间?如果按进程分配,线程还有什么用呢?...

  如题,如果按线程分配,那么进程线程数量够多,它将占据多数CPU时间?如果按进程分配,线程还有什么用呢?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部每个进程都有一个或多个线程。现代操作系统是分时操作系统,这就需要线程的调度,否则,就像早期的windows操作系统一样,某个程序一直占用CPU不释放,导致死机。大部分线程都会在指定的时间片得到CPU时间。有时候,会有这样的一种情况:A线程得到CPU控制权,它抓着不放!就导致上一段说的死机。

  B线程得到CPU控制权,此时,操作系统有一个更加重要的C线程要执行,但是B线程还没执行完。

  A线程得到CPU控制时间,此时,B线程需要立即处理一些任务,而且,B线程的优先级比A高,因此,CPU会中断 A线程 ,将CPU时间交给 B线程 ,当B线程执行完毕后,CPU会恢复A线程。

  追问大哥你说的挺多,没回答我的问题啊...追答上面很明显能够得到答案了啊!线程才是执行指令的,进程,它仅仅是一个或多个线程的集合啊!换句话说,得到CPU时间的是线程。

  追问那么某一个进程线程数量够多,它将占据多数CPU时间?追答这个可不一定,正在执行的线程是可以被中断的。进程的线程数量多,并不意味着它能得到更多的CPU时间。

  追问那线程优先级是在进程内的还是全局的?如果是全局的那和进程优先级之间有什么关系呢?我的理解是时间按进程的优先级分,轮到某进程就按进程内的线程优先级在分追答每个线程都有一个“优先级”,范围是0~31,0为最低优先级,31为最高优先级。当系统决定哪个线程需要调度的时候,首先查看是否存在优先级为31的可调度线程,如果存在,就从中选择一个进行调度。当该线程的时间片到达之后,系统查看是否存在另一个优先级为31的可调度线程,如果存在,就调度它。只要有一个可调度的优先级为31的线程存在,那么系统绝对不会调度优先级为0~30的线程,这样会导致其他线程“饥饿”。高优先级线程往往“打断”低优先级线程的执行。比如,当一个优先级为15的线程正在运行,如果此时系统发现一个优先级比15高的线程可以调度,那么该高优先级线程会“打断”那个低优先级线程的执行,哪怕低优先级的时间片才过了一半。另外,当系统引导的时候,系统创建一个特殊的线程,称为“zero page”(0页)线程,该线程是整个系统中唯一一个优先级为0(最低)的线程。当系统没有任何线程需要执行的时候,该线程负责将系统中所有RAM页面清零(也就是资源回收)。线程优先级有一个抽象层的概念。==================

本文链接:http://cakesbyrita.net/duochuliqifenpei/1124.html