2013-10-02 107 views
0

克隆(Linux)在PThreads创建用户级线程时创建内核级线程。我觉得有些操作系统实际上并不支持用户级别的线程。举个例子: 在双核处理器上,如果我有2个正在运行的进程,其中第一个有3个线程,第二个有4个线程,那么CPU的时隙将不会被分成7个相等的时隙,一个线程但是一个核心将被分配给进程1并在其3个线程之间共享,而另一个核心将被分配给进程2并在其4个线程之间共享。内核级和用户级线程

虽然如果我们使用克隆(在linux上)而不是PThreads。然后,双核处理器的时间将在不同的内核线程之间平均分配(7)。

这是真的吗?

回答

1

这里是NPTL library最常用的今天的描述:

NPTL是一个所谓的1×1线程库,在该线程以通过 用户创建(通过在pthread_create()库函数)在1-1 对应内核中的可调度实体(任务,在 Linux的情况下)。这是最简单的线程实现。

如果它们是内核可调度的实体,那么它们可以在任何处理器上单独调度,并且您的语句不正确。

+0

感谢您的回复。我说过:(我感觉有些操作系统实际上并不支持用户级线程)。我的意思是一些操作系统不是全部。让我以不同的方式重述我的问题: 是否有任何操作系统,我根据NPTL逻辑(这是为Linux而设计)解释为NOT – Mustafa

+0

当然有,但我正在回答关于pthreads是用户级别的部分线程(今天不是)。你可以说得更详细点吗?我无法给你列出每个架构上现有的每个操作系统。 –

+0

我不需要每一个操作系统!我只需要一个例子。我问是否有任何操作系统在我的逻辑中工作(不是全部)。我的主要目的是在一个方面显示内核级线程比用户级线程更好,无论何时执行程序,执行都将与所有(当前)操作系统将考虑内核级线程的方式相同。但对于用户级线程,一些操作系统按照我所说的工作,而其他一些则用作NPTL逻辑。这是我的目标。所以,一个OS的例子就足够了。 Regards – Mustafa

相关问题