进程和线程之间的区别

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 5 可能 2024
Anonim
【操作系统】进程和线程的区别
视频: 【操作系统】进程和线程的区别

内容


进程和线程本质上是相关联的。进程是程序的执行,而线程是进程环境驱动的程序的执行。

区分进程和线程的另一个主要点是进程彼此隔离,而线程彼此共享内存或资源。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较依据处理线
基本的程序正在执行。轻量级过程或部分过程。
内存共享完全隔离,不共享内存。彼此共享内存。
资源消耗更多
效率与通讯环境中的过程相比效率较低。增强通信效率。
创建所需的时间更多
转换时间需要更多时间。消耗更少的时间。
不确定的终止导致流程丢失。可以回收线程。
终止所需时间更多

工艺的定义

该过程是程序的执行并执行程序中指定的相关动作,或者是程序运行的执行单元。操作系统创建,调度和终止进程以供CPU使用。主进程创建的其他进程称为子进程。

借助于PCB(过程控制块)来控制过程操作可以视为过程的大脑,其中包含与过程有关的所有关键信息,例如过程ID,优先级,状态,PWS和内容CPU寄存器。

PCB还是基于内核的数据结构,它使用调度,分派和保存三种功能。

  • 排程 –这是一种选择过程顺序的方法,简单来说就是选择必须首先在CPU中执行的过程。
  • 派遣 –它为要执行的过程设置了环境。
  • 骗子保存 –此功能可在恢复或阻止某个进程时保存有关该进程的信息。

流程生命周期中包含某些状态,例如就绪,运行,阻塞和终止。流程状态用于即时跟踪流程活动。


从程序员的角度来看,过程是实现程序并发执行的媒介。并发程序的主要进程创建一个子进程。主流程和子流程需要相互交互以实现一个共同的目标。

当一个进程中的I / O操作与另一进程中的计算活动重叠时,进程的交错操作可提高计算速度。

流程的属性:

  • 每个进程的创建都包括分别针对每个进程的系统调用。
  • 流程是一个隔离的执行实体,不共享数据和信息。
  • 进程使用IPC(进程间通信)机制进行通信,这大大增加了系统调用的数量。
  • 流程管理消耗更多的系统调用。
  • 每个进程都有自己的堆栈和堆内存,指令,数据和内存映射。

线程的定义

线程是程序执行,它使用进程资源来完成任务。单个程序中的所有线程在逻辑上都包含在一个进程中。内核为每个线程分配一个堆栈和一个线程控制块(TCB)。在同一进程的线程之间切换时,操作系统仅保存堆栈指针和CPU状态。

线程以三种不同的方式实现。这些是内核级线程,用户级线程,混合线程。线程可以具有三种状态:运行,就绪和阻塞。它仅包括计算状态,不包括资源分配和通信状态,从而减少了交换开销。它增强了并发性(并行性),因此速度也增加了。

多线程也有缺点,多线程并不会增加复杂性,但它们之间的交互却会增加复杂性。

当有多个线程处于活动状态时,线程必须具有优先级属性。在同一进程中,与其他活动线程分别执行所需的时间由线程的优先级指定。

线程的属性:

  • 只有一个系统调用可以创建多个线程(轻量级进程)。
  • 线程共享数据和信息。
  • 线程共享指令,全局区域和堆区域,但具有自己的单独堆栈和寄存器。
  • 线程管理不消耗或减少系统调用,因为可以使用共享内存来实现线程之间的通信。
  • 进程的隔离属性在资源消耗方面增加了开销。
  1. 程序的所有线程在逻辑上都包含在进程中。
  2. 进程权重重,而线程权重。
  3. 程序是一个隔离的执行单元,而线程不是隔离的,而是共享内存。
  4. 线程不能有单独的存在。它附加到一个进程。另一方面,一个过程可以单独存在。
  5. 在线程到期时,可以恢复其关联的堆栈,因为每个线程都有自己的堆栈。相反,如果进程死亡,则所有线程(包括该进程)都会死亡。

结论

进程用于以并发和顺序方式实现程序的执行。线程是程序执行单元,它使用进程环境,而许多线程使用同一进程的环境时,它们需要共享其代码,数据和资源。操作系统使用此事实来减少开销并改善计算。