操作系统学习记录之六:并发程序

顺序程序设计:

程序是实现算法的操作(指令)序列;
每个程序在处理器上执行严格有序的,称为程序执行的内部顺序性;
程序设计的一般习惯是顺序程序设计;
把一个具体问题的求解过程设计成一个程序或者严格顺序执行的程序序列,这称为程序执行的外部顺序性;
 

顺序程序设计的特性:

程序执行的顺序性:程序指令执行是严格按序的;
计算环境的封闭性:程序运行时如同独占受操作系统保护的资源;
计算结果的确定性:程序执行结果与执行速度和执行时段无关;
计算过程的可再见性:程序对相同数据集的执行轨迹是确定的;

进程的并发设计:


多道程序设计让多个程序同时进入内存去竞争处理器以获得运行机会;
OS允许计算机系统在一个时间段内存在多个正在运行的进程,即允许多个进程并发执行
OS保证按照“顺序程序设计” 方法编制的程序在并发执行时不受影响,如同独占计算机
这些按照顺序程序设计思想编制的进程在OS中并发执行属于无关的并发进程
 

并发程序设计:

把一个具体问题求解设计成若干个可同时执行的程序模块的方法;
并发程序设计的特性:

并行性:多个进程在多道程序系统中并发执行或者在多处理器系统中并行执行提高了计算效率;
共享性:多个进程共享软件资源;
交往性:多个进程并发执行时存在制约,增加了程序设计的难度;
 

无关与交往的并发进程

无关的并发进程:一组并发进程分别在不同的变量集合上运行, 一个进程的执行与其他并发进程的进展无关;
交往的并发进程:一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结果;
 

与时间有关的错误
对于一组交往的并发进程,执行的相对速度无法相互控制;
如果程序设计不当,可能出现各种“与时间有关的”错误:
表现一:结果错误(机票问题,卖出同一张票);
表现二:永远等待;

结果错误:

永远等待的列子:

 

进程互斥与进程同步:

 交互的并发进程在执行时必须进行制约,才能保证得到合理的结果
进程互斥:并发进程之间因相互争夺独占性资源而产生的竞争制约关系;
进程同步: 并发进程之间为完成共同任务基于某个条件来协调执行先后关系而产生的协作制约关系;

猜你喜欢

转载自blog.csdn.net/cxy19931018/article/details/81435923