七、进程管理 -------川川

基本概念:

进程管理定义: 进程管理也称为处理机管理,其核心是如何合理的分配处理机的时间,提高系统的效率。

1.程序执行时的特征:

顺序执行时的主要特征:

  • 顺序性:程序的各程序段严格按照规定的顺序执行。
  • 封闭性:程序运行时系统内的资源只受该程序控制而改变,执行结果不受外界因素影响。
  • 可再现性:只要程序执行环境和初始条件相同,程序多次执行的结果相同。

若在计算机系统中采用多道程序处理技术,则主存中的多道程序处于并发执行状态。
同一作业内没有前趋关系的程序段或不同作业的程序段可以分别在CPU和各输入输出部件上并行执行。
程序并发执行时的主要特征:

  • 失去了程序的封闭性
  • 程序和机器执行程序的活动不再一一对应
  • 并发程序具有相互制约性

2.进程的组成:

进程定义: 进程是程序的一次执行。
进程的组成: 程序,数据,进程控制块和(Process Control Block,PCB)组成。且PCB是进 程存在的唯一标准
PCB内容:

信息含义
进程标识符标明系统中的各个进程
状态说明进程当前的状态
位置信息指明程序及数据在内存或外存的物理位置
控制信息参数、信号量和消息等
队列指针链接同一状态的进程
优先级进程调度的根据
现场保护区将处理机的现场保护到该区域以便再次调度时能继续正确运行

进程的程序部分描述了进程需要完成的功能。假设一个程序能被多个进程同时共享执行,那么这部分就应该以可再入码的形式编制,它是程序执行时不可修改的部分。进程的数据部分包括程序执行时所需的数据及工作区,这部分只能为一个进程所专用,是进程的可修改部分

3.进程的状态及其状态间的切换:

三态模型:

  • 运行:当一个程序在处理机上运行时,该进程处于运行状态。
  • 就绪:一个进程获得了除处理机制外的一切所需资源,一旦得到处理机即可运行,则此进程处于就绪状态。
  • 阻塞:也称等待、休眠状态,一个进程正在等待某一事件发生而暂时停止运行,即使把处理机分配给该进程,它也无法运行。

五态模型: 在三态模型的基础上引入新建态终止态

  • 新建态:进程刚刚被创建而没有被提交的状态,并等待系统完成创建进程的所有必要信息。 第一阶段: 为一个新进程创建必要的管理信息;第二阶段: 让该进程进入就绪状态。
  • 终止态:目的是防止系统进行善后处理时引起资源分配不当等问题。 第一阶段: 等待操作系统进行善后处理;第三阶段: 释放内存。

进程控制:

1.定义:

对系统所有进程从创建到消亡的全过程实施有效的控制。
进程控制是由 操作系统内核(Kernel)中原语实现的。

2.原语:

定义: 由若干条指令组成的,用于完成特定功能的程序段。
特点: 执行时不能被分割,即原子操作要么都做,要么都不做。
内核中所包含的原语:

  • 进程控制原语:进程创建原语、进程撤销原语、进程挂起原语、进程激活原语、进程阻塞原语、进程唤醒原语
  • 进程通信原语
  • 资源管理原语
  • 其他原语

不同操作系统,内核所包含功能不同,但大多数操作系统的内核都包含支撑功能资源管理功能

3.进程通信:

进程通信是指各个进程交换信息的过程。

①同步与互斥

同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
进程间的同步: 多个并发执行的进程都是以各自独立的 、不可预知的速度向前推进,但有时需要在某些确定点上协调相互合作进程间的工作。进程间的同步是指进程间完成一项任务时直接发生相互作用的关系。
进程间的互斥: 进程的互斥指的是系统中各进程互斥使用临界资源。(临界资源:在多道程序环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。)
临界区管理原则:
临界区是进程中对临界资源实施操作的那段程序。

  • 有空即进: 当无进程处于临界区时,允许进程进入临界区,并且只能 在临界区运行有限的时间。
  • 无空则等: 当有一个进程在临界区时,其他需要进入临界区的进程必须等待,以保证进程互斥的访问临界资源。
  • 有限等待: 对要求访问临界资源的进程,应保证进程等待有限时间后进入临界区,以免陷入“饥饿状态”。
  • 让权等待: 当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。

②信号量机制:

信号量机制是荷兰学者Dijkstra于1965年提出,该机制是一种有效的进程同步与互斥工具。
信号量机制主要有:整型信号量、记录型信号量、信号量集机制。(本篇只介绍整型信号量)
⑴整型信号量与PV操作: 信号量是一个整型变量,根据控制对象的不同被赋予不同的值。
整型信号量分类:

  • 公用信号量: 实现进程间的互斥,初值为1或资源的数目。
  • 私用信号量: 实现进程间的同步,初值为0或某个正整数。
    信号量(S)的物理意义:若S≥0,表示某资源的可用数;若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。

⑵PV操作: PV操作是实现进程同步与互斥的常用方法。

  • P操作定义: S:=S-1。若S≥0,执行P操作的进程继续执行;若S<0,置该进程为阻塞状态(因无可用资源),并将其插入阻塞队列。
  • V操作定义: S:=S+1。若S>0,执行V操作的进程继续执行;若S≤0,从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。

⑶利用PV操作实现进程的互斥: 另信号量mutex的初值为1,进入临界区时执行P操作,退出临界区时执行V操作。
⑷利用PV操作实现进程的同步: 进程的同步是由于进程间的合作而引起的相互制约问题。
实现进程同步的一种方法是将一个信号量与消息相联系,当信号量的值为0时表示希望的消息未产生,否则表示希望的消息已经来到。

③高级通信:

根据进程间交换信息量的多少和效率的高低,进程通信的方式分为低级方式和高级方式。PV操作属于低级方式。
PV方式存在的问题:

  • 编程难度大,通信对用户不透明,即需要用户利用低级通信工具实现进程间的同步与互斥,而且PV操作使用不当还容易引起死锁。
  • 效率低,生产者每次只能向缓冲区放一个消息,消费者只能从缓冲区取一个消息。

高级通信方式: 提高通信效率,能传递大量数据,减轻程序的复杂度。
高级通信方式分类:

  • 共享存储模式:相互通信的进程共享某些数据结构,实现进程之间的通信。
  • 消息传递模式:进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信。
  • 管道通信:管道是用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件。向管道提供输入的发送进程,以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据。

④直接和间接通信:

直接通信: 将消息直接发送给指定进程,因此,Send和Receive原语中应指出进程名字。
直接通信调用方式:

Send(Who,Message)         //发送消息给指定进程或一组进程
Receive(Who,Message)      //从约定进程接收消息

间接通信: 以信箱为媒体来实现通信,接收信件的进程只需设立一个信箱,若干个进程都可向同一个进程发送信件。
间接通信调用方式:

Send(N,M)       //将信件M发送到信箱N中
Receive(M,N)       //从信箱N中去一封信存入X

**有些系统还提供带标记的发送,用Tag可以指定进程是否要等到接收进程取到信息再继续运行。
**Send(Who,Message,tag)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个昵称被占用的川川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值