- 主题:Linux的任务调度,进程和线程有区别吗?
假设A进程有100个线程,B进程有1个线程。那么系统调度看待这101个线程是完全平等的吗?这样的话,进程多建线程,岂不是能获得更多的运行时间?
--
FROM 45.78.10.*
IO bound还是CPU bound,这个由啥决定?
【 在 tgfbeta 的大作中提到: 】
: 这不得看你的任务是IO bound还是CPU bound吗?而且还有调度策略的问题。
--
FROM 45.78.10.*
你的意思,A进程和B进程占用运行时间总体是一样的?
【 在 missdeer 的大作中提到: 】
: 线程越多,系统用于线程调度的开销越多,给予A进程的运行时间可能反而变少了
:
--
FROM 45.78.10.*
那就是说,linux任务调度,只有线程,没有进程?
【 在 martinjspace 的大作中提到: 】
: 好像就是这样的。
:
--
FROM 120.245.118.*
我想知道的就是Linux这块具体怎么实现的了?
【 在 martinjspace 的大作中提到: 】
: linux线程也叫轻量级进程lwp,这个是调度的基本单位。
: 一个多线程程序就是多个共享地址空间的轻量级进程组成的。
: 理论上调度器工作时也可以考虑整个进程包含的使用的所有线程的总时间,这个就需要具体看调度器的实现了。
: ...................
--
FROM 45.78.10.*
A为啥肯定多?
【 在 typo 的大作中提到: 】
: Linux内核的调度策略还可以设置可以调整呢。要完整掌握,看书看代码了,BBS上解决不了。
: 要简单的说A 100个计算线程满负荷,B 1个计算线程满负荷,A总共拿到的运行时间肯定多啊
:
--
FROM 223.104.38.*
清楚了,Linux调度就是以线程为基础,并未对进程做相关约束。
【 在 wangstone123 的大作中提到: 】
: 能获得的时间是多方面因素决定的,调度策略,cgroup,带宽控制
: 调度的基本单位是线程,线程可理解是共享内存空间的进程
: A进程的所有线程和B进程的所有线程如果有相同的配置(优先级,调度策略,cgroup分组等),线程任务也是类似的(io cpu相当),假使都是cfs调度的话,那每个线程分到的时间是差不多的
: ...................
--
FROM 45.78.10.*