本文目录
0 本人学习资料
1 计算机硬件结构
2 计算机语言的演变史
3 计算机基本组件
4 缓存
5 几个重要概念
0 本人学习资料
这里推荐两个参考视频
一个是本书几位作者的讲课的视频 https://www.bilibili.com/video/av31289365
一个是coursera上南大袁春风教授开的相关课程 https://www.coursera.org/learn/jisuanji-xitong
就目前看过的第一章来说,我推荐先看袁春风教授的,讲的很细,从计算机系统的演变讲起。
而国外的那个视频第一讲,更像是大学的第一堂客,跟书上第一章讲的内容没有太大关联,更多的是导论以及CMU学生上这门课需要遵守的课规......
1 计算机硬件结构
现代计算机的硬件结构遵循着冯诺依曼体系结构,可以抽象为运算器、控制器、存储器、输入设备和输出设备五大部分。
2 计算机语言的演变史
计算机语言的发展史可以概括为机器语言,汇编语言,高级程序语言三个阶段。
机器语言只使用0和1来编写。
汇编语言则是对机器语言的一种增加人类可读性的简化语言。
一般现在软件程序员都是使用高级程序语言,高级程序语言会通过编译器转换为汇编语言再转换为机器语言执行。
3 计算机中基本组件
(1)总线
顾名思义,就是贯穿系统的一组电子管道。
(2)I/O 设备
即输入和输出的设备。
(3)主存
包含我们常说的内存(随机存取存储器,RAM)以及只读存储器(ROM)
(4)处理器
处理器(CPU)中有
GPRs:通用寄存器组
PC:程序计数器
MAR:存储器地址寄存器
MDR:存储器数据寄存器
IR:指令寄存器
ALU:算术逻辑部件
4 缓存
计算机的处理过程可以简单地概括为,系统将信息不停地从一个地方挪到另一个地方进行存储和处理。
所以缓存就显得十分重要,现代的计算机系统的缓存存储层次结构如图。
最近正好在换内存条,用到了cpu-z这个工具,可以看到自己电脑处理器的缓存存储层级。
5 几个重要概念
(1) Amdahl定律
要想显著加速整个系统,必须提升全系统中相当大的部分的速度。
(2)并行与并发
计算机系统中的并发并不是字面上的并发,举例来说,在电脑上听音乐和阅读书籍,计算机看似是同时运行连个程序,其实计算机是通过不断地切换进程来实现的。
并行也不是指程序一起进行,而是对指通过并发使程序运行的更快。
(3)抽象
抽象是计算机科学中十分重要的一个概念。比如说API接口是程序的一种抽象,文件是对I/O设备的抽象,虚拟内存是对程序存储器的抽象,进程是对一个正在运行的程序的抽象,虚拟机是对整个计算机的抽象。
其实我个人觉得抽象不仅在计算机科学中很重要,在生活中也很重要。比如说这篇文章就是是对第一章内容的一个抽象(我个人感觉没有抽象好......)。生活中做一件事的时候,也可以抽象为几个步骤,然后一步步执行。
在平时的编程生活中,在面对一个业务的时候,也需要我们先理清头绪,把要做的事情抽象出几个步骤,然后发现业务不懂的时候就是问产品经理,技术不会的就先谷歌,然后再去编程会更高效。
题外话:
写一篇读书笔记真的好难啊,本章是对整个计算机系统组成的一个简介,但是很多概念性的东西用自己的话很难概述出来...
最后,如果文章有什么错误,欢迎大家指正,我有时间也会不断的修正完善本文。