(1)计算机系统是由硬件和软件组成的。至于软件和硬件之间是如何有效配合,让我们期待后续。
(2)我们的程序(C程序,其他的我也不知道)经过编译链接后变成了可执行的目标文件
【见下图
(3)硬件中比较重要的概念:
**主存:冯诺依曼结构中的内存储区那一块,可以理解为运存。主要方便CPU读取和存入指令。外存储区就是磁盘之类的。
处理器/CPU:由【控制器】和【运算器】组成。简单理解来说。
——(一)控制器:控制指令读取流程。【更细分有
————①PC,程序计数器。取指令时规定存在寄存器哪里 的。
——(二)运算器(ALU):就是算。其中有很多寄存器,自行了解。
结合起来一个hello.c 的程序运行过程是这样的
【shell取出指令,分析指令,执行指令,又回到取出指令
【很多时间都花在数据的拷贝上,所以呢,我们需要提高存储器的效率
存储设备所形成的层次结构
图中的L1和L2是有区别的,具体可以自查。
**为什么高速缓存重要呢?
首先,较大的设备(主存)要比较小的设备(寄存器),运行要慢很多。前面的厨师做饭很慢,后面从仓库拿食材的【寄存器】倒很快。为了不让拿食材的干站着,我们就在厨师【主存】和拿食材的人中间,设置了一个区域【高速缓存区】。拿食材的可以把下一道菜,甚至下下一道菜的食材找到,放在那里,等着厨师处理。
操作系统:方便控制软件和硬件的。主流的有windows,linux,unix,mac等。
计算机几个抽象概念:
(1)文件:对IO设备的抽象,过于抽象了,我暂时不懂
(2)进程:对正在进行的程序的一个抽象。进程由线程组成。单核的计算机,就是单线程。多核的计算机,就是有多线程。多线程更高效。
(3)虚拟内存:对存储器的抽象
*虚拟地址空间:对进程虚拟了一下,让每个进程看到的内存都是一样的。
(4)虚拟机:对计算机系统的抽象
**(5)并发和并行
——并发:一段时间,一个处理机运行多个程序。但一个时刻,只有一个程序在处理机上运行。
——并行:有了多个处理机,一个时刻,也能执行多条程序啦~
比喻来说就是你去食堂打饭。一个师傅面前有两队。
师傅状态差,就只能一次打一个人的饭。【并发】
如果今天师傅状态好,可以左右开工,一次就能处理两个人的饭了。【并行】
*所以为什么现在说电脑要多核的,多核能实现并行,运行更快。
系统之间的通信(略)
计算性能的【阿姆尔达定律】
To be contined