1、编程
让计算机做程序员想的事
计算机组成
1、cpu(大脑)
电脑创立初期,控制器和运算器是分开的
控制器(控制)#一
控制硬件(运算器,存储器,输入/输出设备)
2、运算器(运算)#二
算术运算(1+1=2) 逻辑运算(下雨要带伞)
3、存储器(记忆)#三
主存(大脑)
优点:运算速度快,内存越大可运行的程序就越多
缺点:容量小,断电即小事
外存(记笔记)
优点:容量大,永久存储
缺点:速度慢
4、I/O设备
输入设备(眼睛)#四
输入信息,键盘/鼠标/麦克风/U盘
输出设备(决策)#五
输出信息,显示屏/打印机/U盘
2、操作系统的作用
提供给我们一个一个接口,让我们不再关心硬件的复杂操作,让复杂操作简单化
4、计算机的组成(有了操作系统之后)
- 应用程序(软件):和操作系统交互
- 操作系统(软件):和硬件交互
- 硬件:硬件直接交互
3、应用程序的启动
- 双击QQ 让操作系统通知CPU(企鹅图标是操作系统提供的)(找到QQ在硬盘的位置)
- cpu让内存去外存读取qq的数据,qq数据进入内存
- 启动qq
5、操作系统的启动(开机)
启动软件,首先启动操作系统找软件在硬盘上的位置;操作系统本质也是一个软件,启动操作系统也必须找到操作系统在硬盘中的位置(要找到就必须通过操作系统)
五、编程语言分类
计算机只认识0和1
1、编码
0001->a
0011->b
0100->c
0111->+
叫我 0011 0010 0011 1010—》叫我爸爸
2、机械语言
写0和1
000101110011 a+b【普通人写不来】-》(设备)-》低低低高低高高高低低高高
早期只有顶级科学家才能使用计算机
优点:执行速度非常快,直接和硬件交互
缺点:开发速度非常慢
3、汇编语言
add->0111
add(a,b)(汇编语言)-》(设备))--》000101110011--》(设备)----》低低低高低高高高低低高高(高低压电频)
优点(相较于机器语言):开发效率高
缺点(相较于机器学习):执行效率低
print("hello")--->00100100101
4、高级语言
a+b(解释型语言)---》(设备)---》a+b(高级语言/编译型语言)--》(设备--翻译)--》add,a,b--》(设备)--》00010101001--》低低高高(高低压电频)
编译型语言(同过设备的翻译形式)
类似于Google翻译,一次行翻译所有代码为机器代码
x=1
y=2
print(x+y)
#这串代码表示:打印1+2的值
'''
nick is pretty nice
I would like a hamburger
'''
'0001110100010110'--->直接运行
优点(相较于解释型语言):执行效率高
缺点(相较于解释型语言):开发效率低(找bug非常复杂)
解释型语言(同过设备的翻译形式)hello
类似于同声传译,说一句翻译一句,解释型语言的翻译器是通过编译器语言写出来的
x=1
y=2
print(x+y)
#这串代码表示:打印1+2的值
'''
nick is pretty nice
I would like a hamburger
'''
'00011011001'
'10001000111'--->逐段运行
优点(相较于编译型而言):开发效率高
缺点(相较于编译型而言):执行效率低
六、网络的瓶颈效应
网络通信的时间(10ms)远远大于执行程序的时间(0.01ms)--》程序的执行效率完全没必要考虑了--》(网络的应用程序)解释型语言--》python
操作系统-(单机操作的应用程序)--》编译型语言
物理学:光谱
操作系统1G内存
微内核0.1G内存+0.1G网络通信0.9G放到服务器