一:程序并发执行
条件:只有不存在前趋关系的程序之间才有可能并发执行,否则无法并发执行。
例:输入程序、计算程序和打印程序之间,存在着Ii->Ci->Pi的前趋关系。对一批作业进行处理,输入程序I1在输入第一次数据后,由计算程序C1对该数据进行计算时,输入程序I2可再输入第二次数据,从而使第一个计算程序C1与第二个输入程序I2并发执行,C1与I2之间并不存在前趋关系。
可以推出:Pi-1和Ci以及Ii+1之间不存在前趋关系可以并发执行。
特征:
1.间断性:程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些程序之间形成了相互制约的关系,如一中的例子,计算程序完成Ci-1的运算后,输入程序Ii尚未完成数据的输入,则计算程序就无法进行数据处理,必须暂停运行。输入完成后,便可恢复计算。由此可见,相互制约使并发程序具有“执行--暂停--执行”的活动规律。
2.失去封闭性:由于并发程序共享资源,而资源状态的改变会使其运行环境发生改变,收到其他程序的影响。
3.不可再现性:失去封闭性,导致其失去可再现性。
例:
二:进程的定义和特征
- 在多道程序程序环境下,程序的执行属于并发执行,此时它们由于失去封闭性,间断性和运行结果不可再现性的特征,决定了通常的程序是不能参加并发执行的,否则程序的运行也就失去了意义。为了使程序能够并发执行,并对并发执行的程序加以描述和控制,所以引入的进程的概念。
- 事实上,这里的程序并发执行,是引入了进程同步机制的并发执行,这样,才能使并发执行的结果可再现,从而使程序的运行有意义。
进程的特征:
- 动态性:创建,执行,消亡。
- 并发性:程序没有建立PCB是不能参与并发执行的,因为PCB中含有用于控制和管理进程的信息,例如进程运行所需要的资源等,这些信息对于进程能否被创建完成和实现进程同步具有重要作用。
- 独立性:进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
- 异步性:进程是按异步方式运行的,即按各自独立的、不可预知的速度向前推进。源于此,导致了传统意义上的程序若参与并发执行,会产生结果的不可再现性。为保证进程在并发运行时具有异步性,但仍能保证进程并发执行的结果是可再现的,在OS中引进了进程的概念,并且配置相应的进程同步机制。