微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

Linux调度器是否喜欢在fork()之后运行subprocess?

Tickless Linux内核是否引入了基准时序变化?

调度algorithm如何确定进程的types(I / O,cpu绑定)

了解Windows系统调用调度程序?

CFS中vruntime的概念是什么?

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

因此,在调度程序的上下文中, 任务 (内核中的task_struct )就是被调度的东西,可以是像kworker或kswapd这样的内核线程 ,也可以是多线程进程的某个用户线程 (如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内核”。希望

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐