-
多道程序设计有哪些新特性呢?它又是如何实现程序的并发执行的呢?
2020-01-13 16:58:45下面从程序的顺序执行、程序的执行环境和程序的并发执行几方面介绍多道程序设计模型。 一、程序的顺序执行 程序是一个在时间上按严格次序前后相继的操作序列,这些操作是机器指令或高级语言编写的语句。人们习惯的...采用多道程序设计可以提高处理器的利用率。多道程序设计技术充分发挥了处理器与外围设备以及外围设备之间的并行工作能力,从而提高处理器和其他各种资源的利用率。下面从程序的顺序执行、程序的执行环境和程序的并发执行几方面介绍多道程序设计模型。
一、程序的顺序执行
程序是一个在时间上按严格次序前后相继的操作序列,这些操作是机器指令或高级语言编写的语句。人们习惯的传统程序设计方法是顺序程序设计,计算机也是以顺序方式工作的:处理器一次执行一条指令,对内存一次访问一个字节或字,对处部设备一次传送一个数据块。顺序处理也是人们习惯的思考方法,为了解决一个复杂的问题,人们把它分解成一些较为简单、易于分析的小问题,然后逐个解决。也可以把一个复杂的程序划分为若干个程序段,然后按照某种次序逐个执行这些程序段。
我们把一个具有独立功能的程序独占处理器直到得到最终结果的过程称为程序的顺序执行。程序的顺序执行具有如下特点。
1.顺序性
程序所规定的动作在机器上严格地按顺序执行。每个动作的执行都以前一个动作的结束为前提条件,即程序和机器执行它的活动严格一一对应。
2.封闭性
程序运行后,其计算结果只取决于程序自身,程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。程序所使用的资源(包括处理器、内存、文件等)是专有的,这些资源的状态(除了初始状态外)只有程序本身的动作才能改变。
3.程序执行结果的确定性
也称为程序执行结果与时间无关性。程序执行的结果与它的执行速度无关,即处理器在执行程序时,任意两个动作之间的停顿对程序的计算结果都不会产生影响。
4.程序执行结果的可再现性
如果程序在不同的时间执行,只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。
程序的顺序性和封闭性是一切顺序程序所应具有的特性,从这两个特性出发,不难引出程序执行时所具有的另外两个特性。顺序程序与时间无关的特性,可使程序的编制者不必去关心不属于他控制的那些细节(如操作系统的调度算法和外部设备操作的精确时间等);顺序程序执行结果的可再现性,则对程序检测和校正程序的错误带来了方便。
二、程序的并发执行
所谓程序并发执行,是指两个或两个以上程序在计算机系统中,同时处于已开始执行且尚未结束的状态。能够参与并发执行的程序称为并发程序。程序的并发执行,可以充分利用系统的资源,提高计算机的处理能力。但是,程序的并发执行产生了一些和程序顺序执行时不同的特性。程序的并发执行有如下特征。
1.在执行期间并发程序相互制约
资源的共享和竞争存在于多道程序的并发执行中,从而制约了各道程序的执行速度。由于本来并无逻辑关系的程序之间产生了相互制约的关系,而各个程序活动的工作状态与所处环境有密切关系,使并发程序的执行出现了“执行——暂停——执行”的活动现象。
2.程序与计算不再一一对应
在并发执行中,允许多个用户进程调用一个共享程序段,从而形成了多个“计算”。如在分时系统中,一个编译程序往往同时为几个用户提供编译服务,该编译程序便对应了几个“计算”。
3.并发程序的执行结果不可再现
并发程序执行结果与其执行的相对速度以及并发执行的多道程序之间的相互关系有关,导致并发程序的执行结果不可再现,即执行结果是不确定的。
4.程序的并行执行与程序的并发执行
多道程序的并发执行是指它们在宏观上,即在某一段时间周期内是同时进行的(这个时间周期,比处理器的指令处理周期要长得多,但是从操作人员的感觉来看,仍然时一个瞬间)。但从微观上看,除了多处理器系统外,在单处理器系统中,这些程序仍然是顺序执行的。
程序的并行执行与程序的并发执行,这两者存在着差别。前者是指不论从宏观的时间周期上看,还是从微观上看,若干程序确实在同时运行;而程序的并发执行,如果在单处理器系统中,它们在宏观上是同时进行的,但在微观上,这些程序仍然是顺序执行的。
-
02进程学习之并发,时钟中断,单道程序设计和多道程序设计的区别
2020-10-29 21:42:2002进程学习之并发,时钟中断,单道程序设计和多道程序设计的区别 1 并发的概念 并发:一个时间段内可以运行多个程序。注意并不是同一时刻运行,即不是并行。 2 时钟中断 时钟中断:发送指令使当前占用CPU的进程停止...02进程学习之并发,时钟中断,单道程序设计和多道程序设计的区别
1 并发的概念
并发:一个时间段内可以运行多个程序。注意并不是同一时刻运行,即不是并行。2 时钟中断
时钟中断:发送指令使当前占用CPU的进程停止并记录时间,好让其它进程可以执行。
由于我们程序可以并发执行,所以每个程序都会争夺CPU,当我们需要切换另一个进程时,就是利用时钟中断来暂停它,记录本次时间等待其它进程执行完再回到被中断的那个时刻执行该进程。例如酷狗和微信的切换。3 单道程序设计
单道程序设:“所有进程一个一个排对执行。若A阻塞,B只能等待,即使CPU处于空闲状态。所以已被淘汰。4 多道程序设计
多道程序设计:内存中可以有多个进程轮流执行,不会阻塞,但需要硬件基础支撑。实际上就是并发的思想。5 四者的区别
在不考虑单道程序设计下,多道程序设计是并发的实现,时钟中断是多道程序设计的前提。或者你可以理解为并发就是多道程序设计,毕竟这两个概念并不需要很严谨。 -
处理器管理及并发进程-多道程序设计
2016-09-13 19:54:261.1多道程序设计 1.1.1程序的顺序执行 Ii表示第i个程序的输入;Pi表示第i个程序的计算处理;Oi表示第i个程序的打印输出 对于一个要解决的问题,往往需要按一定的顺序执行,典型的是输入,计算,然后进行打印...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))= 空集 -
并发的发展历史-集成电路和多道程序设计
2020-12-18 19:58:46多道程序设计的出现解决了这个问题,就是把内存分为几个部分,每一个部分放不同的程序。当一个程序需要等待I/O操作完成时。那么CPU可以切换执行内存中的另外一个程序。如果内存中可以同时存放足够多的程序,那CPU的...多道程序设计的出现解决了这个问题,就是把内存分为几个部分,每一个部分放不同的程序。当一个程序需要等待I/O操作完成时。那么CPU可以切换执行内存中的另外一个程序。如果内存中可以同时存放足够多的程序,那CPU的利用率可以接近100%。
在这个时候,引入了第一个概念- 进程, 进程的本质是一个正在执行的程序,程序运行时系统会创建一个进程,并且给每个进程分配独立的内存地址空间保证每个进程地址不会相互干扰。同时,在CPU对进程做时间片的切换时,保证进程切换过程中仍然要从进程切换之前运行的位置出开始执行。所以进程通常还会包括程序计数器、堆栈指针。
有了进程以后,可以让操作系统从宏观层面实现多应用并发。而并发的实现是通过CPU时间片不端切换执行的。对于单核CPU来说,在任意一个时刻只会有一个进程在被CPU调度
-
进程的初步认识(程序与进程、并发、单道程序设计、多道程序设计、CPU、MMU)
2018-12-23 18:19:59在内存中执行。(程序运行起来之后,产生一个进程)。 那么我们可以形象的将程序比作一个剧本,这个剧本就是一张一张的纸组成的,那么就是进程就要演的戏,一出戏上面包括舞台、演员、灯光、道具等等。同一... -
并发编程:进程、多道、进程执行顺序与常用属性
2019-01-14 19:19:00一、进程与多道技术 二、主程序 三、进程理论 四、主进程与子进程的执行顺序 五、父进程等待子进程结束 六、开启子进程的方式 七、进程对象常用属性 一、进程与多道技术 什么是进程 一个正在运行的程序称... -
设计有5个进程并发执行的模拟调度程序_day40 并发编程-3
2020-12-06 01:27:01一、线程背景进程 之前我们已经了解了操作系统中进程的概念,程序并不能...在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。... -
并行执行、串行执行和并发执行
2018-04-15 23:44:00并发执行是多道程序系统中多个程序(逻辑上互相独立)或者一个程序中的多个程序段在执行的过程当中,时间互相重叠,一个程序执行没结束,另一个已经开始。并行执行是指一组程序按照独立的,不同步的速度执行,时间上... -
为什么说直到出现中断和通道技术后,多道程序概念才变为有用的?
2010-08-31 15:38:00为什么说直到出现中断和...多道程序并发执行是指有的程序正在CPU上执行,而另一些程序正在I/O设备上进行传输,即通过CPU操作与外设传输在时间上的重叠减少CPU时间的浪费,并提高了系统的效率。实现CPU操作与外 -
多道程序设计技术
2013-09-12 22:06:21让多个计算机问题同时装入一个计算机系统的主存储器的并发执行,这种设计技术称为“多道程序设计”,这种计算机系统称为“多道程序设计系统”或简称“多道系统”。 多道程序设计概念 所谓多道程序设计是指允许一个... -
多进程,多线程,并发,并行,并发程序设计 概念
2019-12-13 13:35:02把多个程序同时装入一个计算机系统的主存储器并行执行,称为并发程序设计 1.并发:在一段时间内完成多个任务执行,或者说是在...多道环境下的程序设计叫做并发程序设计 2.并行:在同一时刻多个任务同时执行,或者说... -
2020 操作系统 实验一 并发程序设计
2020-12-02 00:56:00掌握在程序中创建新进程的方法, 观察并理解多道程序并发执行的现象。 三、实验原理 fork():建立子进程。子进程得到父进程地址空间的一个复制。 返回值:成功时,该函数被调用一次,但返回两次,fork()对子进程... -
x86 单线并发多拨_编写整洁的并发程序非常难,有什么解决之道?
2020-12-18 01:04:42编写整洁的并发程序很难——非常难。编写在单线程中执行的代码简单得多。编写表面上看来不错、深入进去却支离破碎的多线程代码也简单。系统一旦遭受压力,这种代码就扛不住了。本章将讨论并发编程的需求及其困难之处... -
【OS笔记 5】前驱图、顺序执行与并发执行的特征
2020-08-16 13:19:44在多道批处理系统中,多道程序共享系统资源、并发执行,因此引入了进程的概念。 所以,在学习进程之前有必要先对程序的 顺序执行 和 并发执行方式 做简单的了解。 一、前驱图的概念 所谓前驱后继,其实也就是发生... -
并发编程-进程(多道技术)
2019-08-02 08:26:00并发就是可以同时执行多个程序(本质是在不同的进程间快速切换执行,并保存程序状态) 总结就是:切换+保存 串行和并发都是程序处理任务的方式 为什么要用并发? 可以同时执行多个程序,提高了工作效率 提高内存资源的... -
并发编程—进程与程序,并发与并行,开启进程的两种方式,多进程实现简单的并发通信
2019-01-14 21:15:10文章目录进程与程序的区别多道技术并发与并行的区别开启进程的两种方式方式一:定义好需执行的函数,实例化Process对象时调用函数方法二:自定义类,继承Process,自定义方法,实例化对象调用方法 进程与程序的区别... -
操作系统课堂笔记(4)进程管理之多道程序设计和进程
2019-09-30 21:12:564.1多道程序设计 4.1.1程序的顺序执行:一个具有独立功能的程序独占CPU直到得到最终结果的过程 程序的顺序执行的特点: ...4.1.2多道程序设计中程序执行环境的变化 1.多道程序设计技术的引入 并发:单... -
Python Web学习笔记之多道程序设计技术和操作系统的特性
2019-10-08 09:14:19采用了多道程序设计技术的操作系统具有如下特性 : ① 并发性。它 是指两个或两个以上的事件或活动在同一时间间隔内发生。操作系统是一个并发系统,并发性是它的重要特征,操作系统的并发性指计算机系统中同时... -
Go:21---goroutine并发执行体
2020-11-16 13:31:19在Go里,每一个并发执行的活动称为goroutine 考虑一个程序,它有两个函数,一个做一些计算工作,另一个将结果输出,假设它们不互相调用。顺序程序可能调用一个函数,然后调用另一个,但是在有两个或多个goroutine的... -
操作系统(6)- 并发程序设计
2020-11-01 15:30:53进程的并发执行:多道程序设计让多个程序同时进入内存去竞争处理器,以获得运行机会。OS允许计算机系统在一个时间段内存在多个正在运行的进程,即允许多个程序的并发执行。OS保证按照“顺序程序设计”方法编制的程序... -
33道Java多线程和并发基础问题,看你会几道?
2020-05-13 15:33:24多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点) ... -
进程同步机制-----为进程并发执行保驾护航
2019-11-07 10:11:52本文是对进程同步机制的一个大总结(9000+字吐血总结),涵盖面非常的全,包括了进程同步的一些概念、软件同步...同样我们也知道,在OS引入了进程后,可以使系统中的多道程序可以并发的执行,进程的并发执行一方面极... -
并发程序的基本实现( 多进程 )
2014-04-18 13:52:00Linux 是多道处理系统,当然能够在同一段时间内处理多个程序。本文将介绍具体该如何操作。 fork 函数 此函数的作用是创建一个子进程,调用后,调用进程和创建的新进程就会并发执行( 从调用处开始 )。它调用一... -
前驱图和程序执行
2020-03-10 23:36:05在多道程序环境中,允许多个程序并发执行;程序本身是具体代码,不能反映程序的执行过程从而引入进程。 进程是抽象的。作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。 程序... -
OS ##并发程序设计
2017-11-23 23:28:37多道程序设计 依次执行,cpu利用率低 并发程序设计 OS调配进程执行次序,充分利用硬件资源 并行性:逻辑上并发->多核cpu物理上并行 共享性:共享软件资源 交往性:进程间需要有序执行 并发进程的制约关系结果... -
第十八章:并发程序的基本实现( 多进程 )
2017-01-28 22:20:00Linux 是多道处理系统,当然能够在同一段时间内处理多个程序。 本文将介绍具体该如何操作。 fork 函数 此函数的作用是创建一个子进程,调用后,调用进程和创建的新进程就会并发执行(从调用处开始)。它调用一次... -
进程与程序 并行 并发 串行 阻塞 join函数
2019-10-06 05:27:14进程是正在运行的程序,程序是程序员编写的一对代码,也就是一堆字符,当这堆代码被系统加载到内存并执行,就有了进程。...并发指的是,多个事件同时发生了(单核状态下就是通过切换+保存状态 就是多道技术) ...
-
深究字符编码的奥秘,与乱码说再见
-
java中implents_JAVA中为什么会有extends和implents两个关键字
-
EKM:智能电网中AMI系统的高效密钥管理方案
-
vue3从0到1-超详细
-
基于可链接环签名的电子消费方案
-
基于Flink构建实时数据仓库.pptx
-
Python函数库深度详解(1)
-
大规模2-D / 3-D传感器网络中基于连接的细分:算法和应用
-
java编程 网络安全漏洞_Java编程安全漏洞之:不信任用户可控数据
-
jdbc mysql忽略大小写_centos下mysql中table大小写改为不敏感
-
java中反斜杠的用法_java反斜杠\的用法
-
基于python的dango框架购物商城毕业设计毕设源代码使用教程
-
网页打印总是提示安装java_使用打印机打印网页时出现的脚本错误的办法
-
自动化测试Python3+Selenium3+Unittest
-
一种容错的软件定义网络多控制器体系结构
-
MaxScale 实现 MySQL 读写分离与负载均衡
-
新电java面试题_新电笔试题目JAVA
-
MySQL 性能优化(思路拓展及实操)
-
基于混沌映射的脆弱水印算法
-
mysql-8.0.22-el7-x86_64.tar.gz