首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程调度(系统和进程)

线程调度(系统和进程)
EN

Software Engineering用户
提问于 2015-10-28 19:20:57
回答 1查看 2.7K关注 0票数 6

我读过亚伯拉罕·西尔伯沙茨()编写的操作系统概念第八版。但是,我不理解P线程的调度。

  • 线程库在LWP(轻量级进程)上调度用户级线程。这是进程-竞争范围(PCS),因为争用发生在属于同一进程的线程之间。
  • 操作系统在CPU上调度内核线程。这是系统竞争范围(SCS),因为争用发生在属于系统的所有线程之间。

我认为PCS对应于用户级线程,SCS对应于内核级线程.

但是下面的代码将线程模式设置为用户模式。

代码语言:javascript
复制
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);

我不明白为什么它是用户模式,而不是内核模式。请有人知道这一点,让我知道,谢谢你的阅读。

EN

回答 1

Software Engineering用户

发布于 2019-12-30 21:26:55

根据手册页:

Linux支持PTHREAD_SCOPE_SYSTEM,但不支持PTHREAD_SCOPE_PROCESS

如果您看一下glibc的实现:

代码语言:javascript
复制
0034   /* Catch invalid values.  */
0035   switch (scope)
0036     {
0037     case PTHREAD_SCOPE_SYSTEM:
0038       iattr->flags &= ~ATTR_FLAG_SCOPEPROCESS;
0039       break;
0040 
0041     case PTHREAD_SCOPE_PROCESS:
0042       return ENOTSUP;
0043 
0044     default:
0045       return EINVAL;
0046     }

这个答案是从https://unix.stackexchange.com/questions/287568/pthread-scheduler-scope-variables抄袭而来的,因为我在发表评论后就找到了答案。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/301119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档