一. 计算机基础之编程
(一)什么是编程语言
和计算机交流的一种介质
(二)什么是编程
通过编程语言做一些事情,写一些文件/程序
(三)为什么要编程
通过编程是的计算机可以代替人力,去完成一些人类想要达到的目的
二. 计算机的组成(五大组成)
冯*诺伊曼机
(一)控制器(控制)
控制硬件(运算器、存储器、输入、输出设备)
(二)运算器(运算)
算术运算
比如,1+1=2
逻辑运算
比如,今天下雨了,那我肯定不会吃饭,而是带伞
(三)存储器
内存(脑子)
优点:运算速度快,越大运行程序越多
缺点:容量小,断电即消失
外存(笔记本)
优点:容量大,永久存储
缺点:运算速度慢
(四)输入设备
输入信息,键盘/鼠标/U盘
(五)输出设备
输出设备,显示屏/打印机/U盘
三、计算机的组成的补充
(一)多核CPU
相当于有用多个大脑,可同一时刻处理多件事情
(二)32位和64位
32位指计算机一次性能处理32个0和1
64位指计算机一次性能处理64个0和1
本质上相同 ,具有向下兼容性
(三)机械硬盘工作原理
机械手臂
读取数据
磁道
存储数据
扇面
划分磁道,多个扇面其实就是一个盘
一个扇面就是512kb,计算机一次性从盘里读取512kb数据
平均寻道时间
由于工业水平限制,平均寻道时间为5ms
平均延迟时间
7200r/min的电脑
\[ 7200/60=120r/s 1/120=0.0083s/r=8.3ms/r \]平均延迟时间为8.3/2=4.15ms
平均寻找数据时间
5+4.15=9.15ms
(四)固态硬盘
基于电容存储、数学的算法
优点:不需要机械手臂,基于电存储
《计算机组成原理》
四、操作系统
(一)什么是文件
存储信息的介质,操作系统提供的一个虚拟的概念、用来存储信息
文件接口(操作系统提供):把对硬件的操作简单化
双击接口(操作系统提供):快速打开一个应用程序
(二)操作系统有什么用
提供接口,让复杂操作简单化
(三)应用程序的启动
- 双击QQ(操作系统提供)--》让操作系统通知CPU(找到QQ在硬盘的位置)
- CPU让内存去外存读取QQ的数据,数据进入内存
- 启动QQ
(四)计算机的另一组成
- 应用程序(软件):和操作系统交互
- 操作系统(软件):和硬件交互
- 硬件:硬件直接交互
(五)操作系统的启动(开机)
首先启动操作系统找软件在硬盘上的位置;(操作系统本质也是一个软件),启动操作系统也必须找到操作系统在硬盘中的位置(要找到就必须通过操作系统)
(六)临时操作系统(ROM存储器)
计算机出厂时就写死了,它会去CMOS存储器上调用操作系统的路径,只负责寻找操作系统的路径
(七)临时内存(CMOS存储器)
用电池供电,存储了操作系统的路径,存储了时间
- 开机,启动临时操作系统
- 临时操作系统去CMOS存储器上找到操作系统的路径
- 启动操作系统,关闭临时操作系统
五、 编程语言分类
(一)编码
计算机只认识0 和1
(二)机器语言
优点:执行速度非常快,直接和硬件交互
缺点:开发速度非常慢
早期只有顶级科学家才能使用
(三)汇编语言
优点(相较于机器语言):开发效率高
缺点(相较于机器语言):执行效率低
(四)高级语言
(五)编译型语言(通过设备的翻译形式)
类似于Google翻译,一次性翻译所有代码为机器代码
优点(相较于解释性语言):执行效率高
缺点(相较于解释型语言):开发效率低(找BUG非常复杂)
(六)解释型语言
类似同声传译、说一句翻译一句,解释性语言的翻译器使用过编译型语言写出来的
优点:开发效率高
缺点:执行效率低
动态语言和静态语言的区别在于变量是否可以强转数据类型
六、网络瓶颈效应
网络通信的时间远远大于执行程序的时间
(程序的执行效率完全没必要考虑了)
微内核的概念:云端操作系统
《计算机组成原理》