一、计算机编程
1、编程语言
一门语言,程序员与计算机之间沟通的一种介质。
2、编程
让计算机做程序员想的事
3、为什么要编程
让计算机帮助人类干活,进而取代人力
二、计算机组成
1、cpu(大脑)
电脑创立初期,控制器和运算器是分开的
控制器(控制)#一
控制硬件(运算器,存储器,输入/输出设备)
2、运算器(运算)#二
算术运算(1+1=2) 逻辑运算(下雨要带伞)
3、存储器(记忆)#三
主存(大脑)
优点:运算速度快,内存越大可运行的程序就越多
缺点:容量小,断电即小事
外存(记笔记)
优点:容量大,永久存储
缺点:速度慢
4、I/O设备
输入设备(眼睛)#四
输入信息,键盘/鼠标/麦克风/U盘
输出设备(决策)#五
输出信息,显示屏/打印机/U盘
冯*诺伊曼机-计算机
三、计算机组成的补充
1、多核CPU
一个CPU相当于一个大脑,多核CPU意味着计算机同时拥有多个CPU,同一时刻处理多件事情(多进程)
2、32位和64位
32位:计算机一次性能处理32个0和1
64位:计算机一次性能处理64个0和1
3、机械硬盘工作原理
机械手臂
读取数据
磁道
存储数据
扇面
划分了磁道,多个扇面其实就是多个盘(区)
一个扇面就是512KB,计算机一次性从盘里读取512KB
平均寻道时间
由于工业水平限制 ——》5ms
平均延迟时间
7200r/min的电脑
7200/60=120r/s 1/120=8.3ms 平均时间=8.3/2=4.15
平均寻找数据时间
5+4.15=9.15ms
固态硬盘
基于电容储存,数学的算法
优点:不需要机械手臂,基于电存储
四、操作系统
1、文件
存储信息的介质,操作系统提供给你的一个虚拟的概念,这个虚拟的概念可以用来存储信息,帮你滑动了机械手臂
文件接口(操作系统提供的,而文件只是其中的一个接口):帮你把对硬件的复杂操作简单化
双击接口(操作系统提供的):让你快速打开一个应用程序
2、操作系统的作用
提供给我们一个一个接口,让我们不再关心硬件的复杂操作,让复杂操作简单化
3、应用程序的启动
- 双击QQ 让操作系统通知CPU(企鹅图标是操作系统提供的)(找到QQ在硬盘的位置)
- cpu让内存去外存读取qq的数据,qq数据进入内存
- 启动qq
4、计算机的组成(有了操作系统之后)
- 应用程序(软件):和操作系统交互
- 操作系统(软件):和硬件交互
- 硬件:硬件直接交互
5、操作系统的启动(开机)
启动软件,首先启动操作系统找软件在硬盘上的位置;操作系统本质也是一个软件,启动操作系统也必须找到操作系统在硬盘中的位置(要找到就必须通过操作系统)
6、临时操作系统(ROM存储器)
计算机进厂的时候就写死了,他会去CMOS存储器上调用操作系统的路径
7、临时内存(CNOS存储器)
用电池供电,存储了操作系统的路径(重装操作系统修改启动盘的位置,改的就是这个),存储了时间
- 开机,启动临时操作系统
- 临时操作系统去CMOS存储器上找到操作系统的路径
- 启动操作系统,临时操作系统关闭
五、编程语言分类
计算机只认识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放到服务器