您的位置:首页 > 编程语言 > Python开发

python-01-计算机硬件组成与工作原理

2020-07-18 04:59 225 查看
1、什么是编程

编程:把做事的步骤(业务逻辑)用编程语言翻译给计算机

编程的两个环节:
①先想好业务逻辑(编程的核心是 业务逻辑)
②再用编程语言翻译给计算机

(编程的目的:计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果。
)

2、python是一门编程语言,那什么是编程语言?

编程语言其实就是一门语言,这不过这门语言是用来人与计算机沟通

人为何要跟计算机沟通?人为了奴役计算机

(Python是语言,而学习语言的套路都是一样的,以英语学习为例,你需要学单词,然后学语法,最后写作文。
英语的单词---------->Python中的关键字
英语的语法---------->Python的语法
英语的作文---------->用Python语言写的程序)

银行行长-------------汉语-----------------员工
做事步骤(业务逻辑):
接收用户输入的用户名
接收用户输入的密码
判断 用户输入的用户 等于 正确的用户名 并且 用户输入的密码 等于 正确的密码:
告诉用户登录成功
否则:
告诉用户账号或密码错误

行长把做事步骤,用汉语翻译给业务员

程序员--------------编程语言-------------计算机
做事步骤(业务逻辑):
db_name = "egon"
db_pwd = "123"
inp_name=input("请输入您的用户名")
inp_pwd=input("请输入您的密码")

判断 inp_name == db_name 并且 inp_pwd == db_pwd:
告诉用户登录成功
否则:
告诉用户账号或密码错误

程序员把做事步骤,用编程语言翻译给计算机:

3、什么是程序?

对于人来说,写在纸上的做事步骤就是 程序

对于计算机来说,代码应该写到文件中,存放有程序代码的文件就是程序(或者叫软件)

程序员-------------编程语言-----------------计算机
4、计算机硬件

原则:所有的计算机硬件都是在模仿人的某一功能或器官

计算机三大核心硬件:CPU、内存、硬盘

CPU:负责数学运算与逻辑运算,执行指令==========================人脑的执行指令(控制)的功能(执行模块)

内存:负责临时记忆数据========================================人脑的记忆功能(记忆模块)
优点:存取IO速度都快
缺点:断电数据丢失

硬盘:负责永久记忆数据=======================================笔记本
优点:永远保存数据,断电数据不丢失
缺点:存取IO速度都慢

输入设备:键盘、鼠标

输出设备:显示器、打印机

计算机的各个部件 都可 和人的肢体 进行类比

CPU <----相当于--->人类的大脑,具有控制其他肢体(部件)的功能

程序语言 直接控制的是CPU,间接控制的是计算机的其他部件(由CPU直接控制计算机的其他部件)

从纸上取出的步骤,在大脑中分析,控制其他肢体的动作
类比:CPU把程序员给的(笼统的)指令,分析成各个动作细节

程序员的高级语言直接控制的是CPU,由CPU(其内部集成了指令集)再直接控制其他的硬件(程序员编程语言间接控制计算机的其他部件)
类比:领导 控制 员工,向其发出的是笼统的指令,员工  分析出各个具体的动作细节并执行

加载:把程序 从 硬盘上 取到 内存,再在取到CPU
对应人的步骤:把做事的步骤 从 笔记本上 记到 大脑的记忆模块上,再从大脑的记忆模块上 取到 大脑的执行模块上

引入内存的原因: 内存I/O速度,比硬盘快多得多,让CPU等待的时间短

程序的运行与三大核心硬件的关系:
程序最先是存放于硬盘中的,程序的运行是先把程序的代码从硬盘读入内存,然后cpu从内存读取指令然后运行

5、IO问题与程序优化的思路

*在程序中,尽可能避免进行I/O操作,但是I/O操作次数很难为0*
1、读
能从内存读就不要从硬盘读
如果原始的数据就是存放于硬盘中的,并且该数据经常被用到,那么我需要把硬盘中的这块数据事先读到内存中=》缓存

优化程序的运行:要用到的数据 事先从硬盘加载到内存中,等到用的时候,直接从内存中取,减少CPU 等待I/O操作的时间

2、写
在内存攒一大波(一块写回硬盘),然后一次性写入硬盘

拓展:
存原始数据的 地方,只有 内存 和 硬盘,
CPU内部集成了一个存储设备——寄存器,
寄存器:使用CPU相同材质制作而成,速度与CPU同等
寄存器不是存储的主力,其存放的是关键数据(缓存的原理,受限于成本原因,所以容量不大,分为一级缓存、二级缓存......),存放CPU马上要用的数据
如果CPU要用到的数据寄存器中没有,则从内存中找,若内存中也没有,则从硬盘中找

内存中存放的就是高低电平(抽象化为 010100101形式的二进制)
内存容量多大 是指 能存多少个二进制数
1Byte  =   8bit
1字节 对应 8个比特
8bit=1Byte
1024B=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
1024TB=1PB

6、x86-64

x86是一系列CPU(这些CPU具有相同的指令集)的型号
64表示CPU一次从内存中取出64位的数据(以64个二进制数为一个单位)
64车道中每次跑64辆车

cpu具有向下兼容性
64的cpu既能运行32位的程序也能运行64位的程序
x86-64位 可兼容 x86-32位
64车道中可每次只跑32辆车

7、cpu相关知识

1、CPU的两种指令集:
CPU内部包既①含控制其他部件的指令集,也包含了②运算功能的指令集

当CPU处于内核态,既开放控制其他部件的指令集,又开放运算功能的指令集
当CPU处于用户态,只开放运算功能的指令集

所有指令的操作分为两种:
控制硬件
运算功能
2、CPU的两种工作状态
内核态:运行的程序是操作系统,可以操作计算机硬件
用户态:运行的程序是应用程序,不能操作计算机硬件

3、多线程与多核芯片
2核4线程:
2核代表有两个cpu,4线程指的是每个cpu都有两个线程=》假4核(性能强于 真的2核 但是 弱于 真的4核)

4核8线程
4核代表有4个cpu,8线程指的是每个cpu都有两个线程=》假8核(性能强于 真的4核 但是 弱于 真的8核)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: