进程概念
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
进程特点
动态性:进程是程序的执行,同时进程有生命周期。
并发性:多个进程可同存于内存中,能在一段时间内同时执行。
独立性:资源分配和调度的基本单位。
制约性:并发进程间存在制约关系,造成程序执行速度不可预测性,必须对进程的并发执行次序、相对执行速度加以协调。
进程是由程序、数据和进程控制块三部分组成的。
进程的三种基本状态:运行时running、就绪状态ready、等待态(阻塞态)wait(blocked)
线程概念
线程是进程的一个实体, 是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,又称轻型进程。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),同属一个进程的线程共享进程所拥有的主存空间和资源。
区别
根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。
拥有资源:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。
包含关系:线程是进程的一部分,每一进程都拥有多个线程,至少一个。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
系统开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),创建一个新线程花费时间少,线程之间切换的开销小。
调度:在同一个进程内线程切换不会产生进程切换,由一个进程内的线程切换到另一个进程内的线程时,将会引起进程切换。
并发性:进程之间可并发,同一进程内的各线程之间也能并发执行。因而系统具有更好的并发性。