Linux如何处理线程和进程调度

我想了解linux如何处理进程调度和线程调度。 我读过linux可以调度进程和线程。

我的问题是:Linux有一个线程调度程序和一个进程调度程序? 如果是,他们如何合作?

Solutions Collecting From Web of "Linux如何处理线程和进程调度"

Linux内核调度程序实际上是调度任务,而这些是线程或(单线程)进程。

因此,在调度程序的上下文中, 任务 (内核中的task_struct )就是被调度的东西,可以是像kworkerkswapd这样的内核线程 ,也可以是多线程进程的某个用户线程 (如firefox ),或者单线程进程的单线程 (如bash ),用单线程进程标识。

一个进程是一个非空的有限集(有时是一个单一的) 线程共享相同的虚拟地址空间 (和其他东西,如文件描述符 , 工作目录等等)。 另见凭证(7) , 能力(7)等….

Linux上的线程是由Linux专用克隆系统调用(也可用于在Linux上创建进程)创建的内核线程 (由内核管理,也创建自己的线程)。 pthread_create函数可能是在NPTL和Gnu Libc (它集成了Linux上的NPTL)和musl-libc的内部(在Linux上) 构建的 。

Linux下的内核线程被实现为共享资源的进程。 调度程序不区分线程和进程

有关详细信息,请参阅此处: http : //www.linuxquestions.org/linux/articles/Technical/Linux_coreel_Thread

在LINUX下没有线程的概念,要使LINUX POSIX投诉线程不过是另一个进程。当你试图获得一个进程ID的时候,它会在任何线程下显示领导进程ID。 有关更多详细信息,请参阅本书“了解LINUX内核”。希望