电脑里的硬件只进行传输和存储01比特数据。CPU两边不同的电压,中间借助半导体得出不同的结果。 通过语言操作元件的出电压和入电压。操作系统所有功能都是调度的内核。如果写程序对接内核,那么程序就可以在任何版本运行,如果不是,就会受到版本的限制。
有自己的主方法,能自己独立运行的叫主进程。通过.exe文件调用main方法,再通过main方法调用其他方法。程序安装就是根据信息填注册表。
固态盘速度快,但有使用寿命,价格高。机械盘速度慢,但没有使用寿命。
断电数据不在的叫闪存,数据在的叫永久化存储。
N极是1,S极是0。
磁盘给一个初始电压,产生相应位移产生电压,根据电压读取数据。
在物理上没有扇区,扇区是操作系统逻辑上划分的,磁盘每个扇区一样大。
5400转/分、台式机7200转/分、服务器10000转/分。转一圈10ms左右。磁盘上查找一个数据平均5ms左右,平均转半圈加上机械臂的摆动。
CPU从内存读数据平均20ns,CPU运转一次平均0.2ns。
1ms=1000μs=100万ns。
CPU运算一次能运算64比特,CPU单次运算量决定操作系统的位数。
从磁盘读取的数据会经过一个过滤装置才会到内存,不合法的数据会形成断路,合法的数据才会形成通路。数据前会有位置数据,过滤装置会判断位置数据是否匹配。干涉电压会影响过滤装置内部电路,使电路变化,控制数据是否能够通过。
内存作用:
CPU处理速度太快,读取速度跟不上,CPU相当于打空转,浪费资源。内存可以批量读数据。如果可以支持批量读取数据,磁盘可以转一圈就把数据拿到,平均5ms,加上CPU再从内存读数据的时间比CPU直接从磁盘读数据时间短。CPU存储空间不足,只能一个数据一个数据的读,时间太长。
程序打开时间慢是磁盘到内存,运行起来快是内存到CPU。
CPU向内存传地址,内存要把那个地址往后的1页总计4096个字节的数据传给CPU
位偏移,例12bit,(5,7),每页2^7,有2^5页
页的作用:支持批量读
高速缓存作用:减少等待时间,提高性能
在主流的CPU中,一般缓存分为一级缓存、二级缓存、三级缓存,而它们之间的速度呈递减,容量呈递增,读取一级缓存中的信息需要3个周期,与CPU处理运算的速度无限接近了,读取二级缓存的周期大约10-15个周期,而三级缓存所需时间为50个周期左右。
任何一个核再同一时刻只能处理一种指令。
由于总线,某一时刻只有一条来自CPU的指令能对内存进行操作。
信号量机制
1、第一个完全处理完后,第二个才能读取。
2、第一个读取完后,给数据一个信号量,第二个处理完数后,修改信号量,等第一个处理完后对比信号量,不对就重新读取。
高速缓存的缺点:会造成数据覆盖
锁标记:会在读取数据后加一个锁标记,等数据处理完后会通知锁标记被释放。信号量不会通知,所以需要重新读取数据。
用数组存数据比用变量存数据省空间。
文件存在磁盘中,变量存在内存中。
文件顺序存储可以加快查找速度,但是可能会有没有空间的问题。
现在磁盘上存储是顺序存储,但存储时会在存储单元里留下空余,方便以后修改数据
流水线技术会使指令重排续可以减少切换次数,提高总体性能,但是多线程下会有问题。