Linux除了轻量级进程之外还有“重量级进程”的概念吗?

Linux除了轻量级进程之外还有“重量级进程”的概念吗?

在Linux中,

  1. 轻量级流程的定义是什么?

    轻量级进程是否定义为由clone() 系统调用创建的任何事物? (这是我从《Understanding the Linux Kernel》一书中的理解)

    常规流程是轻量级流程吗? (我猜是)

  2. Linux有一个概念叫“重量级进程“?(我猜这意味着常规流程,所以重量级流程仍然是轻量级流程?)

谢谢。

答案1

不,轻进程只是一个与其他进程共享资源的线程。因为早期的Linux不支持线程和TGID。但现在不再是了,现代 Linux 确实有线程概念和 TGID,这是你从getpid.今天,人们不再谈论轻或重。

但重要的是,对于 KERNEL 来说,同一进程中的线程可以比你想象的独立得多(我相信它们都有自己的 PCB),不在同一进程中的线程也可能共享你可能意想不到的惊人的东西。 KERNEL 强制一个进程中的线程共享一些内容,例如用户命名空间、挂载命名空间、PID 命名空间,但不共享凭据或其他一些内容。要获得更像您期望的“线程”,请使用 1-1 映射或 mn 映射用户空间线程,如 pthread 或 Go 线程。

相关内容