标签:高速缓存 计算机 世界 输出 9.png 抽象 多核 内存 标准库
1、信息是位 + 上下文,源程序实际上是0和1组成的位(bit)序列,8位一个字节,系统中所有的信息都是由一串位表示的。
2、系统使用ASCII标准表示稳步字符,即用一个唯一单字节大小的整数值表示每个字符。
3、***.c文件的反应分四个阶段:
预处理阶段:根据以#开头的命令,修改原始C程序,生成***.i;
编译阶段:翻译为汇编语言程序,生成***.s;
汇编阶段:翻译为机器语言,生成***.o;
链接阶段:把多个单独预编译好的目标文件合并,生成可执行目标文件。
4、典型系统硬件组织:
总线:携带信息字节并负责在各个部件间传输。
I/O:系统与外部世界的连接通道,每个I/O设备都通过一个控制器或适配器与I/O总线相连。
主存:临时存储设备,用来存放程序和程序处理的数据,是由一组动态随机存取存储区(DRAM)芯片组成,他是一个线性的字节数组,每个字节都有唯一索引。
CPU:解释或执行存储在主存中的指令的引擎,核心是一个字长的存储设备,寄存器,也叫程序计数器(PC),
5、执行程序时,输入字符串,shell将执行输入字符读入寄存器,再放到存储器;
键盘敲回车,shell加载可执行文件,将目标文件的代码和数据从磁盘复制到主存,利用直接存取技术(DMA),可以直接从磁盘复制到主存;
处理器执行机器语言指令,输出字符串字节从主存复制到寄存器文件,再从寄存器复制到显示设备。
6、执行程序,很大一部分时间在进行信息拷贝,而磁盘比主存慢很多,主存又比寄存器慢很多,但是越快的设备越昂贵,所以设计了高速缓存存储器。
7、处理器和和大而慢的设备(主存)之间插入更快更小的存储设备(高速缓存),组成一个存储器层次结构:
8、操作系统,应用程序和硬件之间的软件层,可以1)防止硬件被失控的应用程序滥用。2)提供简单一致的机制来控制硬件设备。
操作系统是通过(进程,虚拟存储,文件)来实现以上功能的,文件是对I/O的抽象;虚拟存储是对主存和磁盘I/O设备的抽象,进程是对处理器、主存和I/O设备的抽象。
9、虚拟地址空间由大量准确定义的区构成,从低向上依次为:
代码数据区:加载的可执行文件;
运行时堆:运行时动态分配的空间;
共享库映射区:存放像C标准库和数学库之类共享库的区域;
用户栈:实现函数调用,程序执行时动态扩展和收缩;
内核虚拟存储器:操作系统一部分,驻留在内存,不允许应用程序读写或调用;
10、文件就是自己序列,每个I/O设备都可视为文件,所有输入输出都是通过Unix I/O的系统函数调用读写文件实现的。
11、多核处理器和超线程支撑了线程级并发:
多个处理器是将多个核集成在一个芯片上,微处理器芯片上的多个核每个都有自己的L1和L2告诉缓存,但是共享更高层次的高速缓存;
超线程是允许一个核执行多个控制流的技术,它可以在单个时钟周期的基础上决定执行哪一个线程;
标签:高速缓存 计算机 世界 输出 9.png 抽象 多核 内存 标准库
原文地址:https://www.cnblogs.com/small-office/p/10024346.html