进程
特征
结构特征
通常的程序是不能并发执行的,为使程序(含数据)能并发执行,应为之分配一进程控制块。
程序段、相关的数据段和PCB构成进程实体
动态性
进程的实质是进程实体的一次执行过程
由创建而产生、由调度而执行、由撤销而消亡
并发性
多个进程实体同存于内存中,且能在一段时间内同时运行。
程序是不能并发执行的
独立性
进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位
异步性
进程实体按异步方式运行
定义
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
线程
进程的引入, 目的是为了使多个程序并发执行,以提高资源的利用率和系统的吞吐量。那线程的引入是为了什么呢?
引入线程,是为了减少程序在并发执行时所付出的时空开销,使操作系统具有更好的并发性。因为进程是资源的拥有者,所以在创建、撤销和切换进程的过程中,系统必须为之付出较多的时空开销。
属性
线程是轻量级进程,线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证其独立运行的资源,比如,在每个线程中都应具有一个用于控制线程运行的线程控制块TCB,用于指示被执行指令序列的程序计数器,保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。
线程是独立调度和分派的基本单位。
线程可并发执行。一个进程中的线程可以并发执行,不同进程中的线程也可以并发执行。
同一个进程中的线程共享进程资源。
比较
调度
线程是调度和分派的基本单位,进程是资源拥有的基本单位
在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,将会引起进程的切换。
拥有资源
线程自己不拥有资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。一个进程的代码段、数据段及所拥有的系统资源,如已打开的文件、I/O设备等,可以供该进程中的所以线程共享。
系统开销
在创建和撤销进程时,系统都要为之创建和回收PCB,分配或回收资源,OS付出的开销明显大于线程创建或撤销时的开销。
在进程切换时,涉及到当前进程CPU环境的保存以及新被调度运行进程的CPU环境的设置,而线程的切换仅需保存和设置少量寄存器内容,不涉及存储器管理方面的操作,所以就切换代价而言,进程也是远高于线程的。此外,由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比进程容易。