计算机基础
一 计算机基础对于学习编程语言的重要性
python作为一门编程语言,那么它就有语言的功能。我们通常所说的语言,比如:汉语,英语,法语等,都是用来人与人之间进行沟通的媒介。那么python与他们
的区别就是python是人与计算机进行沟通的媒介。中国有句俗语:知彼知己,百战不殆。我们为了更好地与计算机进行沟通,让计算机按照我们人的逻辑思维来工作,
就要尽可能详细的了解计算机这个机器,它的一些结构组成,功能,工作原理。所以计算机基础对于python编程学习的重要性可想而知。
二 一个完整计算机系统由:硬件,应用程序,操作系统,三部分组成,也可以说由:软件和硬件两部分组成。
1 计算机硬件
计算机硬件分为五个部分:
(1)控制器:控制器顾名思义,就是进行各种控制。 根据操作人员发出的指令对各部件进行控制,以保证各部件正常运行。
(2)运算器:进行算数运算和逻辑运算。
(3)存储器:用来存放数据和应用程序,能够对存储器中德信息进行读取和写入操作,对于数据的操作是通过存储器中的地址来完成,因为每个存储单元都有一个地址,存储器的容量单位Bytes,KB,MB,GB,TB,PB等,同时1024B=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB。
(4) 输入设备:就是向计算机输入信息的设备,常用的有:鼠标,键盘,触屏等。
(5)输出设备:显示器,打印机等。
CPU:
cpu由控制器和运算器组成,所以它不仅能对软/硬件进行控制,还可以进行逻辑运算和算术运算。那么对于cpu来说当程序员对计算机发出一条指令时,指
令经过输入设备进入内存,这个时候cpu到内存中取指进行分析,分析之后执行相应的动作。cpu读取的数据都是从内存中来的,那么cpu只是做一个分析与处理,处理
过后数据再写入存储器中,由存储器再到输出单元。cpu的种类主要是:精简指令集与复杂指令集,精简指令集cpu只能进行一些简单的操作,运行时间短,效率较高。
而复杂指令集cpu指令数目多且复杂,所以每条指令运行时间会比精简指令集长,但能进行更加复杂的工作。我们现在用的cpu很多都是x86-64,因为cpu具有向下兼容
性,所以x86-64的cpu的兼容性较好。
CPU的内核态与用户态
除了在嵌入式系统中的非常简答的CPU之外,多数CPU都有两种模式,即内核态与用户态。
嵌入式系统:一应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗等严格要求的专用计算机系统。
所以说嵌入式系统一般在计算机初装系统就具备,所以通常用户是不可变的,就好像今天我们的手机上刚买来就会有一些软件,而这些软件就相当于是嵌入式系统的一部分。
内核态:当cpu在内核态运行时cpu可以执行指令集中所有的指令,包括使用硬件的功能。
用户态:用户程序在用户态下运行时,只能运行cpu指令集中的一个子集,而且不具备操作硬件的功能。
内核态与用户态切换:在用户态下运行没办法操作硬件,但是有时候我们的软件可能会用到硬盘里的数据,比如我们使用word打开一个文件,word必须向系统调用,
说我需要这个硬盘的数据,这个时候一个特殊的指令trap指令就会把用户态切换成内核态,从而得到想要的数据。
存储器:
存储器在计算机硬件中是仅次于cpu的存在,人们一直在做的工作就是尽可能将存储器变得:容量更大,速度更快,价钱更便宜。
存储器系统采用如上图的分层结构,顶层的存储器速度较高,容量较小,与底层的存储器相比每位的成本较高,其差别往往是十亿数量级的
内存中 又有RAM和ROM(Read Only Memory),她们俩的主要区别在于RAM存储量小且断电数据消失,而ROM存储量较RAM大且断电数据仍然可以保存。
RAM在通电情况下可以随意存取,而ROM则只读。
还有一类存储器就是CMOS:一般用来保存计算机基本启动信息(比如:日期,时间,启动设置等),系统断电信息也不回丢失。
磁盘 :其实磁盘存储方式有点类似于我们以前我们的唱片机上的唱片。磁盘是一种机械装置,一般有一个或多个金属盘片,工作时的转速为5400,7200或
10800RPM。信息以二进制的形式一圈一圈的储存在磁道上,一个二进制占一个比特位bit,那么8bit=1bytes字节,
1024bytes=1kB, 1024kB=1MB, 1024MB=1GB, 1024G=1TB。由下图可以看出,对于磁盘的取值是使用磁盘臂,每个磁道划成若干扇区,扇区典
型的值就是512bytes,因为抓取手臂每次抓取的值也是512bytes。
平均寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置。
平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。
那么假如一个5400RPM的磁盘
平均寻道时间是:5ms
平均延迟时间是 : 60/10800=0.01s/2=0.005=5ms
那么每次抓取延迟时间为10ms
如果抓取次数足够多这个总的延迟时间会比较长,假如对一个每分钟500million请求次数来说:
500MIPS -----〉〉500 millon instruction per second
延迟时间:500000000*10/1000=5000000ms
磁带:在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)。
输入输出设备:
输入设备:就是把程序员编写的程序送到计算机中去,通过翻译转换成计算机能识别的方式,输入的信息可以是文字,图片等等,输入设备常见有鼠标键盘等。
输出设备:将输入的信息经cpu分析处理过后的结果通过一些设备送出计算机,比如我们常见的耳机,打印机等。
计算机启动流程:
1计算机通电。-----〉2.基本输入输出系统(BIOS)开始运行,检测硬件内存,硬盘,cpu等-----〉3.当BIOS在CMOS中找到启动盘会让用户选择哪种启动
系统,选择完之后-----〉〉4.从启动盘读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)-------〉〉5.开始加
载bootloader(在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备)启动操作系统-----〉〉〉6.然后操作系统询问BIOS,获得相应
程序配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它
们调入内核,接下来操作系统接管计算机。