进程的特征
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:进程由程序、数据和进程控制块三部分组成。
多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。
进程的状态
1)就绪状态(Ready):
进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
2)运行状态(Running):
进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
3)阻塞状态(Blocked):
由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理器资源分配给该进程,也无法运行。
程序与进程的区别:
程序 | 进程 |
---|---|
指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 | 程序在处理机上的一次执行(计算)过程,它是一个动态的概念。 |
作为一种软件资料长期存在 | 有一定生命期 |
永久的 | 暂时的 |
不能 | 更能真实地描述并发 |
没有 | 有创建其他进程的功能 |
运行于若干个数据集合上,它将属于若干个不同的进程 | 由进程控制块、程序段、数据段三部分组成 |
一程序可以对应多个进程 | |
不能独立运行 | 资源分配和独立运行的基本单元 |
进程与线程的区别:
进程 | 线程 |
---|---|
进程是资源分配的基本单位 | 线程是调度的基本单位 |
同一进程中的各个线程共享进程的地址空间 | |
在用户级线程中,有关线程管理的所有工作都由应用程序完成,无需内核的干预,内核意识不到线程的存在。 | |
引入线程的目的是简化线程间的通信,从而进一步提高系统的并发度,减少系统的开销,提高系统的吞吐量 |