LINUX中物理CPU资源的分配是基于线程还是进程?

发布于 2022-10-03 19:32:35 字数 290 浏览 32 评论 0

WINDOWS中CPU的分配基于线程,
所以多线程能支持多CPU,
今天看了老美的UNIX编程,指出UNIX中物理CPU分配是基于进程,
各线程只能在进程内部重新分配CPU资源,或者影射为系统线程才能参与全局CPU资源的竞争。

也就是说,不管一个进程内有多少个用户线程,LINUX核心最多只能分配一个CPU给该进程,
除非将用户线程影射为SYSTEM线程?
是否如此?

难道只能FORK才能利用多CPU?汗啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

不爱素颜 2022-10-10 19:32:35

多线程差不多就等于多进程了. 因为现在系统多数是不分线程和进程的.

送舟行 2022-10-10 19:32:35

在多CPU服务器中
会极大的影响到软件的性能的
所以要搞清楚

并安 2022-10-10 19:32:35

期待高手来解答

迷乱花海 2022-10-10 19:32:35

线程。

是看进程还是线程,关键看线程库的实现模型。1:1 , 1:N, M:N是三种最主要的,linux用的是1:1.

硪扪都還晓 2022-10-10 19:32:35

但是以前听说linux下都是用进程的!!

这个知识点我很模糊,还请高手详细指点啊!

╭⌒浅淡时光〆 2022-10-10 19:32:35

楼主还不了解Multi-Task的真正含义。还有楼上的朋友,现在实在没时间讲,找找资料看吧。process和thread不就是……嗯,单词吗?不同场合代表不同含义,概念混乱是这个领域的特征之一,呵。

冬天旳寂寞 2022-10-10 19:32:35

线程。

是看进程还是线程,关键看线程库的实现模型。1:1 , 1:N, M:N是三种最主要的,linux用的是1:1.

我查看了LINUX新核心,主要修改是重新架构了线程结构,
但我依然不明白,如果我只有一个进程,里面开N个用户线程,
是否能充分利用物理多CPU,还是依然要强制映射为SYSTEM 内核线程才能参与CPU分配,关键问题在这里。线程库是POSIX的,全部采用POSIX标准写的用户线程库,我主要讨厌那个映射

硪扪都還晓 2022-10-10 19:32:35

我的理解是利用多个CPU是没问题的, 哪天写个程序试验一下就可以确认知道了。
简单点的概念:线程是可以相互共享内存地址空间的进程。

---------------------------------
LinuxThreads采用称为1-1模型:每个线程实际上在核心是一个个单独的进程,核心
  的调度程序负责线程的调度,就象调度普通进程。线程是用系统调用clone()创建的
  ,clone()系统调用是fork()的推广形式,它允许新进程共享父进程的存储空间、文
  件描述符和信号处理程序。
  “一对一”模型的优点在于:
  A 最小限度消耗的CPU级多处理技术(每个CPU一个线程);
  B 最小限度消耗的I/O操作;
  C 一种简单和强壮的实现(核心调度程序为我们做了大部分艰难的工作)

韵柒 2022-10-10 19:32:35

我现在就是没有多CPU的PC供我测试啊,
否则也不用这么麻烦了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文