计算机科学速成课笔记(详解)

课程链接:

https://www.bilibili.com/video/av2 1 376839?p=3

第一章.计算机发展和历史

 

1.1计算机实质

计算机都是由一些简单的组件,靠一层层抽象做出来的复杂操作

计算机底层其实都是很简单的,难的是一层层抽象,靠一些简单的组件进行俄罗斯套娃

1.2关于计算的历史

  1. 公元前 2500 年,算盘出现,为十进制,功能类似一个计数器。
  2. 公元前 2500 年-公元 1500 年:星盘、计算尺等依靠机械运动的计算设备出现
  3. 公元 1613 年:computer 的概念出现,当时指的是专门做计算的职业,
  4. 1694 年:步进计算器出现,是世界上第一台能自动完成加减乘除的计算器。
  5. 1694-1900 年:计算表兴起,类似于字典,可用于查找各种庞大的计算值。
  6. 1823 年:差分机的设想出现,可以做函数计算,但计划最后失败。
  7. 19 世纪中期:分析机的设想出现,设想存在可计算一切的通用计算机。
  8. 1890 年:打孔卡片制表机。原理:在纸上打孔→孔穿过针→针泡入汞→电路连通→齿轮使计数+1。

1.3计算机底端器件的变化

继电器-----真空管------晶体管

1.4元器件变化原因和历史

1945 年 哈佛马克 1:使用继电器,用电磁效应,控制机械开关,缺点为有磨损和延迟。

*最早还因为有虫子飞进去导致故障,引申出 bug=故障的意思。

1943 年 巨人 1 号:使用真空管(三极管),制造出世界上第一个可编程的计算机。

1946 年 ENIAC:第一个电子通用数值积分计算机。

1947 年 晶体管出现,使用的是固态的半导体材料,相对真空管更可靠。

1950s 空军 ANFSQ-7: 真空管到达计算极限。

1957 年 IBM 608: 第一个消费者可购买的晶体管计算机出现。、

1.4元器件的作用

电流控制的开关

第二章:布尔逻辑和逻辑门

2.1为什么使用二进制

  1. 因为晶体管只有两种状态:通电和断点,只能根据元器件的状态来设计计算机
  2. 二进制也可以代替十进制进行运算
  3. 多进制不稳定

门的概念:控制电流的通过

2.2依靠true和false进行的运算NOT,AND,OR

NOT

逻辑门组成:逻辑门一般包含一根控制线,两根传输线,上面的传输线和控制线组成输入端,下面的传输线为输出端,

晶体管的实现方式:

  • 半导体通电 True,则线路接地,无输出电流,为 False。
  • 半导体(控制端)不通电 False,则输出电流从右边输出,为 True。

AND

3 用晶体管实现的方式:

串联两个晶体管,仅当 2 个晶体管都通电,输出才有电流(True)

 

OR

3 用晶体管实现的方式:

使用 2 个晶体管,将它们并联到电路中,只要有一个晶体管通电,则输出有电流(True)。

异或门 

理解:和加法运算一样,但是因为是二进制,1+1会变成0

0+0=0 0+1=1 1+0=1 1+1=0

异或门像一个笑脸加或门

 第三章:算术逻辑单元

3.1算术逻辑单元简要概括

简称:ALU

组成:1个算术单元,1个逻辑单元

作用:负责运算的基本组件

3.2算术单元

基本组件:由全加器,半加器,全加器和半加器又由四个门构成

其他运算都能用加法得到

半加器:一般用于两个数的相加

全加器:一般用于三个数的相加,第三个数为上一个数的进位

 

超前进位全加器:多位数的相加,一般由一个半加器和多个全加器组成,多少个全加器看具体范围

 解释:一开始两个个位相加用半加器,后面有进位,需要用全加器,这里是Byte类型,所以1个半加器,7个全加器,如果很小后面的都是0加0,如果很大,最后一位还有进位的话(carry==1)就会出现溢出情况

3.3逻辑单元

进行除了加减乘除的逻辑运算,如not,or,and等

3.4ALU的抽象

第四章:内存和寄存器

 4.1锁存器

相当于可以存一位,下面是逻辑门实现

 4.2门锁

因为需要输入两个数才能控制里面的东西,门锁就是用一根线控制,而另外一根线来控制你需不需要存。

 4.3寄存器

寄存器由一排门锁构成,中间一根线来控制全部门锁需不需要存,其它线是输入端,因为门锁只能存一位数,但是寄存器可以存多位数字。

 4.4门锁矩阵

因为寄存器需要2*n+1根线,大量浪费了资源,用矩阵就能减少浪费

比如一个16*16的门锁矩阵,因为每次只能存一位,所以需要八个门锁矩阵才能存一个数,可以存156个数

通俗理解:

16*16 的门锁矩阵,可理解为 1 个公寓,1 个公寓 256 个房间。

8 个门锁矩阵并排放,则有了 8 个公寓。

规定每一个公寓同一个编号的房间,都有一样的标记(地址),共同组成 8 位数字。

那么 8 个公寓就能存 (8*256 / 8)个数字。相当于256个寄存器

原因:

16*16 的门锁矩阵虽然有 256 个位置,但每次只能存/取其中 1 个位置的数字。因此,要表示 8 位数字,就需要同时调用 8 个门锁矩阵。

这才是实用的 

4.5内存

 一块块的门锁矩阵构成的大型储存结构,相当于俄罗斯套娃,有大小区分

由上面八个门锁矩阵构成的内存条储存结构位下面图:

第五课:中央处理器(cpu)

5.1第一个cpu

解释: 

5.2cpu的基础结构

 上面的八位寄存器:存储数据

ALU:运算

中间那块:运行完结果先暂时存到这,再放到上面的寄存器中,

中间那块两个寄存器

  • 上:指令寄存器,用来解析拿过来的指令,解码,看需要怎么执行
  • 下:指令地址寄存器,存储指令在内存中的地址

内存条

  • 左边:指令存储地址,
  • 右边,表示指令需要用到的数据

下边的远行时钟:

  • 负责管理 CPU 运行的节奏,以精确地间隔,触发电信号,控制单元用这个信号,推动 CPU 的内部操作。
  • 时钟速度:CPU 执行“取指令→解码→执行”中每一步的速度叫做“时钟速度”,单位赫兹Hz,表示频率。
  • 超频/降频
  • 超频,修改时钟速度,加快 CPU 的速度,超频过多会让 CPU 过热或产生乱码。
  • 降频,降低时钟速度,达到省电的效果,对笔记本/手机很重要。

 5.3过程

取指令,解码,执行,指令地址变化反复操作,

取指令:在指令地址寄存器中通过里面的地址找到,内存中的地址

解码:通过内存传过来的指令,解析前四位,找到指令表的指令ID,解析后面四位和根据指令表中的代码明白要做什么,指令表就在cpu中,相当于说明书,是cpu生产固有的

指令表:给 CPU 支持的所有指令分配 ID

执行:通过解析的指令ID找到描述并执行(→涉及计算时→调用所需寄存器→传输入&操作码给ALU执行)→调用RAM特定地址的数据→RAM将结果传入寄存器→指令地址寄存器+1)

指令地址寄存器:用了一天指令,就会更新加1

5.4指令和程序

指令:指示计算机要执行什么代码,多条指令就是程序了,后面的编程语言就由多条指令构成

指令和数据都是存在内存中

指令集:记录指令名称、用法、操作码以及所需 RAM 地址位数的表格。存在cpu中,相当于说明书

 指令命令:

LOAD 指令:

  • 计算机会按地址的顺序,读取 RAM 中所记录的指令/数据。
  • 计算机接受到指令后,如 LOAD_A,则通过数据线将数据传至寄存器 A。

 ADD 指令:

  • ADD B A 指令告诉 ALU,把寄存器 B 和寄存器中的数字加起来,存到寄存器 A 中。

JUMP 指令:

  • 遇到 JUMP 指令,程序会跳转至对应的 RAM 地址读取数据。
  • JUMP 指令可以有条件跳转(如 JUMP-negative),也可以无条件跳转。

第六课:CPU高级设计

6.1概念梳理

缓存:

  • 在 CPU 中的小块 RAM,用于存储批量指令。
  • 缓存命中:想要的数据已经在缓存里
  • 缓存未命中:想要的数据不在缓存里
  • 脏位:缓存里每块空间,有个特殊标记,叫脏位,用于检测缓存内的数据是否与 RAM 一致。

多核处理器:一个 CPU 芯片中,有多个独立处理单元。

6.2怎么提高CPU性能

1.加快晶体管的速度,但是现在已经在极限了

2.缓存,在CPU中新加了一小块内存,用来存取一段RAM中的值,当取数据时,就不用经过数据线,直接在缓存中拿东西,就加快了CPU效率(不加缓存,CPU 没位置放大量数据)

脏位:存储与RAM不同步的数据,错误的 数据

为什么呢?

空等原因:从 RAM 到 CPU 的数据传输有延迟(要通过总线,RAM 还要时间找地址、取数据、配置、输出数据)。

缓存同步:

缓存同步一般发生在 CPU 缓存已满,但 CPU 仍需往缓存内输入数据。此时,被标记为脏位的数据会优先传输回 RAM,腾出位置以防被覆盖,导致计算结果有误。

就是让缓存的数据和RAM数据进行配对,去掉配对不成功的数据,再拉进来缺少的数据,

3.指令流水线

一次执行一个指令十分慢,因为需要取址---解析---执行,如果让这三个一起执行就快多了,但是执行这条命令时可能你另外一条命令还要用你这里面的数据,所以需要提前判断指令间的依赖关系,才能一次性执行多条指令

当你执行多个运算时需要多个ALU,所以需要用多核CPU

4.超级计算机(多个 CPU)

在一台计算机中,用无数个 CPU,做怪兽级的复杂运算,如模拟宇宙形成。

第六课:集成电路和摩尔定律

6.1分立元件和数字暴政

计算机都由一个个的分立元件构成,每个分立元件都用大量先构成就会造成数字暴政

6.2集成电路和仙童半导体

计算机由各个组件通过线连接而成,拼接成计算机,还不如把各个组件包在一起合成一个新的独立组件,这个独立组件就是集成电路,仙童半导体(用硅做成)让集成电路变成了现实。为了不用那么多线,发明了印刷电路板,可以在上面蚀刻(光刻)金属线的方式代替线,连接各个组件,这样可以让运行程序的效率越来越快

 6.3摩尔定律

每两年左右,得益于材料和制造技术的发展 ,同样大小的空间,能塞进两倍数量的晶体管。

第七课:操作系统

7.1操作系统概述

简述:OS

因为以前都是用纸,只能单独运行一个程序,放程序时间都比程序运行时间块,而操作系统可以让计算机自动运行。操作系统也是一个程序,电脑启动一开始就启动它,不过他有硬件权限,可以管理和运行其它程序,就比如把操作系统看成一个大程序,其它都是小程序。它能让其它小程序顺序启动

7.2功能

1.批处理:运行完一个程序可以自动运行下一个程序

2.设备驱动程序

为了使所写程序和不同类型的电脑兼容,我们需要操作系统充当软件和硬件之间的媒介,更具体地说,操作系统提供程序编程接口(API)来抽象硬件,叫“设备驱动程序”。程序员可以用标准化机制,和输入输出硬件(I/O)交互,

3.多任务:操作系统能使多个程序在单个CPU上同时进行的能力,叫做“多任务处理”

4.多用户(分时):但是每个用户分配内存和cpu

5.动态内存分配和虚拟内存:

对程序来说,资源和指令在内存中储存的地方看上去都是连续的,如0-999,1000-2000,但是多个程序一起运行会让一个程序的内存被其它程序占用造成不连续(动态分配内存),造成程序员可能寻找不到下一个程序,操作系统会把这个不连续的内存虚拟化,让程序员看上去是连续

7.3组成

一部分是内存管理也叫内核(管理输入输出和一些多任务内存分配)

另一部分是程序和一些运行库--指令(我们写的程序就是用内存库的指令来的)

第八课:内存和储存介质

纸卡 纸带

问题:读取慢 难修改 难存临时值

延迟线存储器

利用线的延迟在线里存储数据,又叫顺序存储器或者循环存储器。

存在问题:

1 不能随意调出数据

2 难以增加内存密度

磁芯

利用电磁感应原理

问题 成本高

磁带

问题 访问速度慢

磁鼓

与磁带相似

硬盘

与磁带相似

内存层次结构

在计算机中,高速昂贵和低速便宜的内存混合使用以取得一个平衡

软盘

除了磁盘是软的,其他都和硬盘一样,好处是便携

光盘

原理:光盘表面有很多小坑,造成光的不同反射,光学传感器会捕获到,并解码为 1 和 0

第九课:文件系统

概述:文件系统就是很好的管理文件的一种方法

文件:一些有规则的数据组合

  • txt:文件靠着ascii等字符集进行解码后面变成二进制储存
  • 声音文件:通过声音转化成一条一条的波,通过波的高度,也就是振幅,计算高度转变成二进制储存。
  • mp4:根据颜色进行存储,有混合色

目录文件:用来解决多文件问题,存其他文件的信息,比如开头,结尾,创建时间等

平面文件系统:前面就是root目录,下面全是文件

解决文件紧密的排序造成的问题

1. 把空间划分成一块块

2. 文件拆分存在多个块里

碎片整理

文件的增删改查会不可避免的造成文件散落在各个块里,如果是磁带这样的存储介质就会造成 问题,所以需要碎片整理——计算机把文件内容调换位置

分层文件系统 - Hierarchical File System:

有不同文件夹,文件夹可以层层嵌套

元数据:储存数据的数据(数据的描述信息)

第十课:压缩

下面为减少重复的压缩

10.1.游程编码压缩

比如上述图,把连续的7个一样的用额外的一个字节代替,减少重复,那个字节就代表7

 10.2霍夫曼树 Huffman Tree和字典编码 Dictionary coders

就是把每个东西,比如像素的频率靠哈夫曼树的枝来寻找

 

 

 

 

 下面为减少感知的压缩

 10.3感知编码 Perceptual coding和有损压缩 jpeg 格式

比如一些超声波人类感知不到和一些视频背景可以弄模糊。等

第十一课:图形界面

11.1阴极射线管(CRT)

引导电子不断发射,快速重复

11.2像素和字符

后面出现了像素,通过二进制寻找到这个颜色,但占了比较大内存,就一般用字符代替像素

11.3屏幕缓存区

和cpu中的缓存区一样,更快的显示图片到屏幕上,这块区域专门为图形保留

后面出现了3D屏幕....

第十二章:计算机网络

12.1局域网

计算机近距离构成的小型网络,比如家里的路由器连接了各个设备再连接到以太网,学校的大型服务器等,以太网为经典的局域网

12.2媒体访问控制地址(MAC)

就像wilf密码,当你连接,以太网交换机会把你的ip加入到你连接缓存中,就可以连接到更大范围的广域网了,用于确认局域网和WiFi传输的对象

12.3载波侦听多路访问(CSMA)

传输媒体:如wifi的载体是空气传输,传输到路由器,到更大的以太网传输就是电线了(dianbaoshu),传输速度就是宽带了。

12.4退避指数

举一个简单例子,当你向路由传输数据时,别的设备可以能也会传输设备,就会发生冲突,当检测到冲突时,就会在重传之前等待一小段时间,包括固定时间+随机时间,随机时间就是固定时间的指数增长,这就是指数退避。当达到随机时间的顶值时就会重传

12.5冲突域

12.2(设备)和 12.3(传输载体)的总称就叫“冲突域”,为了避免冲突可以进行电路交换,就是换线,看一看另一根线是否空闲,

 12.6报文交换

就是靠ip进行交换。每个电脑都有一个ip,通过ip可以识别省份,进行多路传输,电路交换只有一条路,但是报文交换有多条路,当一条路冲突,可以转到另一条路,比如你去北京也有多条路,但是报文比较大时就会阻塞线路,得不到回应,所以就会把报文分成多个数据包进行传输,这是分组交换

消息跳转次数叫跳数,哪条跳数高就会增加别的跳数小的传输,这叫跳数限制通过这个可以控制传输速度。

第十三集:互联网

13.1过程

你的电脑先连接到局域网,相当于wifi,局域网再连接到广域网的路由器,再继续连接更大的广域网,广域网的路由器一般属于连通,移动等,再连接最大WAN,往复几次,最后到互联网主干。

13.2ip

ip能识别计算机是不是目的计算机,传输到正确的计算机。

13.3用户数据报协议(UDP)

传到对应的服务器(计算机),还需要我们发送到响应的程序中,所以需要一个标识,称为端口.

13.4校验和 - Checksum

UDP校验和只有16位,超过这个数,弃高位。

13.5TCP

TCP相当于UCP,但是UCP不能确认顺序安全到达控制发送的文件按顺序到达 要求接收方确认无误后发送确认码(ACK),确认码的成功率和来回时间可以用来推测网络的拥堵程度,TCP可以根据这个调整传输率。由于这个特点,TCP对时间要求高的程序不适用。

13.6域名系统DNS

因为ip和端口很难记,就用了树状结构用域名代替

第十四集:万维网

14.1基本单位

页面

14.2超链接 Hyperlinks

点超链接可以去到另一个页面,文字超链接又叫超文本

3.状态码

状态码代表所访问网页的状态

4.URL - 统一资源定位器 - Uniform Resource Locator

网页的唯一网址

5.HTTP - 超文本传输协议 - HyperText Transfer Protocol

6.HTML - 超文本标记语言 - HyperText Markup Language

后续更新....

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值