进程管理小结

综述:何谓进程,进行中的程序,顾名思义,进程就是运行中的程序。即用户使用时的东西。所以进程是一种动态的概念,是只存在一段时间的过程概念。有着开始有着灭亡。进程可以称为是动态的程序。是程序实现功能时的投影。操作系统因为有了进程的概念,可以进行并发操作,并发运行的就是这些进程们。

一、进程的概念

为了实现进程,特别的设置一种数据结构叫做PCB(进程控制块),这里面包含着一个进程的各种信息,可以帮助完成各种操作。而进程的产生就是pcb的产生,而进程的灭亡就是pcb的灭亡,pcb就是进程存在的唯一标志。再加上程序段和数据段,一个进程就完整了。进程是一个动态的概念,可以这样理解,程序段和数据段是基础,没有程序数据也就没了进程,而程序段和数据段都是静态的,想让程序运行起来就需要合力一起创建PCB,这样进程就诞生了,程序就可以以进程的方式运行了。当需要关掉程序时,也就删除pcb。程序段和数据段也就变回了静止的样子。进程在运行过程中,是需要计算机资源的,进程就是计算机分配资源的一个最小单位。系统资源可以理解为时间片,每个进程宠幸几个时间片,也都是以进程为分配单位的。皇帝宠爱皇妃,不能以皇妃身上的汗毛为单位吧。

二、进程的特征

进程的特征是相对于单个程序顺序执行而提出的。

动态性:是一次动态的过程,有创建、活动、暂停、终止等过程。具有生命周期。(是最基本的特征)

并发性:指进程的目的,进程的提出本身就是为了程序并发而设计的,进程的存在当然实现了程序的并发。也自然就有并发性的特征。

独立性:指进程是一个可以独立运行的独立单位。可以独立获得资源,独立接受调度的单位。

异步性:由于是并发进行的,资源又有限,进程以不可知的速度向前推进。进程的异步性与操作系统的异步性是一样的。表达的具有不可预知性。

结构性:进程具有相对规整的结构,都是由PCB、程序段、数据段构成的。

三、进程的状态与其转换

进程从创建到消亡,整个生命周期,具有几个特点鲜明的状态。通常有五种状态(也称为五态图)

运行状态:正在使用处理机资源(此时是并发进行的,微观上依旧存在走走停停,但即使短暂的挺也算运行状态)

就绪状态:进程已经准备好了所有运行所需要的条件,就差cpu临幸了。一旦得到资源,立刻就可以运行。

阻塞状态:又称等待状态,进程因为某一件事暂停运行(这里是宏观上的暂停,不是微观上的暂停),阻塞状态就是进程还没有达到就绪的状态。即使cpu空闲也不能临幸它。

创建状态:进程正在被创建,PCB初始化。然后由系统分配必备的资源,最后把进程转入就绪状态。

结束状态:进程正在消失,可能是正常结束也可能是中断退出。系统置进程结束状态,收回资源,删除PCB。

就绪状态要转入运行状态的时候,系统分配的是时间片,当时间片进程还没结束的时候,会被重新挂为就绪状态。

四、进程控制

计算机中的控制就是管理,对进程实现创建,结束,状态转换的控制。控制进程所用的是原语。

进程创建

进程的创建可以是一个新的进程,也可以是已有进程创建的子进程。子进程可以继承父进程的资源,当子进程被撤销时,资源归还给父进程,而不是归还给系统。当父进程被撤销时,子进程也不能独立存在,也要被撤销。

操作系统创建一个进程的过程如下(创建原语)

1)分配进程标识号,申请空白PCB(申请失败则创建失败)

2)为进程分配资源(程序、数据、内存空间)。(分配失败则转为阻塞状态而非失败)

3)初始化PCB(标志信息、处理机状态信息、处理控制信息、设置优先级)。

4)如果就绪队列可以接纳新进程,则接收到就绪队列中。

进程的终止

进程的中止有三种情况:1)正常结束2)异常结束3)外界干预

操作系统终止进程的过程(撤销原语):

1)根据要禁止的标识号,检索PCB,找到它,并读取状态。

2)终止。

3)如果还有子进程,终止。

4)归还资源,或父进程或操作系统。

5)从PCB中删除。

进程的阻塞与唤醒

进程的阻塞是一种进程自身的主动行为,是进程自己要求的,因为自身条件不满足。

阻塞原语

1)根据标识号找到对应的pcb

2)若在运行,保护好现场。将状态转为阻塞。

3)把该PCB插入到对应事件的等待队列中(等待资源)

当被阻塞的进程所期待的事情都发生之后,便安排让它重新就绪。执行唤醒原语。

唤醒原语

1)找到相应进程的pcb

2)将其从等待队列中移除,并将状态转换为就绪状态。

3)把该pcb插入到就绪队列中。

进程切换

进程切换是指处理机从这个进程到另一个进程的转换。切换过程如下:

1)保护现场

2)更新pcb

3)把该进程移入等待队列(如就绪队列)

4)选择另一个进程,并更新其pcb

5)更新内存管理的数据结构

6)恢复上下文

进程切换是逻辑上的切换,而处理机模式切换不一样,模式切换可能处理机还在执行这个进程,可能进程刚刚去了一趟核心态,回来的时候,逻辑没有变,依旧是这个程序。所以,无需如此复杂的切换环境。

【注解】调度是指资源的分配,切换是进程的切换,实际的行为。进程的切换效率不高,所以后文中的线程帮助提高效率,减少进程间的切换。

五、进程的结构

PCB

进程控制块,一旦进程被创建,那它的PCB就常驻在内存中,只有在进程结束的时候才会被删除。PCB是进程实体的一部分,也是进程存在的唯一标志。

主要组成部分如下:

1)进程描述信息

进程标识符:所有进程的编号

用户标识符:进程归属的用户的编号

2)进程控制和管理信息

进程当前状态:五态

进程优先级:进程抢占处理机的优先级

3)资源分配清单:所使用的资源的相关信息,比如内存地址。

4)处理机相关信息:这就是现场和环境。处理机各寄存器的值。

管理PCB:如此繁多的PCB,系统需要对他们进行管理。有两种方式,

链接方式:通过队列的方式,把相同状态的PCB放在同一队列中。

索引方式:将状态相同的进程放在同一张索引表中。

程序段和数据段:顾名思义。特别的是,程序段可以被多个进程同时使用。这就是一个软件可以打开好几次。

六、进程通信

进程空间是独立的,不能随便越界的,所以进程间的通信需要一些方法。

1)共享存储:设置一个共享空间,是可以被多个进程读写的,进程就可以通过这样一个中间空间来进行通信。

2)消息传递:进程可以把信息发送给另一个进程,就像写信一样,有直接通信方式,进程把消息发送到另一个进程的消息缓冲队列。还有间接通信方式,存在一个中间实体,就像一个信箱。

3)管道通信:是消息传递的特殊方式,管道是用于连接一个进程和另一个进程的共享文件。写进程对管道写信息,然后读进程读取管道。为了协调双方的通信,管道需要有协调能力。

管道文件的大小是固定的,就像一个大小固定的缓冲区。当写进程写满时,管道将阻塞写,转而等待读,只有读之后,才能再次写。所以管道中的数据读完就消失了,是一次性的,也是连续的。所以管道注定只能是半双工通信。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值