进程、线程、协程定义及特征

进程的定义和特征

进程的定义

为了使参与并发执行的每个程序(含数据)都能独立运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。这样,由程序段、相关的数据段和PCB三部分便构成进程实体(又称进程映像)一般情况下,我们把进程实体就称为进程,例如,所谓创建进程,就是创建进程实体中的PCB;而撤销进程,实质上就是撤销进程的PCB。

对于进程的定义,从不同的角度可以有不同的定义,比较经典的定义有:

  1. 进程是程序的一次执行。
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
  3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

在引入进程实体的概念后,我们可以把传统OS中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。”

进程的特征

进程和程序是两个截然不同的概念,除了进程具有程序所没有的PCB外,还具有下面一些特征:

  1. 动态性。进程的实质是进程实体的执行过程,因此,动态性就是进程的最基本的特征。动态性还表现在:“它由创建而产生,由调度而执行,由撤消而消亡。”可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本质并不具有活动的含义,因而是静态的。
  2. 并发性。是指多个进程实体同存于内存中,且能在一段时间内同时运行。引入进程的目的也是为了使其进程实体能和其它进程实体并发执行。因此,并发性是进程的另一重要特征,同时也成为OS的重要特征。而程序(没有建立PCB)是不能参与并发执行的。
  3. 独立性。在传统的OS中,独立性是指进程实体是一个能独立运行、独立获得资源和独立调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。
  4. 异步性。是指进程是按异步方式运行的,即各自独立的、不可预知的速度向前推进。

进程的三种状态

  1. 就绪状态
  2. 执行状态
  3. 阻塞状态

 

线程

如果说,在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。

由于进程是一个资源的拥有者,因而在创建、撤销和切换中,系统必须为之付出较大的时空开销。这就是限制了系统中所设置进程的数目,而且进程切换也不宜过于频繁,从而限制了并发程序的进一步提高。

线程和进程的比较

由于线程具有许多传统进程所具有的特征,所有又称之为轻型进程或进程元,相应地,把传统进程称为重型进程。它相当于只有一个线程的任务。

  1. 调度的基本单位

在引入线程的OS中,把线程作为调度和分派的基本单位,因而线程是能独立运行的基本单位。当线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,必然就会引起进程的切换。

  1. 并发性

在引入线程OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,甚至允许在一个进程中的所有线程都能并发执行。同样,不同进程中的线程也能并发执行。这使得OS具有更好的并发性,从而提高系统资源的利用率和系统吞吐量。

  1. 拥有资源

线程本身并不拥有系统资源,而是仅有一点必不可少所的、能保证独立运行的资源。

  1. 独立性
  2. 系统开销

在Solaris 2OS中,线程的创建要比进程快30倍,而线程上下文切换要比进程快5倍

  1. 支持多处理机系统

在多处理机系统中,对于传统的进程,即单线程进程,不管有多少处理机,该进程只能运行在一个处理机上。但对于多线程进程,就可以将一个进程中的多个线程分配到多个处理机上,使它们并行执行,这无疑将加速进程的完成。因此,现代多处理机OS都无一例外地引入了多线程。

线程的三种状态和三种状态之间的转换和进程是一样的。

线程控制块TCB

如同每个进程有一个进程控制块一样,系统也为每个线程配置了一个线程控制块TCB,将所有用于控制和管理线程的信息记录在线程控制块中。

协程

协程,英文Coroutines,是一种比【线程】更加【轻量级】的存在。

正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。

最重要的是,【协程】不是被操作系统【内核】所管理的,而完全是由【程序】所控制(也就是在【用户态】执行)

这样带来的好处就是:

性能得到了很大的提升,不会像线程切换那样消耗资源。

 

欢迎大佬前来补充~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值