Day02 学习小结

Day02 学习小结

1 计算机基础之编程

1.1 编程语言的定义:

语言是人与人交流一种的工具(介质),是人类进行沟通的表达方式。

编程语言即人与计算机交流的工具,可以让人类与计算机沟通。

1.2 编程的定义:

编程就是使用编程语言编写后缀为.py/.obj/.css等的文件来表达自己的想法(实现一些东西),从而让计算机理解人类的想法,进而帮人类做事

1.3 编程的目的:

编程的目的是让计算机代替人类劳动力,让计算机帮人类完成一些具体的工作。

img

2 计算机的组成

​ 我们目前使用的计算机为冯诺依曼机,这种计算机由五大组成部分组成,分别为控制器、运算器、存储器、输入设备和输出设备。其中控制器和运算器组合成为计算机的中央处理器(CPU),相当于人类的大脑。存储器用来存储数据,相当于人类的记忆。输入设备用来输入数据,类似人类的眼睛,嘴。输出设备用来输出数据,就像人类的手脚(用来做具体的工作)。输入设备和输出设备统称为I/O设备(Input/Output)。

img

2.1 控制器

控制器起到控制作用,用来控制硬件(运算器,存储器,输入/输出设备)。

2.2 运算器

运算器起到运算作用,对数据进行算数运算(1+1=2)和逻辑运算(今天下雨我就带伞)。

2.3 CPU

CPU=控制器+运算器

2.4 存储器

​ 存储器分为内存外存。它是用来存储数据等各种信息的容器,需要时可以取出使用。相当于人类的记忆。

2.4.1 内存

​ 也称为主存。相当于人类的大脑,记东西快,但忘得也快。

优点:速度快

缺点:容量小,断电即消失

2.4.2 外存

​ 即人们通常所说的硬盘,分为机械硬盘和固态硬盘。相当于人类用来记录的笔记本,可以一直保存,但记的慢。

优点:容量大,可以永久储存

缺点:速度慢

2.5 输入设备

​ 用来输入信息,如鼠标、键盘、麦克风、U盘等。

2.6 输出设备

​ 用来输出信息,如显示器、打印机、U盘等。

3 计算机组成的补充

3.1 多核CPU

单核CPU相当于人类的一个大脑。

多核CPU即计算机同时拥有多个CPU,可以同时处理多件事情(多进程)。

                           ![多核CPU](https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1772466066,992907625&fm=26&gp=0.jpg) 

3.2 32位和64位系统

​ 计算机只认识0(低电频)和1(高电频),计算机储存文件或者图片的本质是储存一串0和1组成的数据。

32位的系统意味着计算机一次性能处理32个0和1组成的数据;

64位的系统意味着计算机一次性能处理64个0和1组成的数据。

​ 64位的系统可以处理32位的安装包,但32位的系统处理64位的安装包时。会造成数据丢失。

3.3 机械硬盘的工作原理

​ 机械硬盘通过机械手臂读取磁道上的数据。

img

3.3.1 机械手臂

​ 用来读取数据

3.3.2 磁道

​ 用来存储数据

3.3.3 扇面

​ 划分了磁道,多个扇面(512kb,计算机一次性从机械硬盘上读取521kb的数据)其实就是一个盘(区)。

3.3.4 平均寻磁道时间

​ 由于工业水平的限制,平均寻磁道时间约为5ms。

3.3.5 平均延迟时间

​ 一般的电脑用的都是7200r/min的硬盘,它的相关计算如下:
$$
每秒的转速:7200/60 = 120r/s \

每圈的转速:1/120 = 0.0083s = 8.3ms \

平均转速:(8.3+0)/2 = 4.15ms
$$
​ 延迟时间即为机械手臂划过一圈磁道找到需要数据的时间,可能一下子就找到,可能划了快一圈才找到,因此,平均延迟时间即为硬盘的平均转速,为4.15ms。

3.3.6 平均寻找数据时间

​ 平均寻找数据时间=平均寻磁道时间+平均延迟时间
\[ 5+4.15=9.15ms \]
​ 因此平均寻找数据时间为9.15ms。

3.4 固态硬盘的工作原理

img

​ 固态硬盘是基于电容储存的,其中使用了一些数学的算法。

优点:不需要机械手臂,基于电储存,速度比机械硬盘快很多

4 操作系统

​ 想象一下,如果计算机只有上述的五大硬件组成,那你要读取数据的时候是不是只能自己滑动机械手套?

4.1 什么是文件

文件是存储信息的介质,是操作系统提供给你的一个虚拟的概念,这个虚拟的概念可以用来存储信息,帮你滑动机械手臂。

文件接口(操作系统提供的,而文件只是其中的一个接口):帮你把对硬件的复杂操作简单化

双击接口(操作系统提供的):让你快速打开一个应用程序

4.2 操作系统有什么用

​ 提供给我们一个一个接口,让我们不再关心硬件的复杂操作,让复杂操作简单化。

4.3 应用程序的启动

以QQ为例:

  1. 双击QQ——让操作系统通知CPU(企鹅图标只是操作系统提供给你的具象化的径)找到QQ在外存的位置
  2. CPU让内存去外存读取QQ的数据,QQ数据进入内存
  3. 启动QQ

4.4 计算机的组成(有了操作系统之后)

  1. 应用程序(软件):和操作系统交互
  2. 操作系统(软件):和硬件交互
  3. 硬件:硬件直接交互

4.5 操作系统的启动(开机)

​ 启动软件,首先需要启动操作系统在硬盘上找软件的位置。

​ 操作系统本质也是一个软件,启动操作系统也需要找到操作系统在硬盘中的位置(要找就必须通过临时操作系统)。

4.5.1 临时操作系统(ROM存储器)

​ 计算机出厂的时候就写死了,他会区CMOS存储器上调用操作系统的路径,只负责寻找操作系统的路径

4.5.2临时内存(CMOS存储器)

​ 用电池供电,存储了操作系统的路径(重装操作系统修改启动盘的位置,改的就是这个),存储了时间。

  1. 开机,启动临时操作系统
  2. 临时操作系统区CMOS存储器上找到操作系统的路径
  3. 启动操作系统,临时操作系统关闭

5 编程语言分类

计算机只认识0和1

5.1 编码

0001 --》a

0011 --》b

0100 --》 c

0101 --》d

0111 --》 +

0001 0011 --》 ab

5.2 机器语言

直接写0和1

000101110011 a+b --》(设备) --》 低低低高

早期只有顶级科学家才能使用计算机

优点:执行速度非常快,直接和硬件交互

缺点:开发速度非常慢

5.3 汇编语言

add --》 0111

add(a,b)(汇编语言 )--》(设备) --》 000101110011(机器语言) --》(设备)--》低低低高(高低压电频)

优点(相较于机器语言):开发效率高

缺点(相较于机器语言):执行效率低

5.4 高级语言

a+b(解释型语言) --》(设备)--》a+b(高级语言/编译型语言) --》(设备--翻译器)--》add, a, b (汇编语言)--》(设备)--》000101110011(机器语言) --》(设备)--》低低低高(高低压电频)

5.4.1 编译型语言(通过设备的翻译形式)

类似于谷歌翻译,一次性翻译所有代码位机器代码

# 这串代码表示:打印1+2的值
x = 1
y = 2
print(x + y)

'''
nick handsome
nice to meet you
good morninig
nick handsome
nice to meet you
good morninig
nick handsome
nice to meet you
good morninig
nick handsome
nice to meet you
good morninig
'''

'001001010010000011010101000100101001000001101010100010010100100000110101010'  --> 直接运行

优点(相较于解释型语言):执行效率高

缺点(相较于解释型语言):开发效率低(调试bug非常复杂)

5.4.2 解释型语言(通过设备的翻译形式)

类似同声传译,说一句翻译一句,解释性语言的翻译器是通过编译型语言写出来的

# 这串代码表示:打印1+2的值
x = 1
y = 2
print(x + y)

'''
nick handsome
nice to meet you
good morninig
nick handsome
nice to meet you
good morninig
nick handsome
nice to meet you
good morninig
'''

'''
0000101010
运行
0101101001
运行
0101010101
运行
0000101010
运行
0101101001
运行
0101010101
运行报错
0000101010
运行
0101101001
运行
0101010101
运行
'''

优点(相较于编译型而言):开发效率高

缺点(相较于编译型语言):执行效率低

python从16年到现在实现了由7万个库增长到13万个库,也就意味着13万个功能

库多,使用起来就方便,使用的人就越多,库越来越多,使用的人越来越多

alpha go(通过训练人类棋谱) ---》 alpha zero(两个alpha go互相下棋,赢的就叫alpha zero--》天下第一)

人工智能离你不远了 --》tensorlow1和tensorflow2 --》 越来越简单,越来越亲民 --> 人人都能参与进去,才能长久 --》 人工智能 == 人工智障 --》 人工智能

6 网络瓶颈效应

编程 --》完成具体的事情 --》 帮人类干活

写一个应用程序(一定要联网)

程序一定要通过网络通信

A人的枪打到B人的头需要即时传输信息,做到B立马死。

6.1 木桶效应

​ 木桶效应是讲一只水桶能装多少水取决于它最短的那块木板。

img

6.2 网络的瓶颈效应

网络通信的时间(10ms)远远大于执行程序的时间(0.01ms)--》程序的执行效率没必要考虑了 --》 (网络的应用程序)解释型语言 --》 Python

操作系统(单机操作的应用程序) --》 编译型语言

物理学: 光谱

操作系统 1G内存

微内核 0.1G内存+0.1G网络通信 10G放到服务器

《计算机操作系统》

猜你喜欢

转载自www.cnblogs.com/bowendown/p/11395381.html