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

我认为PCS对应于用户级线程,SCS对应于内核级线程.
但是下面的代码将线程模式设置为用户模式。
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);我不明白为什么它是用户模式,而不是内核模式。请有人知道这一点,让我知道,谢谢你的阅读。
发布于 2019-12-30 21:26:55
根据手册页:
Linux支持PTHREAD_SCOPE_SYSTEM,但不支持PTHREAD_SCOPE_PROCESS。
如果您看一下glibc的实现:
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抄袭而来的,因为我在发表评论后就找到了答案。
https://softwareengineering.stackexchange.com/questions/301119
复制相似问题