我理解的计算机

来源:互联网 发布:淘宝评论显示有违禁词 编辑:程序博客网 时间:2024/06/06 02:35

研究完了http的协议及操作,下面计划把网络测试和性能有关偏底层一点的概念梳理梳理。固本求原。
进程\线程\死锁在《软件设计师教程》中已经阅读学习过,虽然软考挂了没过,但是毕竟还是看过的,再温故知新一遍。就脱离课本上高精深的描述求个自我解脱型的理解。不足之处以后深入再补。
计算机的本质或者说对人类的价值是计算,非要加个定语的话,超高速的计算。
抽象出来的模型为:输入->计算->输出。
那么执行这个模型的硬件及软件就构成了计算机系统。
我们忽略输入设备及各类线,关注最重要的几个设备:CPU、内存。
然后计算模型就变成了:
内存作为数据输入给CPU计算,CPU高速处理(它有个高速缓存,其实就是超高速的内存,太贵所以不能多用,临时中转数据用的),处理结果返还给内存,内存再分配出去。
以上的工作完成是靠操作系统的底层支持完成的。
那么CPU的计算能力是怎么评估的呢,这个要理解才能理解后面的并发。
最原始的计算器,占据了一个很大的房间,多大我不晓得,但是很大就是了。基本的计算单元,利用的是晶体管的“阴阳”属性,或者是电流的“正负极”,抽象为二进制的“0和1”,等于一个晶体管有两种状态,把它们组合起来,做各种变化(比如位运算,位运算就是直接操作二进制,可以实现十进制的加减乘除)完成计算,至于它是如何实现计算的,还是去知乎一下。那结论就是就是要让它,通电断电。所以了,速度就是你能让晶体管,一秒内断电和通电多少次咯。我们来一个转悠名词,叫时钟频率,也可以叫CPU的主频,它的单位是兆赫( MHz),以Intel 酷睿i5 7500 的CPU主频为例,它的主频为3.4GHz,就是一秒钟开关(它的一个周期就一个开关)3.4*1000*1000*1000次,容我算算。1MHz是100万次,那么3.4G就是34000000000次。呵呵呵,我已经深深怀疑人生了。插个题外话,人类的CPU主频已经瓶颈好多年了,据说到了4G就不得了了,所以才出了什么多核CPU,可以看看这个帖子。主流中央处理器的确在05年之后就很少超过4GHz的频率,只能依靠并行运算来为摩尔定律续命。我们这里抛开多核,就说一个事情,CPU很牛逼。

所以,能者多劳。人类工程师,就很合理的会想如何压榨这个计算怪兽。如果是你你会怎么做?如果你老板发现你干活特别快质量又好,你说老板会干什么?当然是给你加活儿啊,涨工资?想多了。老板会让你干更多的活,多么痛的领悟。所以,我们也会让CPU干更多的事。而操作系统就是实现这个目的的基础设备。
操作系统是悬浮在计算硬件和其他软件之间的一个基础性的软件。恶补下操作系统主要干了什么呢?
  (1)作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等;
  (2)文件管理:又称为信息管理;
  (3)存储管理:实质是对存储“空间”的管理,主要指对主存的管理;
  (4)设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收;
  (5)进程管理:实质上是对处理机执行“时间”的管理,即如何将CPU真正合理地分配给每个任务。

一个程序被激活,操作系统会为它分配资源(进程控制块、内存空间、寄存器等),并控制程序进入CPU的次序。而操作系统并不是主动为程序服务的,需要程序编码者提交系统资源的申请,相当于调用系统提供的API。

以上全敲键盘码字,无意中看到的系列文章:计算机理论基础。花了一晚上读完,读了以后感觉倍儿棒,简单明白,所以我也买了一本他参考的图书《计算机的心智 操作系统之哲学原理 第2版》,这广告做的就很好。