程序的顺序执行和并发执行

  • 顺序执行

    • 概念:把一个具有独立功能的程序独占处理机直至最终结束的过程。
    • 特点
      • 顺序性:程序顺序执行时,其执行过程可看作一系列严格按程序规定的状态转移过程,也即是每执行一条指令,系统将从上一个执行状态转移到下一个执行状态,且上一条指令的执行结束是下一条指令执行开始的充分必要条件(严格的先后顺序)。
      • 封闭性:程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响(程序运行时独占全机资源 )。
      • 再现性:顺序执行的最终结果可再现是说他与执行速度无关。只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。
    • 示意图
      进程管理

  • 并发执行

    • 概念:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。
    • 特点
      • 间断性:交叉执行。
      • 失去封闭性:多个程序共享系统中的各种资源 。
      • 不可再现性:当程序重复执行时,结果可能不同。
    • 示意图

进程管理

前驱图

概念:前趋图是一个有向无循环图。图中每个结点表示一个语句,一段程序或一个进程,从结点si到结点sj的有向边表示它们的前趋关系,记为sisj,即sisj应顺序执行,sj仅在si执行完成后才能开始执行。

  • 用前驱图表示进程(程序)顺序执行->并发执行的示例

    • 分析:对于将绞肉、切葱末、切姜蒜看成三道程序,可在同一时间并行完成。
      进程管理

进程的同步与互斥

  • 进程的同步

    • 概念:相互合作的两个进程之间需要在某个(些)确定点协调它们的工作,一个进程到达了该点后,除非另一进程已经完成了某些操作,否则就不得不停下来,等待这些操作的完成。
    • 进程同步是指多个进程之间的制约关系。
    • 主要特征:一个进程在某一点上等待另一进程提供信息,两进程之间存在直接制约关系,其表现形式为进程—进程。
    • 例:张三和李四(相当于两个进程)约定逛街,张三步行前去,李四骑自行车。当李四提前到达后,需在约定地点等待张三的到来,随后两人手拉手愉快地逛街买东西。
      进程管理

  • 进程的互斥

    • 概念:两个进程由于不能同时使用同一临界资源,只能在一个进程使用完了,另一进程才能使用。
    • 进程互斥是指多个进程与临界资源之间的制约关系。
    • 争用资源,两进程间存在间接制约关系,其表现形式是进程—资源—进程 。
    • 例:50个人过独木桥,独木桥(相当于临界资源)一次只允许一人(一个进程)通过。
      进程管理

PV操作

  • PV操作由P操作和V操作组成。用信号量及PV操作来实现进程的同步和互斥。
    进程管理

  • 临界资源:进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等。

  • 临界区:每个进程中访问临界资源的那段代码称为临界区。

  • 临界区管理原则

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

    • 数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。
  • 生产者和消费者问题(单缓冲区)

    • 问题描述:生产者生产一个产品放入缓冲区,消费者从缓冲区取走产品并消费。
    • 分析:生产者生产第一个产品时,缓冲区为空,可放入产品;当生产者生产第二个产品时,若消费者未从缓冲区取走产品,第二个产品是不能成功放入缓冲区的,直至消费者取走产品。
    • 分析:当消费者需要消费产品时,需查看缓冲区是否有产品,若无产品,需等待生产者生产产品并放入缓冲区为止。
    • 分析:因此,生产者和消费者存在制约关系。

      进程管理

  • PV操作实例

    • 分析:答案为A,C。

      进程管理

  • PV操作和前驱图

  • 实例1


进程管理

  • 实例2

    • 分析:答案为C,A,A。P1P2执行完应将信号量加1,因此a为V(S1)和b为V(S2)P3要执行,应满足S1>0S2>0,因此c为P(S1)P(S2)P4P5要执行,需对信号量减一,则先前有加1操作,因此d为V(S3)V(S4)。故而e为P(S3)和f为P(S4)

      进程管理

相关文章: