python是一门编程语言。
语言是一个群体与另一个群体沟通交流的方式。例如汉语日语法语。
而编程语言是人和计算机交流的方式。人通过编程语言与计算机建立联系。
人----------编程语言---------计算机
编程有两个步骤:
①整理完成某项业务需要的步骤。
②将步骤翻译成计算机可以理解的编程语言,提供给计算机去执行。
因为翻译后的编程语言放在文件中供用户使用,而因为每个文件完成不同的功能,所以想要做出一个拥有多项功能的应用程序需要多个文件共同组成。因此出现了程序和进程的概念。
程序:一系列代码文件。
进程:正在进行的应用程序。
为什么要编程?
计算机相当于人类的奴隶,人类必须将需要计算机完成的事情翻译成计算机可以理解的语言。
硬件名称 | 作用 |
---|---|
运算器 | 执行运算功能,分为数学运算和逻辑运算。 |
控制器 | 相当于指挥系统,控制计算机运行。 |
储存器 | 计算机的记忆功能,执行存取操作,分为内存(主存)和硬盘(外存)存储。 |
内存 | 基于电工作,数据在内存中以电信号存储。 |
磁盘 | 基于磁工作,数据在磁盘中以磁信号存储。 |
输入设备(input设备) | 输入数据 |
输出设备(output设备) | 输出/展示数据 |
内存特点:断电后数据丢失,存取速度快。
硬盘特点:断电后数据不丢失,存取速度远远慢于内存。
输入输出设备统称为I/O设备,包括键盘鼠标显示器等。
运算器和控制器统称为CPU。
与运行程序有关的三大核心硬件:
1. CPU
2. 内存
3. 硬盘
启动文件的步骤:
1.(当点击了exe文件后,打开硬盘中对应路径下的文件)将代码文件加载到内存中。即程序的启动/加载过程。
2.cpu调用位于内存中的代码文件。即程序的运行阶段。
ps:如果想提高程序的启动/加载过程,即针对启动文件的第一阶段,应该选择固态硬盘,
提高从硬盘加载到内存的速度。
pps:如果想提高程序的运行速度,即针对启动文件的第二阶段,应该选择性能更优良的CPU,
提高cpu从内存读取数据的速度。
ppps:原始阶段人类操作计算机是通过高低电位的改变来实现对计算机的操作的,而二进制的0/1
正好和高低电位和磁信号的正极负极相同,用二进制表示传输更为方便。 在硬盘和内存中实际
存储的就是高低电位,但我们用二进制来表示,每八个二进制数(bit)代表着一个字节(bytes)。
cpu中的指令分为精简指令集和复杂指令集。精简指令集的单条指令较为简单,同时实现的功能也比较简单,但是更为稳定,出错率较低,一般会被应用于容错率较低的使用情况中;复杂指令集的单条指令较为复杂,同时实现的功能也比较多,效率高,但是不稳定,出错率高。在cpu生产出来之前,会根据cpu可能的用途预先写入指令集供用户调用,而x86的cpu对应的就是私人电脑的cpu,需要较高的效率,对错误率没有很高的要求。
64指的是一次读入cpu的二进制数的位数。x86-64的cpu每次读入64 位(bit),具有向下兼容性,可以兼容32位的应用软件。
ps:当我们谈及一个cpu是4核8线程时,我们通常指的是cpu中有四个核,每个核同时可以执行两个
任务。说的更通俗些,相当于一个脑袋里面装了4个脑子,每个脑子可以“一脑两用”。实际上,
4核8线程的性能高于真4核,低于真8核。
4.3.1 机械硬盘
扇区:磁道上的存储单元,写入的最小单元是512 个字节。
扇面:由磁盘的不同磁道上相同位置的扇区组成。
磁道:单个磁盘上的存储单元,以同心圆的形式位于磁盘上。
柱面:不同磁盘上半径相同的磁道组成。
平均寻道时间 average seek time
平均延迟时间 average rotation time 取决于转速
传输速率 transfer rate
4.3.2 固态硬盘
ps:当运行的软件几乎占满内存的情况下,操作系统(稍后详述)会划分硬盘上的部分区域作为
“虚拟内存”,来暂时储存用不到的内存中的数据,来防止内存被占满。
cpu只与内存交互,cpu向内存发送“读”和“写”请求。
当发出“读”请求时,cpu对于储存数据的读写请求直接发向内存,如果内存中存在cpu需要的数据,则直接获得;如果内存中不存在cpu需要的数据,内存再去访问硬盘中的数据。为了提高读取数据的速度,根据访问数据的频率,会将一部分“热区”的数据预先加载到内存中,叫做缓存区(cache)。
当发出“写”请求时,数据直接被写入内存中,想要永久保存的数据,申请写入硬盘中。但不是每次申请写入数据时,都会将数据写入内存,而是像发快递一样,当积攒了多件快递时,才会将快递一起发往下一个快递站。同样,先申请存入硬盘的数据会被放入缓冲区(buffer)。
介绍完硬件后,在人------编程语言------计算机的结构中,按说可以研究编程语言了。但是编程语言并不是直接和计算机交互,而是应用程序通过操作系统对计算机硬件进行操作。所以接下来介绍操作系统。
操作系统:是一个控制,管理,协调计算机硬件资源和软件资源的一个程序。它位于计算机硬件和应用软件之间。
计算机硬件的功能可能有上万种,而内核的作用是封装这上千种功能,变成上千种功能。而系统接口层对于内核进行进一步的封装,变成上百种功能。在操作系统的初级阶段,只封装到操作系统,导致无图形界面操作系统和计算机硬件组合只适用于少部分懂代码的人。后来微软公司开发了基于系统接口程序的图形界面程序(现在这种可以通过点点点操作的电脑),才让计算机的普及性越来越高。
越高级的程序,封装程度越高,命令越简洁,但是和计算机硬件之间的“中介”越来越多。例如python等。
越低级的程序,封装程度越低,命令越复杂,和计算机硬件之间的“中介”越好,功能越丰富。例如C等。
操作系统和计算机硬件共同称之为平台。任何应用程序都是基于平台工作。例如windows+某品牌的计算机硬件,linux+某品牌的计算机硬件。
跨平台性:在不同平台上都可以运行的程序。用于评价应用程序的实用性。python是一门跨平台性很高的应用软件。