线程在用户进程中是否有自己的时间片?

时间:2013-12-18 14:36:53

标签: linux linux-kernel linux-device-driver embedded-linux

我可以通过一个例子更好地解释这个问题,所以我正在使用它吗?

假设我们的系统是Round-Robin预定系统,每个执行时间间隔为10ms。如果我们在程序中创建两个线程,每个线程是执行10ms还是两者都在并发执行10ms?

如果它们组合10ms然后谁管理线程之间的上下文切换?

注意:我不是在讨论内核线程。

2 个答案:

答案 0 :(得分:0)

在Linux中,线程与系统中的每个其他线程竞争CPU。在POSIX术语中,线程具有系统争用范围。

因此,对于您的示例,每个线程将获得10毫秒。

您可以通过以下方式查看:

  1. 尝试将争用范围属性(通过pthread_attr_setscope)设置为PTHREAD_SCOPE_PROCESS - 会导致错误。
  2. 通过pthread_getattr_np获取一个帖子attrbutes,并通过pthread_attr_getscope进行检查 争用范围为PTHREAD_SCOPE_SYSTEM

答案 1 :(得分:0)

是的他们也有时间片。

在linux中,线程vye用于内存,CPU等资源或正在等待发生一些I / O事件。这些线程经历各种状态,如空闲,活动,准备,具体取决于资源的可用性。这一切都由“流程管理子系统”负责,流程管理子系统由流程计划组成,并管理流程执行及其状态。 人们还可以操纵进程可以保存资源(如CPU)的时间段。 或者可以改变进程的优先级(例如“好”)。

-Sumeet