计算机系统知识大纲
简要介绍
编写目的
- 对于计算机体系内容的重新学习并归纳记录,争取以自身的理解重新认识过往学习的知识(专业知识相关)
- 锻炼自身的专注力、耐性、归纳能力等等(专业以外)
- 在编写内容的过程中观察、总结自身的思想方法,争取运用到其它领域中(发展)
- 化解(延缓?)自身的一个小(?)危机(?)
参考书籍
- 《深入理解计算机系统》
内容
- 本质上学习笔记,主要记录自身对相关概念的理解,或是搬运其它资料,整体可能缺乏实践,内容较为随意,十分主观
- 整个计算机体系内容较为庞杂,在此不会进行全面介绍,只针对自身学习内容(感兴趣的)讲述,内容当前暂定为:计算机组成原理,数据结构与算法,操作系统,计算机网络
个人见解
- 对于计算机学科本身,我觉得有两种思维比较突出,在各种领域展现不同的效果
函数模型
- 将计算机系统抽象简化成一个函数:
其中:
- 表示输入,内容有限
- 表示一个函数/功能模型,在实现把输入内容变成输出内容的前提下,里面可以是任意的内容
- 表示输出,内容同样是有限的
- 使用者/用户仅了解 处提供了输入 和输出 的地方,但对于 内部的构造原理一无所知(黑盒);
- 开发者需要实现 内部,对外提供输入 和输出 的地方或规范(接口)
举个例子,当集合 内的数以此作为输入 时,要求输出 的结果分别是 ,此时 可以是下图的实现(绿色部分):
绿色部分实现对用户是未知的,内部的实现可能有点奇怪(例如 ,已经和输入内容无关),但算是能够“正常”运转
- 的内容是任意的,该函数在计算机系统内部多种领域均可套用
模块化
- 对于 内部而言,一个复杂的系统会被拆分成多个模块,执行特定任务。每个模块相连接,使整个系统得以运转
- 模块是有限个的,模块的功能在有限步骤内完成
- 同样,每个模块也可以是一个函数模型,对于负责完成模块的开发者是可见的,其他人不可见
- 功能模块化便于后续定位问题,迭代优化更新等
目录
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Forgotten Area!