linux中线程调度和进程调度
假设系统处于运行态的进程有3个:A、B、C,每个进程均有5个线程。
请问,系统是怎么分派调度的?是调度进程还是线程?
如果是调度进程的,那么当进程占有CPU时,进程中的线程又是怎么并发执行的?(就是想知道,各个线程怎么分配进程的时间片的?是不是还有个线程调度程序的???)
请问,系统是怎么分派调度的?是调度进程还是线程?
如果是调度进程的,那么当进程占有CPU时,进程中的线程又是怎么并发执行的?(就是想知道,各个线程怎么分配进程的时间片的?是不是还有个线程调度程序的???)
作者: shaohui973 发布时间: 2011-02-10
LINUX下面 线程 是 lightweight process就是轻量级的进程。 一句话线程是共享了部分资源(地址空间、文件句柄、信号量等等)的进程。所以线程也按照进程的调度方式来进行调度。
作者: cluter 发布时间: 2011-02-10
回复 cluter
那比方说,A进程的一个线程由于某种原因,放弃了CPU的使用,调度以下两种情况:
1. 如果下一个调度的线程是B进程中的一个线程
2. 如果下一个调度的线程是同一个进程的其他线程
这两种情况下有什么不同?
那比方说,A进程的一个线程由于某种原因,放弃了CPU的使用,调度以下两种情况:
1. 如果下一个调度的线程是B进程中的一个线程
2. 如果下一个调度的线程是同一个进程的其他线程
这两种情况下有什么不同?
作者: shaohui973 发布时间: 2011-02-10
这个问题首先要区分你说的线程是内核线程还是用户线程。
对内核线程,linux内核会把它当作进程来看待和调度。
对用户线程,调度的策略则与具体使用的线程库的实现有关系。
对内核线程,linux内核会把它当作进程来看待和调度。
对用户线程,调度的策略则与具体使用的线程库的实现有关系。
作者: guocslock 发布时间: 2011-02-10
linux 通过轻量级进程实现线程,最大的好处:设计简单。 线程调度直接使用进程调度就可以了,没必要再搞一个进程内的线程调度器。 至于代码段,数据段,信号量,这些通过同用一个内存映射就可以了。
作者: tuibo 发布时间: 2011-02-10
在多核条件下,线程创建后是否立即分配到不同的核上去,怎样分配到不同的核上去跑,这个问题值得探究
作者: tuibo 发布时间: 2011-02-10