程序的顺序执行与并发执行

单道程序设计技术

是指内存一次只能装载一个程序运行,在这次程序运行结束前,其他程序不允许使用内存。这是早期的操作系统所使用的技术。

多道程序设计技术

是现代操作系统普遍使用的,它可以允许多个程序进驻内存,系统通过某种调度策略交替执行程序.所有多道程序设计操作系统都建立在进程的基础上。

单核CPU

单核CPU较为死脑,在通电时该CPU就会执行存储块中的指定地址的指令,如果你想要执行内存块其他地方的代码必须调整总线位置才可以让其执行。单核CPU就相当于阻塞程序,在工作期间只能执行某一个程序

多核CPU

多核CPU即多个CPU组成,这些CPU集成在一个芯片里 。这些CPU通过总线来交互数据,并且工作是并行的,资源分配是由操作系统来完成的,操作系统来决定程序cpu的控制权分配,所以一个多核cpu的工作效率大多体现在操作系统的分配上,因为一个CPU基本上可以执行很多个程序,通过PCB进程控制块的方式存储当前代码段,然后来回跳转,所以当你的CPU核过多时,操作系统在分配时可能会导致部分CPU闲置。

多个CPU

即拥有多个cpu的主机,每个cpu只能用来独立执行不同的程序,这些cpu都是单核的。但多个CPU只用在特定的机器上,家用的电脑用的都是多核CPU。因为虽然多个CPU运行速度快(单核CPU是100%运行,但双核CPU也就60%乘2运行,要三核50%乘3 四核40%乘4 这样的运行速度。),但是难以管理,因为每个CPU有自己的总线,一级二级缓存,那么这样需要更大的占用面积,更多的总线,因为这些CPU不是封装在一个芯片里的!

程序的顺序执行

一个具有独立功能的程序独占处理器直至最终结束的过程称为程序的顺序执行。系统中任意时刻只有一个程序被载入内存,占用CPU等资源在运行,一个程序执行完后,才能执行另一个程序。程序顺序执行时的特性,将为程序员检测和校正程序的错误,带来极大的方便。

程序顺序执行时的特征

  • 顺序性
    1. 处理机的操作,严格按照规定顺序执行
  • 封闭性
    1. 封闭环境下运行,程序独占全机资源
    2. 只有当前运行程序才能改变资源状态
    3. 程序执行结果不受外界因素的影响
  • 可再现性
    1. 只有程序执行时的环境和初始条件相同,程序重复执行结果相同

程序的并发执行

程序的并发执行是指在同一时间间隔内运行多个程序。 也就是在一个程序运行结束之前,可以运行其它的程序。对于用户来说,有多个程序在同时向前推进,但是从微观上来看,任意时刻CPU上都只有一个程序在执行。

程序并发执行时的特征

  • 间断性
    1. 每个程序在CPU上运行,都是时断时续的。当一个资源被占用时,其他需要该资源的程序不得不暂停,待资源被释放时方可执行。相互制约将导致并发程序具有“执行—暂停—执行”这种间断性的活动规律。
  • 失去封闭性
    1. 程序正在并发执行时,由于它们共享资源或者合作完成同一项任务,系统的状态不再受其中一个程序的控制和改变,所以就失去了封闭性。比如淘宝卖商品,每卖出一件库存都要减去1,而进货又可以对库存进行增加,所以库存已经不是某个程序特有的了。
  • 不可再现性
    1. 因为程序在并发执行时失去了封闭性,所以任何一个程序都有可能对系统的状态进行改变,这也意味着程序执行的结果可能会不相同。例如两个程序同时往一个文件追加内容,在执行数次之后,每个文件所展现出的内容可能各不相同。
posted @ 2020-03-27 22:35  Hhhighway  阅读(3438)  评论(0编辑  收藏  举报