(1)为什么要引入进程?
在多道程序同时运行的背景下,进程之间需要共享系统资源,这样就会导致各程序在执行过程中出现相互制约的关系,程序的执行就会表现出间断性的特性。这些特性都是在程序的执行过程中发生的,是动态的过程。而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述在内存的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其他执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行的特征。为了深刻描绘程序动态执行过程的性质乃至更好地支持和管理多道程序的并发执行,人们引入了进程概念。
(2)什么是进程及进程由什么组成?
进程是一个具有独立功能程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序代码本身,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。
一个进程实体由程序段、相关数据段和PCB三部分构成,其中PCB是标志一个进程存在的唯一标识,程序段是进程运行的程序代码,数据段则存储程序运行过程中相关的一些数据。
(3)进程是如何解决问题的?
进程把能够识别程序运行状态的一些变量存放在PCB中,通过这些变量系统能够更好地了解进程的状况,并在适当的时候进行进程的切换,以避免一些资源的浪费,甚至划分更小的调度单位——线程来提高系统的并发度。
(4)进程状态
状态种类:
1、运行状态:进程正在处理机上运行
2、就绪状态:进程已经获得了除处理机以外的一切所需资源
3、阻塞状态:进程正在等待某个事件而暂停运行
4、创建状态:进程正在被创建,尚未转到就绪状态
5、结束状态:进程在系统中消失,分为正常结束和异常退出。
状态变化:
就绪->运行:经过处理机的调度,就绪进程获得到处理机资源。
运行->就绪:时间片用完,或者在可剥夺系统中有更高优先级进程进入。
运行->阻塞:进程需要的某个资源还没准备好
阻塞->就绪:进程需要的资源已准备好