Tim*_*Tim 5 linux process lightweight thread linux-kernel
据我所知,在 Linux 内核中,
该结构task_struct
代表线程,即轻量级进程,但不是进程。
进程不由任何结构表示,而是由共享相同线程组 ID 的线程组表示。
那么操作系统概念中的以下内容是否正确?
Linux 还提供了使用
clone()
系统调用创建线程的能力。但是,Linux 不区分进程和线程。事实上,Linux 使用术语任务——而不是进程或线程——来指代程序中的控制流。
这是什么意思?
谢谢。
\n\n\nLinux 还提供了使用clone() 系统调用创建线程的能力。然而,Linux 并不区分进程和线程。事实上,当引用程序中的控制权时,Linux 使用术语任务\xe2\x80\x94,而不是进程或线程\xe2\x80\x94。
\n
我们需要区分实际的实现和你看到的表面。
\n\n从用户(系统软件开发人员)的角度来看,有一个很大的区别:线程共享许多公共资源(例如内存映射 - 当然除了堆栈 - 文件描述符)。
\n\n在内部(警告:不精确的挥手参数)Linux内核1)正在使用它手头的东西,即进程和线程的相同结构,其中对于单个进程的线程,它不会重复某些东西,而是引用一个其单个实例(内存映射描述)。
\n\n因此,在直接表示线程或进程的层面上,基本结构没有太大区别,问题在于如何处理信息。
\n\n您可能也有兴趣阅读线程在 Linux 上实现为进程吗?
\n\n1)请记住,现在的“Linux”主要代表整个操作系统,而实际上它只是内核本身。
\n 归档时间: |
|
查看次数: |
1836 次 |
最近记录: |