Python
1、基础知识
1.1编程语言
-
什么是语言?
-
为什么要有编程语言?
-
什么是编程?
-
为什么要编程?
编程语言的本质就是一门语言,是人与计算机沟通的一种介质。
人与人之间沟通的介质 。
让计算机为人类所用。
编程就是人想让计算机做的事通过自己的逻辑思维,用编程语言表达出来编程的目的就是让计算机按照人的逻辑去工作。
1.2计算机组成
-
什么是计算机
-
为何要有计算机
计算机俗称“电脑”
模仿人的某一功能或器官,执行人类的程序,解放人类
-
计算机的组成
控制器:计算机的指挥系统,负责控制计算机其他组件如何工作的
控制器=》大脑
运算器:数学运算,逻辑运算
运算器=》大脑
控制器+运算器=CPU=》大脑
存储器:是计算器的记忆功能,负责数据的存取
内存:存取数据快,断电数据丢失,临时存取数据
内存:存取数据慢,断电数据不丢失,永久存取数据
内存=》人类的大脑记忆
外存=》人的笔记本
输入设备: 输入设备是计算接收外界输入数据的工具,如键盘、鼠标
输入设备=》人的眼睛或耳朵。
输出设备: 输出设备是计算机向外输出数据的工具,如显示器、打印机, 输出设备=》人说的话,写出的文章。
核心硬件(重点)
-
CPU
-
内存
-
硬盘
程序最先存放在硬盘之上
程序的运行一定事先把程序的代码加载到内存
然后CPU从内存中读取指令执行
扫盲(了解)
操作系统(重点)
开发一个应用程序,必须先编写一个控制硬盘基本运行的控制程序,把硬件运行的复杂操作封装成简单的功能,给上层的程序使用。操作系统即控制程序
操作系统概念:
操作系统是一个协调,管理,控制计算机硬件资源与应用软件资源的一个控制程序
作用:控制计算机硬件的基本运行。
把使用硬件的复杂操作封装成简单的功能,给上层的程序使用。
程序的区分
计算机硬件是死的,计算机的运行都是受软件控制,软件相当于计算机的灵魂。
软件分为两种:
- 应用软件:应用程序相关逻辑 例如:qq、word、暴风影音
- 系统软件:控制底层硬件
计算机体系的三层结构
一套完整的计算机系统分为三层 :
计算机硬件 操作系统 应用程序
平台
操作系统+计算机硬件=平台
常见的平台有:windows系统+某款硬件、linux系统+某款硬件、ubuntu+某款硬件等
软件的跨平台性:一款软件可以在任意的平台上运行,是衡量软件质量高低的一个非常重要的指标
x86-64:CPU的型号,64是位数
CPU具有向下兼容性,64的CPU既能运行32位的程序也能运行64位的程序。
寄存器
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。
寄存器速度高于内存
内核态与用户态
CPU的两种工作状态
1.内核态下代表cpu的是操作系统
2.用户态下代表cpu运行的是应用程序
区别:运行操作系统的时候可以操作计算机硬件
运行应用程序不可以操作硬件
应用程序的运行必然涉及到计算机的硬件操作,那就必须有用户态切换到内核态下才能实现。所以,计算机在工作时会频繁发生内核态与用户态的转换
多线程与多核芯片
2核4线程:
2核代表有两个cpu,4线程指的是每个cpu都有两个线程 =》假4核
4核8线程:
4核代表有四个cpu,8线程指的是每个cpu都有两个线程 =》假8核
存储器
RAM :随机存取存储器 不稳定 当关闭计算机时信息将会丢失
ROM:只读存储器,存放计算机厂商写死计算机上的一段核心程序 =》BIOS
CMOS:存取速度慢 断电数据丢失 耗电量极低 存取时间数据以及其他数据
硬盘
机械硬盘:磁盘
磁道:一圈数据,对应着一串二进制(1bit代表一个二进制位) 8bit比特位=1Bytes字节 1024Bytes=1KB 1024KB=1MB 1024MB=1GB
1024GB=1TB 1024TB=1PB
扇区:一个扇区512Bytes。站在硬盘的解读,一次性读写数据的最小单位为扇区。操作系统一次性读写的单位是一个block块=》 8扇区的大小=4096Bytes
固态硬盘:读写速度快,低功耗。
IO延迟
7200转/min
120/s
1/120转/s=转一圈需要花费8ms
平均寻道时间:机械手臂转到数据所在磁道所需要花费的时间,受限于物理工艺水平,目前机械硬盘所能达到的是5ms
平均延迟时间:转半圈需花费4ms,受限于硬盘的转速
10延迟=平均寻道时间+平均延迟时间
优化程序运行效率的一个核心法则:能从内存取数据,就不要从硬盘取。
虚拟内存
将正在使用的程序放在内存去执行,而暂时不需要执行的程序放到磁盘的某块地方。
总线
组件与组件连接的线
BIOS
Basic Input Output System
BIOS被写入ROM设备
操作系统启动流程
裸机:
CPU
ROM:充当内存,存放BIOS系统
CMOS:充当硬盘
操作系统的启动流程:
1.计算机加电
2.BIOS开始运行,检测硬件:cpu,内存,硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容
5.根据分区信息读入BootLoader启动装载模块,启动操作系统
6.然后操作系统访问BIOS,以获得配置信息。
密码破解与安全
1.存有win10系统的光盘、U盘、移动硬盘:无密码
2.本地硬盘上的win7系统:有密码
安全:给BIOS设置密码
应用程序的启动流程
1.双击exe快捷方式=》文件的绝对路径,就是在告诉操作系统说:我有一个应用程序要执行,应用程序的文件路径是(exe文件的绝对路径)。
2.操作系统会根据文件的路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
3.然后控制cpu从内存中读入内存的应用程序的代码执行,应用程序完成启动。
2、Python入门
2.1编程语言
人与计算机沟通的
分类:
1.机器语言:
计算机能直接理解的就是二进制指令 , 所以机器语言就是直接用二进制编程,这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言。
# 1、执行效率最高
编写的程序可以被计算机无障碍理解、直接运行,执行效率高 。
# 2、开发效率最低
复杂,开发效率低
# 3、跨平台性差
贴近\依赖具体的硬件,跨平台性差
2.汇编语言:
汇编语言仅仅是用一个英文标签代表一组二进制指令 , ,比起机器语言,汇编语言是一种进步,但汇编语言的本质仍然是直接操作硬件,因此汇编语言仍是比较低级/底层的语言、贴近计算机硬件 。
3.高级语言:
用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道的,此处的高级指的是高层、开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言 。
按照翻译的方式的不同,高级语言又分为两种:
编译型:比如c语言
# 1、执行效率高
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(即机器语言),
因此其目标程序可以脱离其语言环境独立执行,使用比较方便,执行效率较高。
# 2、开发效率低:
应用程序一旦需要修改,必须先修改源代码,然后重新编译、生成新的目标文件才能执行,
而在只有目标文件而没有源代码,修改会很不方便。所以开发效率低于解释型
# 3、跨平台性差
编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到不同的平台使用,针对不同的平台必须重新编译,即跨平台性差
# 其他
现在大多数的编程语言都是编译型的。
编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。
大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术。
C、C++、Ada、Pascal都是编译实现的
解释型:比如Python
# 1、执行效率低
解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码。
这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,
软件解释器通常会导致执行效率较低。
# 2、开发效率高
用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的,与编译程序不同的是,
解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行。
解释程序的优点是当语句出现语法错误时,可以立即引起程序员的注意,而程序员在程序开发期间就能进行校正。
# 3、跨平台性强
代码运行是依赖于解释器,不同平台有对应版本的解释器,所以解释型的跨平台性强
# 其他
对于解释型Basic语言,需要一个专门的解释器解释执行Basic程序,每条语句只有在执行时才被翻译,
这种解释型语言每执行一次就翻译一次,因而效率低下。一般地,动态语言都是解释型的,
例如:Tcl、Perl、Ruby、VBScript、JavaScript等
混合型语言:
Java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,
然后在Java虚拟机上以解释方式执行字节码。
2.2Python入门
解释型-------》解释器(解释一行执行一行)
下载python解释器 官网下载
运行程序的两种方式
方式一:
交互式,直接敲Python解释器,在终端里面
即时得到程序的运行结果多用于调试
方式二:
脚本文件 在文件编辑器里面写
把程序写到文件里面,然后用Python解释器解释执行其中的内容
约定俗成,文件的后缀名为.py
一个Python应用程序运行的三个步骤
1.先启动Python解释器
2.解释器会发送系统调用,把c.py的内容从硬盘读入内存,此时c.py中的内容全部为普通的内容,没有任何语法意义。
3.解释器开始解释执行刚刚读入内存的c.py的代码,开始识别python语法
文本编辑器读取文件内容,也经历了三个步骤:
1.先启动文本编辑器
2.文本编辑器会发送系统调用,把c.py的内容从硬盘读入内存
3.文本编辑器会将刚刚读入内存的内容控制输出到屏幕上,让用户看到结果。
注释
1.对代码的解释
2.被注释的代码不会执行
python注释风格
单行注释用#号
多行注释可以使用三对双引号 """ """三对单引号也可
标签:操作系统,Python,基础,硬件,内存,执行,硬盘,计算机 From: https://www.cnblogs.com/xionghuan01/p/16638725.html