简要介绍

编写目的

  • 对于计算机体系内容的重新学习并归纳记录,争取以自身的理解重新认识过往学习的知识(专业知识相关)
  • 锻炼自身的专注力耐性、归纳能力等等(专业以外)
  • 在编写内容的过程中观察、总结自身的思想方法,争取运用到其它领域中(发展)
  • 化解(延缓?)自身的一个小(?)危机(?)

参考书籍

  • 《深入理解计算机系统》

内容

  • 本质上学习笔记,主要记录自身对相关概念的理解,或是搬运其它资料,整体可能缺乏实践,内容较为随意,十分主观
  • 整个计算机体系内容较为庞杂,在此不会进行全面介绍,只针对自身学习内容(感兴趣的)讲述,内容当前暂定为:计算机组成原理数据结构与算法操作系统计算机网络

个人见解

  • 对于计算机学科本身,我觉得有两种思维比较突出,在各种领域展现不同的效果

函数模型

  1. 将计算机系统抽象简化成一个函数:

y=f(x)y = f(x)

其中:

  • xx 表示输入,内容有限
  • ff 表示一个函数/功能模型,在实现把输入内容变成输出内容的前提下,里面可以是任意的内容
  • yy 表示输出,内容同样是有限
  1. 使用者/用户仅了解 ff 处提供了输入 xx 和输出 yy 的地方,但对于 ff 内部的构造原理一无所知(黑盒);
  2. 开发者需要实现 ff 内部,对外提供输入 xx 和输出 yy 的地方或规范(接口)

举个例子,当集合 {11,12,13}\{11,12,13\} 内的数以此作为输入 xx 时,要求输出 yy 的结果分别是 1,2,31,2,3 ,此时 ff 可以是下图的实现(绿色部分):
函数实现(绿色部分)
绿色部分实现对用户是未知的,内部的实现可能有点奇怪(例如 f4f4 ,已经和输入内容无关),但算是能够“正常”运转

  • ff 的内容是任意的,该函数在计算机系统内部多种领域均可套用

模块化

  1. 对于 ff 内部而言,一个复杂的系统会被拆分成多个模块,执行特定任务。每个模块相连接,使整个系统得以运转
  2. 模块是有限个的,模块的功能在有限步骤内完成
  3. 同样,每个模块也可以是一个函数模型,对于负责完成模块的开发者是可见的,其他人不可见
  4. 功能模块化便于后续定位问题,迭代优化更新等
    模块化

目录

  1. 计算机组成原理