【操作系统】前趋图,程序的顺序执行和并发执行

来源:互联网 发布:五金店做账用什么软件 编辑:程序博客网 时间:2024/06/05 20:58

在学习操作系统中,我们引入前趋图来对程序的执行先后顺序进行描述。

前趋图:用于描述进程之间的执行顺序的一种有向无循环图(DAG directed acyclic graph)。

              结点用来描述,一个进程、程序段、乃至一条语句;而有向边又来表示偏序或前驱关系。

              比如:

                        p1: a = x + 2

                        p2: b = y + 1

                        p3: c = a + b

                        p4: w = c + b

               其前趋图为:


有一段时间,我就在想,为什么没有上图中的那条虚线呢?  因为d 的值只需要 b 和 c啊。

后来请教老师,终于明白了。    ---- 》 我们的前趋图,还是强调了程序的顺序执行,并不是需求问题。而且是整体上的顺序执行。


程序的顺序执行

特征:

1,顺序性,所谓顺序性是指,处理机严格的按照程序所规定的顺序执行,一个操作的开始必须在其前一个操作结束之后。

2,封闭性, 所谓封闭性是指,程序在执行的时候独占全机的资源。

3,可再现性,所谓可再现性是指,只要初始条件和运行环境系统,其运行结果一定是一样的。



程序的并发执行

特性:

1,间断性,所谓间断性指的是,由于多个程序对资源的要求产生的制约性,而导致的某一个程序在运行时等待资源的情况。

                    比如有两个程序都需要使用打印机这个资源,如果其中的一个程序已经占用,而另一个必须等待。这样后者表现出来的就是程序运行时的间断性。

2,失去封闭性,所谓封闭性指的是,由于多个程序并发执行会共享资源,从而导致各个程序运行环境会失去封闭性。

3,不可再现性,所谓不可再现性是指相同的输入,由于资源的共享,导致最后的输出结果不同。

                          比如,

我们可以看到,程序的顺序执行和并发执行的特性是完全相对的。


为了解决并发执行存在的一些问题,操作系统中引入了线程这个概念。

我并不是说,引入线程就是为了解决并发执行所存在的这种问题;当然,还有其他的一些原因。


0 0