经济学雷锋分享 http://blog.sciencenet.cn/u/newniu

博文

从CPU处理指令来分析如何有效监督

已有 1638 次阅读 2018-7-6 23:13 |个人分类:一日三省|系统分类:科研笔记

      本人IT类专业,一直以来对CPU的中断和异常处理不舒服。好好的执行流程,怎么就让中断或异常给中止?不完美呀。不过,如果细想其实也有原因的。在除法中,除数为0是不合法,但是在除法中这也不可避免。在执行除法指令之前可以进行检查,检查工作要消耗几条指令来进行。因为除数为零的概率很低,几乎不存在,这种检查的意义太小。因此CPU的做法是先执行,如果除数是0,那么就触发一个异常,由异常程序处理。

       如果进一步考虑和思索,就感觉CPU的处理问题方式也是一种很好的工作流。任何工作都有意外,有可能出错。为了避免意外,一种方法是每一步都要检查条件是否满足;另一种方法是先做,出了错再处理。计算机的指令是最小的执行单位,如果在执行前检查,其成本则是过于高昂了。

        有一些异常发生后,程序往往无法继续再执行,也就正常中止了。因此在2000年左右,很多人用word写文档,有时候写着突然弹出一个框,说内存异常,或者什么异常,程序退出了。自己写的文档没有保存,很长时间的工作也就白费了,只有重新进行。后来,程序多采用线程,也就是说有多个程序在执行,如果做编辑的线程出了错,退出了。其他线程可以继续执行,甚至人不怎么能感觉到。因为这些线程都拥有同一块内存空间,之间有内存共享。一个线程退出了,另外的线程接着工作。程序不退出,工作的结果也就不会丢失,更加友好。

      



https://blog.sciencenet.cn/blog-200346-1122662.html

上一篇:从“地衣”分析博弈的世界
下一篇:学校里的性骚扰问题真没办法解决?
收藏 IP: 159.226.99.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-25 23:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部