命令中的进程 VS 线程 哪个先运行?

命令中的进程 VS 线程 哪个先运行?

我想知道如果我要运行同时使用进程和线程的命令,哪个会在 Linux 上首先运行或创建。我知道它们都使用clone()来运行,并且根据定义,线程基本上是一个轻进程。

答案1

线程是进程的一部分,因此操作系统将在创建线程之前启动进程。

当您调用程序时,操作系统会执行以下操作 -

  • 将代码和数据加载到内存中
  • 创建并初始化过程控制块(PCB)
  • 创建第一个线程及其调用堆栈
  • 为线程的“保存状态”分配初始值
  • 向调度程序宣布线程

调度程序是操作系统的最内部部分,在每个内核上运行,并根据调度标准控制进程和线程的执行。

现在调度员-

  • 运行线程一段时间
  • 保存其状态
  • 加载另一个线程的状态
  • 执行一段时间..

操作系统使用中断/陷阱来从调度程序获得控制权。我简化了步骤以帮助您更好地理解。

相关内容