1.1多道程序设计
1.1.1程序的顺序执行
Ii表示第i个程序的输入;Pi表示第i个程序的计算处理;Oi表示第i个程序的打印输出
对于一个要解决的问题,往往需要按一定的顺序执行,典型的是输入,计算,然后进行打印输出。
顺序程序设计方式的一些特点
(1)简单,方便,容易理解;
(2)确定性:程序运行结果,不会受运行过程中出现的中断事件的影响;
(3)封闭性:运行程序独占整个计算机系统资源,除了初始状态以外,该程序所处的环境只有本身决定,只有程序本身才能改变系统资源状态和环境。
(4)可再行性:一个程序,只要初始输入条件相同,运行结果也必然相同。
缺点:计算机资源使用效率不高
1.1.2程序的并发执行
程序的并发执行:是指一个程序的执行还没有结束,另一个程序就已经开始了。
宏观上:在这段时间内,“同时”完成几个程序;
微观上:任何时刻就只有一个程序在运行。
并发性的两层含义:(1)内部顺序性,对于一个程序而言,他的所有指令都是按序执行的;
(2)外部并发性对于多个程序而言,他们是交叉运行的
1.1.3多道程序设计
单道程序设计:主存中每次只存在一个程序,该程序运行时独占整个计算机系统资源
多道程序设计:让多个程序同时进入一个计算机系统的主存储器并发执行
优点:充分发挥了计算机硬件的并发性,消除了处理器和外围设备相互等待的现象,大大提高了系统的效率。
1.1.4并发程序执行的条件
Bernstein条件:并发程序如果无关,则这些进程可以并发执行。
i个程序集合(1)读变量集合R(Pi)
(2)写变量集合W(Pi)
如果(R(P1)并W(P2))
交(R(P2)并W(P1))
交(W(P1)并W(P2))= 空集