1.现在大多数机器字长为4字节(32位),8字节(64位)。ps:所以我们可以通过判断int类型的长度来得出系统位数。
2.系统硬件组成,如下图:
总线:贯彻整个系统的一组电子管道。
I/O设备:系统与外部世界联系的通道。(比如鼠标、键盘、显示屏及磁盘。)
主存:是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。
处理器:是用来执行存储在主存中指令的引擎。
3.程序在被其他程序编译时经过的阶段(预处理器、编译器、汇编器和链接器)。
4.CPU执行的加载、存储、操作和跳转的内部运行原理。
加载:从主存储器复制一个字或者字节到寄存器,覆盖寄存器原来的内容。
存储:从寄存器复制一个字或者字节到主存储器的某个位置,覆盖原来这个位置上的内容。
操作:把两个寄存器的内容复制到ALU(算术/逻辑单元),ALU对这两个进行计算,并将结果返回到一个寄存器中,覆盖掉原来这个位置的内容。
跳转:从指令本身抽一段数据,并将数据复制到PC(程序计数器)中,覆盖原来这个位置的值。
5.运行程序。
开始,我们从USB控制器输入命令,通过I/O桥连接总线接口,shell程序逐一的将字符读入寄存器,再把它放到内存(主存)中。
当我们敲回车键时,shell知道我们结束输入。然后shell通过一系列指令加载可执行的hello文件,并将代码和数据从磁盘复制到主存储器中,包含最终输出的"hello world"。
最后:当我们下次访问时,我们就不需要从磁盘读取,可直接从主存储器读取数据,这样大大加快了效率。
6.高速缓存的重要性。
我们为什么不一直从磁盘获取数据,而是从主存储器读取?
1.处理器从磁盘读取一个字的时间开销比主存储器读取的开销大1000万倍。
2.为了数据更快的显示。
3.加快处理器运行速度比加快主存储器的运行速度要容易和便宜的多。
7.我们可以通过高速缓存处理器提高程序性能。
PS:比如说 A---B点需要三个-, 我在AB之间加高速缓存器 A--+B,+存储B中的数据,那么A到B点的过程就少了个-;
8.操作系统两个基本功能:
(1)防止硬件被失控的应用程序滥用;
(2)向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备。
操作系统通过进程、虚拟内存、文件来实现这两个功能。