我想知道如果我要运行同时使用进程和线程的命令,哪个会在 Linux 上首先运行或创建。我知道它们都使用clone()来运行,并且根据定义,线程基本上是一个轻进程。
答案1
线程是进程的一部分,因此操作系统将在创建线程之前启动进程。
当您调用程序时,操作系统会执行以下操作 -
- 将代码和数据加载到内存中
- 创建并初始化过程控制块(PCB)
- 创建第一个线程及其调用堆栈
- 为线程的“保存状态”分配初始值
- 向调度程序宣布线程
调度程序是操作系统的最内部部分,在每个内核上运行,并根据调度标准控制进程和线程的执行。
现在调度员-
- 运行线程一段时间
- 保存其状态
- 加载另一个线程的状态
- 执行一段时间..
操作系统使用中断/陷阱来从调度程序获得控制权。我简化了步骤以帮助您更好地理解。