对计算机程序模型的理解

来源:互联网 发布:iphone导入照片到mac 编辑:程序博客网 时间:2024/06/05 03:56

cpu是存储执行的,指令和数据一定是预先准备好的,外存->内存->缓存->cpu

数据可能会随着程序的执行发生变化,但是指令不会变


未来计算机应该能够打破这种方式,在某些情形下,cpu可以产生新的指令和数据

实现指令再造->机器智能


大多数程序在开始运行的时候先完成一些数据结构的初始化

然后对预先准备好的数据进行运算,最后给出结果


后台程序,包括内核则是在数据结构初始化完成后

进入一个循环执行的过程,随着预先设置好的判断条件变化而执行不同的指令

如果内核不使用中断机制,和daemon程序一回事

循环逐个检查判断条件是否满足

有了中断和调度则可以省去很多循环检查的消耗


以人为中心,以人每天的活动来描述操作系统和应用程序


略去人是怎么来的,和人的前期培养过程

相当于计算机的硬件生产,到系统的初始化


当然,同样的人,在不同的国家文化背景下成长,会长成不同的样子

相当于同样的物质,不同的生产工艺,不同的平台,安装了不同的操作系统


简化人每天的活动:

吃饭--应用程序

睡觉--内核idle线程

看书--看10本书,应用程序

工作--内核线程,写磁盘

上厕所--中断请求

接听手机--中断请求

收发邮件--中断请求


以天为单位循环。。。


有10本书要看,通常是这一本看N页,夹个书签,保存进程上下文,再看一会下一本,进程切换

按顺序把10本书看完?现在很少人这么干吧?

感兴趣了就多看会,不感兴趣就先换一本,时间片长短问题


异常就是吃饭时吃到沙子,必须及时吐掉,难道吃下去?处于进程上下文


对手机铃声的反应就是预先注册的中断请求,电话响了,停下手边的工作接电话

然后继续工作,电话里遇到有更紧急的工作,就记下当前的工作状态,切换

上班不让接电话,那这就是个被屏蔽的中断请求


睡觉。。。绝大多数的cpu在绝大多数的时间里都是在睡觉


上厕所可是不可屏蔽的中断


很忙的时候邮件比较多,可以一次多poll一些,当然也要有限度的

要不就光看邮件吧,别的什么事也不用干了

实在处理不了,总会有一些邮件被遗忘

不忙的时候等邮件提示就行了,怕邮箱坏了则定时检查下,看门狗



原创粉丝点击