进程和线程的区别

进程

1、基本概念

进程是指一个具有独立功能的程序在某个数据集合上的一次动态执行过程,它是系统进行资源分配和调度的基本单元。一次任务的运行可以并发激活多个进程,这些进程相互合作来完成该任务的一个最终目标。

2、主要特性

(1)并发性:指的是系统中多个进程可以同时并发执行,相互之间不受干扰。

(2)动态性:指的是进程都有完整的生命周期,而且在进程的生命周期内,进程的状态是不断变化的,另外进程具有动态的地址空间(包括代码、数据和进程控制块等)。

(3)交互性:指的是进程在执行过程中可能会与其他进程发生直接和间接的交互操作,如进程同步和进程互斥等,需要为此添加一定的进程处理机制。

(4)独立性:指的是进程是一个相对完整的资源分配和调度的基本单位,各个进程的地址空间是相互独立的,只有采用某些特定的通信机制才能实现进程之间的通信。

(5)异步性:指的是每个进程都按照各自独立的、不可预知的速度向前执行。

3、进程类型

(1)交互式进程:这类进程经常与用户交互,因此要花很多时间等待用户的交互操作(键盘和鼠标操作等)。当接收到用户的交互操作之后,这类进程应该很快被运行,而且响应时间的变化也应该要小,否则用户会觉得系统反应迟钝或者不太稳定。典型的交互式进程有shell命令进程、文本编辑器和图形应用程序运行等。

(2)批处理进程:这类进程不必与用户进行交互,因此经常在后台运行。因为这类进程通常不需要很快响应,因此往往受到调度器的怠慢。典型的批处理进程是编译器的编译操作、数据库搜索引擎等。

(3)实时进程:这类进程通常对调度响应时间有很高的要求,一般不会被低优先级的进程阻塞。它们不仅要求很短的响应时间,而且更重要的是响应时间的变化应该很小。典型的实时程序有视频和音频应用程序、实时数据采集系统程序等。

4、进程状态

(1)运行状态:进程当前正在运行,或者正在运行队列中等待调度。

(2)可中断的阻塞状态:进程处于阻塞(睡眠)状态,正在等待某些事件发生或能够占用某些资源。处在这种状态下的进程可以被信号中断。

(3)不可中断的阻塞状态:此进程状态类似于可中断的阻塞状态,只是它不会处理信号,把信号传递到这种状态下的进程不能改变它的状态。只有在它所等待的事件发生后,进程才被显示的唤醒呼叫唤醒。

(4)可终止的阻塞状态:该状态的运行机制类似于不可中断的阻塞状态,只不过处在该状态下的进程可以响应致命信号,它可以替代有效但可能无法终止的不可中断的阻塞状态,以及易于唤醒但安全性欠佳的可中断的阻塞状态。

(5)暂停状态:进程的执行被暂停,当进程收到SIGSTOP、SIGTSTP、SIGTTIN、SIGTTOU信号,就会进入暂停状态。

(6)跟踪状态:进程的执行被调试器暂停,当一个进程被另一个进程监控时,任何信号都可以把这个进程置于跟踪状态。

(7)僵尸状态:进程运行结束,父进程尚未使用wait函数族等系统调用来“收尸”,即等待父进程销毁它。处在该状态下的进程尸体已经放弃了几乎所有的内存空间,没有任何执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等消息供其他进程收集。

(8)僵尸撤销状态:这是最终状态,父进程调用wait函数族“收尸”之后,进程彻底由系统删除。、

它们之间的转换关系如下所示:

线程

1、基本概念

线程是进程内独立的一条运行线路,处理器调度的最小单元,也可以称之为轻量级进程。线程可以对进程的内存空间和资源呢进行访问,并与同一进程中的其他线程共享。一个进程可以拥有多个线程,每个线程必须有一个父进程。线程与其父进程的其他线程共享该进程所拥有的全部资源。在多线程系统中,进程与线程的关系如下:

2、线程分类

(1)用户级线程:主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持。如果一个进程中的某一个线程调用了一个阻塞的系统调用函数,那么该进程包括该进程中的其他所有线程也同时被阻塞。这种用户级线程的主要缺点是在一个进程中的多个线程的调度中无法发挥多处理器的优势。

(2)轻量级进程:是内核支持的用户线程,是内核线程的一种抽象对象。每个线程拥有一个或多个轻量级线程,而每个轻量级线程分别被绑定在一个内核线程上。

(3)内核线程:这种线程允许不同进程中的线程按照同一相对优先调度方法进行调度,这样就可以发挥多处理器的并发优势。

补充:

进程和程序的区别:

程序是静态的一段代码,是一些保存在非易失性存储器的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程,它是程序执行和资源管理的最小单位。

任务、进程和线程之间的关系:

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值