入坑计算机原理嘛,漫游慢慢游
1.1 信息就是位+上下文
什么是位? 一个程序的生命周期是从一个源程序开始的,源程序实际上就是一个有值 0 和 1 组成的 位(比特 序列,8个位 为一组称为字节 每个字节表示程序中的某些文本字符
位<字节<字符 这样子的组成关系吧
系统中所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传的数据,都是由一串比特表示是的
什么是上下文?在不同的上下文中,一个同样的字节 可能表示一个整数、浮点数、字符串或者是机器指令
1.2程序被其他程序翻译成不同的格式
hello程序的生命周期是一个高级c 语言程序开始的,为了看的懂,每一条C语句需要被其他程序转化为一系列低级机器指令,即为可执行目标文件
1.3了解编译系统如何工作是大有益处的
优化程序性能
理解链接时出现的错误
避免安全漏洞
总是说要优化,如果了解计算机是如何编译的,是不是能够从底层优化呢?带着疑问阅读后面章节
1.4 处理器读并解释储存在内存中的指令
这个是指我们常用的运行命令的shell,hello程序被编译成可执行目标文件,shell加载并运行 输出hello程序它的消息 然后等待下一个命令行
1.4.1 系统的硬件组成
这个我认为就是 电脑的组成啊(有鼠标键盘 显示器 主板 内存 CPU) 然后后面的章节会讲详细讲到他们是怎么密切配合工作的
1.4.3 hello 程序运行
hello程序放在磁盘上
程序加载,从磁盘复制到主存
当处理器运行程序,从主存复制到处理器
数据串“hello Word”开始时在磁盘上,复制到主存上,然后再从主存复制到显示设备
哇 复制来复制去的 是不是额外的开销,是不是可以提升一下速度呢?(高速缓存)
1.5高速缓存至关重要
结论:高速缓存存储器存在的应用程序员能够利用高速缓存将程序的性能提高一个数量级
在处理器和一个较大较慢的设备(主存)之间插入一个更小更快的存储设备(高速缓存)的想法已经成为一个普遍的观念
1.6存储设备形成层次结构
这个图告诉我,高速缓存器可以加很多个,那就是有好多级啊 然后通过需求来提高哪一级的性能么?
1.7 操作系统管理硬件
这个是讲 I/O 设备
运行hello程序都没有直接访问键盘啊 鼠标显示器这些的 它们依靠着操作系统提供服务
操作系统有两个基本功能 一是防止硬件失控的应用程序滥用 二是 向应用程序提供简单一致的机制来控制复杂又通常大不相同的低级硬件设备
1.7.1 进程
进程是操作系统对一个正在运行的程序的一种抽象
实现进程这个抽象概念需要低级硬件和操作系统软件之间的紧密的合作
1.7.2 线程