一、计算机基础之编程
什么是编程语言
- 编程语言是一种语言,和中文、英语一样,是用来沟通交流的
- 编程语言是一种与计算机交流的介质
什么是编程
编程就是通过一些编程语言写一些东西,表达自己的想法
为什么要编程
编程的目的是想要奴役计算机,把计算机当成人类的奴隶,让计算机帮人类工作,因而取代人力。
二、计算机基本组成
计算机的组成
计算机由五大部分组成:控制器,运算器,存储器,输入设备,输出设备
CPU(相当于人的大脑)
包括控制器和运算器
控制器(控制)
计算机的控制系统,控制硬件
运算器(运算)
包括:
- 算术运算(1+1=2)
- 逻辑运算(今天下雨要带伞)
存储器(记忆)
主存(脑子)
- 优点:速度快
- 缺点:容量小,断电即消失
外存(笔记本)
- 优点:容量大,可以永久保存
- 缺点:速度慢
I/O设备(输入/输出设备)
输入设备
输入信息,如:键盘,鼠标,U盘等
输出设备
输出信息,如:显示屏,打印机,U盘等
三、计算机组成补充
多核CPU
一个CPU相当于一个大脑,多核CPU,计算机拥有多个CPU,同一时刻可以处理多件事情。
32位和64位
32位表示CPU每次取32位二进制数,64位表示CPU每次取64位二进制数
CPU具有向下兼容性,64位电脑能下载32位的软件,而32位的软件下载64位的软件会丢失数据
机械硬盘原理
机械手臂
- 读取数据
磁道
- 存储数据
扇面
-
划分磁道,多个扇面就是计算机一个盘(区)
-
一个扇面512kb,计算机一次性从机械硬盘读取512kb数据
平均寻磁道时间
- 由于工业水平限制----> 5ms
平均延迟时间
- 转速为7200r/min 的机械硬盘
平均寻找数据时间
固态硬盘
优点:不需要机械手臂,数据访问时间及延迟远低于机械硬盘
固态硬盘是基于固态电子(SSD,断电数据也会保留)和算法实现数据存储的。
四、操作系统
什么是文件
要读取数据,我们需要自己滑动机械手臂。
而文件是一种存储信息的介质,这是操作系统提供的一个虚拟的概念,文件可以存储信息,相当于帮你滑动机械手臂。
文件接口:操作系统提供的一个接口,可以使得对硬件的操作简单化。
操作系统
操作系统位于应用程序和硬件之间,负责协调管理计算机资源和软件资源。操作系统把对硬件的复杂性,封装成一个个简单易用的接口。
计算机三大组成
- 硬件:硬件直接交互
- 操作系统(软件):与硬件交互
- 应用程序(软件):与操作系统交互
应用程序的启动
- 双击应用程序图标
- 双击图标就是给操作系统指令,告诉操作系统应用程序在硬盘的位置,让操作系统启动这个路径
- 操作系统接到指令操控CPU,给内存发指令
- 内存接受CPU指令,给硬盘发出指令,硬盘读取应用程序代码至内存,应用程序启动
操作系统启动
启动软件,要通过操作系统寻找软件在硬盘的位置;操作系统本质上也是一个软件,要启动操作系统也要通过操作系统寻找操作系统硬盘的位置。
临时操作系统(ROM存储器)
去CMOS存储器上寻找操作系统的路径
临时内存(CMOS存储器)
电池供电,存储了操作系统的路径
过程:
- 开机,启动临时操作系统
- 临时操作系统去CMOS存储器上调用操作系统在硬盘的位置
- 操作系统启动,临时操作系统关闭
五、编程语言的分类
机器语言
计算机内部只接受二进制代码,用0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。
优点:执行速度非常快,直接和硬件交互
缺点:开发速度非常慢
汇编语言
类似于机器语言,但是汇编语言用英文标签来映射0和1,进行编程。
优点(相较于机器语言而言):开发速度快
缺点(相较于机器语言而言):执行速度慢
高级语言
高级语言直接用人能理解的语言和语法风格编写程序
- 优点(较于汇编语言):开发效率高
- 缺点(较于汇编语言):执行效率低(调试bug非常复杂)
编译型语言
类似于谷歌翻译,一次性翻译所有机器代码
- 优点(较于解释型语言):执行效率高
- 缺点(较于解释型语言):开发效率低
解释型语言
类似于同声传译,说一句翻译一句,解释性语言的翻译器是通过编译型语言写出来的
- 优点(较于编译型语言):开发效率高
- 缺点(较于编译型语言):执行效率低
六、网络的瓶颈效应
假设网络通信的时间为10ms,程序执行的时间为0.1ms,这是就不必考虑程序的执行效率了,因为这是你发送的第二条消息要等到网络延时结束才能发出,可以考虑使用如python这样的解释型语言开发程序。