目录
- 计算机编程基础
- 什么是编程语言
- 什么是编程
- 为什么要编程
- 计算机的组成
- CPU(大脑)
- 控制器(控制)# 一
- 运算器(运算)# 二
- 存储器(记忆)# 三
- 主存(脑子)
- 外存(笔记本)
- I/O设备(Input/Output设备)
- 输入设备(眼睛)# 四
- 输出设备(行动)# 五
- 冯诺依曼机-计算机
- CPU(大脑)
- 计算机组成的补充
- 多核CPU
- 32位和64位
- 机械硬盘工作原理
- 固态硬盘
- 操作系统
- 什么是文件
- 操作系统有什么用
- 应用程序的启动
- 计算机的组成(有了操作系统之后)
- 操作系统的启动(开机)
- 临时操作系统(ROM存储器)
- 临时外存(CMOS存储器)
- 编程语言
- 编码
- 机器语言
- 汇编语言
- 高级语言
- 编译型语言(通过设备的翻译形式)
- 解释型语言(通过设备的翻译形式)
- 动态语言和静态语言
- 网络的瓶颈效应
计算机编程基础
什么是编程语言
- 什么是语言,中文,英语,日语,语言是拿来沟通交流的
- 编程语言:和计算机交流的一种介质
什么是编程
表达自己的想法(实现一些东西)
编程:通过编程语言做一些事情,写一堆 .py,.obj,.css 文件
为什么要编程
编程的目的:代替劳动力,然后帮人完成具体的事情
计算机的组成
CPU(大脑)
电脑创立初:控制器和运算器是分开的
控制器(控制)# 一
控制硬件(运算器,存储器,输入设备,输出设备)
运算器(运算)# 二
算术运算+逻辑运算
存储器(记忆)# 三
主存(脑子)
内存—》8gb
优点: 运行速度快,
缺点:容量小,断电就消失了
外存(笔记本)
SSD,机械硬盘
优点:容量大,数据可持久化
缺点:速度慢
I/O设备(Input/Output设备)
输入设备(眼睛)# 四
输入信息,键盘/鼠标/麦克风/u盘/手写板
输出设备(行动)# 五
输出信息,显示屏/打印机/u盘
冯诺依曼机-计算机
符合以上计算机的组成的,统称为冯诺依曼机,也叫计算机
计算机组成的补充
多核CPU
一个CPU相当于一个大脑,多核CPU-》计算机同时拥有多个CPU,同一时间处理多件事情(多进程)
32位和64位
计算机如何存储图片:计算机只认识0(低电频)和1(高电频)
鼠标点击—》接受到低电频低电频.....—》0000010
图片本身就是一串01的数据
光盘—》凹凸刻印
32位—》表示计算机一次性能处理32个二进制数
64位—》表示计算机一次性能处理64个二进制数
32位和64位本质上是同一种东西
安装包64位的(一次性给你64个二进制数),计算机32位(一次性接受32个二进制数)
安装包32位的,计算机64位
64位电脑向下兼容
机械硬盘工作原理
凹凸存储
磁道
存储数据
扇面
划分磁道,多个扇面(512kb,计算机一次性从机械硬盘上读取512kb)其实就是一个盘(区)
快速定位数据的位置
机械手臂
寻找/读取数据
平均寻道时间
由于工业水平限制,5ms
平均寻找数据时间
7200R/min的电脑
\[ 7200/60=120r/s 1/120 = 0.0083s = 8.3s 8.3/2 = 4.15ms \]
平均寻找数据时间
\[ 5 + 4.15 = 9.15ms \]
固态硬盘
基于电容存储,数学的算法
优点:不需要机械手臂,基于电容
操作系统
如果只有五大组成,读取数据时,则需要手动滑动机械手臂
实际内存较低,部分内存留了一部分给操作系统
什么是文件
存储信息的介质,操作系统提供的一个虚拟的概念,这个虚拟的概念可以用来存储信息,帮你滑动机械手臂
文件接口(操作系统,而文件只是操作系统中的一个系统):帮你对硬件的复杂操作简单化
双击接口(操作系统提供的):让你快速打开一个应用
操作系统有什么用
提供给我们一个一个接口,让我们不再关心硬件的复杂操作
应用程序的启动
- 双击qq(企鹅图标是操作系统提供的)—》让操作系统通知CPU:找到qq在外存的位置
- CPU让内存去外存读取qq的数据
- 启动qq
计算机的组成(有了操作系统之后)
- 应用程序(软件):和操作系统交互
- 操作系统(软件):和硬件交互
- 硬件:硬件直接交互
操作系统的启动(开机)
启动软件,首先要启动操作系统,找软件在硬盘上的位置
操作系统本质上也是一个软件,也需要找到操作系统在硬盘中的位置(要找就必须通过操作系统)
临时操作系统(ROM存储器)
只负责寻找操作系统的路径
计算机出厂时就写死了,它只会去CMOS存储器上调用操作系统的路径
临时外存(CMOS存储器)
用电池供电,存储了操作系统的路径(系统启动盘位置),存储了时间
- 开机,启动临时操作系统
- 临时操作系统去CMOS上找到操作系统的路径
- 启动操作系统,临时操作系统关闭
编程语言
编码
计算机只认识二进制语言
机器语言
二进制编码复杂,所以早期只有顶级科学家才会使用
二进制—》设备转换—》电频等表示
优点:执行速度非常快
汇编语言
汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词
优点(相较于机器语言):开发效率高
缺点(相较于机器语言):执行效率低一点
高级语言
高级语言直接用人能理解的语言和语法风格编写程序,无需再去考虑复杂的硬件操作,按照翻译方式的不同,高级语言又分为编译型和解释型两大类
优点(较于汇编语言):开发效率高
缺点(较于汇编语言):执行效率低
编译型语言(通过设备的翻译形式)
类似于谷歌翻译,一次性翻译所有代码为机器代码
x = 1 y = 2 print(x+y) #翻译后整片二进制语言
优点(相较于解释性语言):执行效率高
缺点(相较于解释性语言):开发效率低(找bug非常复杂)
解释型语言(通过设备的翻译形式)
类似同声传译,说一句翻译一句,解释器语言的翻译器是通过编译型语言翻译出来的
x = 1 y = 2 print(x+y) #逐行翻译,每行翻译结果
优点(相较于编译型语言):开发效率高
缺点(相较于编译型语言):执行效率低
动态语言和静态语言
数据类型,字符类型和数字类型可以相互转换的叫动态语言
网络的瓶颈效应
编程—》完成具体的事情—》帮人类干活
写一个应用程序(一定要联网)
程序一定要通过网络通信
网络通信的时间(假设1000s)远远大于执行程序的时间(假设1s)—》程序的执行效率没有必要考虑了—》(网络的应用程序)解释性语言
操作系统(单机操作应用程序)—》没有必要网络通信—》编译型语言
操作系统 1G内存
微内核 0.1内存+0.1G的网络通信 10G放到服务器—》可以在服务器存的功能也越来越多