程序执行原理(科普)

目标

01. 计算机中的三大件

计算机中包含有较多的硬件,但是一个程序要运行,有 三个 核心的硬件,分别是:

  1. CPU
  2. 内存
  3. 硬盘

思考题

  1. 计算机中哪一个硬件设备负责执行程序?
  2. 内存 的速度快还是 硬盘 的速度快?
  3. 我们的程序是安装在内存中的,还是安装在硬盘中的?
  4. 我买了一个内存条,有 500G 的空间!!!,这句话对吗?
  5. 计算机关机之后,内存中的数据都会消失,这句话对吗?

02. 程序执行的原理

001_程序执行示意图-w

  1. 程序 运行之前,程序是 保存在硬盘 中的
  2. 当要运行一个程序时

程序要执行,首先要被加载到内存

2.1 Python 程序执行原理

003_Python程序执行示意图

  1. 操作系统会首先让 CPUPython 解释器 的程序复制到 内存
  2. Python 解释器 根据语法规则,从上向下CPU 翻译 Python 程序中的代码
  3. CPU 负责执行翻译完成的代码

Python 的解释器有多大?

# 1. 确认解释器所在位置$ which python# 2. 查看 python 文件大小(只是一个软链接)$ ls -lh /usr/bin/python# 3. 查看具体文件大小$ ls -lh /usr/bin/python2.7

提示:建立 软链接 的目的,是为了方便使用者不用记住使用的解释器是 哪一个具体版本

03. 程序的作用

程序就是 用来处理数据 的!

3.1 思考 QQ 程序的启动过程

  1. QQ 在运行之前,是保存在 硬盘 中的
  2. 运行之后,QQ 程序就会被加载到 内存 中了

003_QQ登陆界面-w248

3.2 思考 QQ 程序的 登录 过程

  1. 读取用户输入的 QQ 号码
  2. 读取用户输入的 QQ 密码
  3. QQ 号码QQ 密码 发送给腾讯的服务器,等待服务器确认用户信息

思考 1

在 QQ 这个程序将 QQ 号码 和 QQ 密码 发送给服务器之前,是否需要先存储一下 QQ 号码 和 密码?

答案

肯定需要!—— 否则 QQ 这个程序就不知道把什么内容发送给服务器了!

思考 2

QQ 这个程序把 QQ 号码 和 QQ 密码 保存在哪里?

答案

保存在 内存 中,因为 QQ 程序自己就在内存中

思考 3

QQ 这个程序是怎么保存用户的 QQ 号码 和 QQ 密码 的?

答案

  1. 在内存中为 QQ 号码QQ 密码 各自分配一块空间
  2. 使用一个 别名 标记 QQ 号码QQ 密码 在内存中的位置

004_QQ号码和密码内存示意图

在程序内部,为 QQ 号码 和 QQ 密码 在内存中分配的空间就叫做 变量程序就是用来处理数据的,而变量就是用来存储数据的

无标题