首页 > 代码库 > Python之路-计算机基础

Python之路-计算机基础

一·计算机的组成

一套完整的计算机系统分为:计算机硬件,操作系统,软件。
 
硬件系统:运算器,控制器和存储器 ,输入设备,输出设备。
1.运算器:负责算数运算和逻辑运算,与控制器一起组成CPU。
2.控制器:发送和接收指令
3.存储器:存储程序代码和数据
4.输入设备:比如键盘鼠标
5.输出设备:比如显示器。
 
软件系统:为完成某一特定的工作而开发的程序,分为系统软件和应用程序。
系统软件:操作系统,控制和协调计算机及外部设备,支持应用软件的开发和运行的系统。
应用软件:比如QQ等。

二·编程语言的作用,以及与操作系统和硬件的关系:

我们使用编程语言去开发具体的应用程序,完成某一特定目标,而这个应用程序是运行在我们所使用的操作系统之上的,通过调用操作系统的相应的接口去完成去与底层具体的硬件的数据交互。

三·CPU->内存->磁盘

CPU:运算器和控制器合称为CPU(Central Processing Unit),它的功能主要是解释计算机指令及处理计算机软件的数据。
内存:程序运行于内存之中,内存会暂时存储CPU的运算数据以及与硬盘等外部存储器交换的数据,掉电丢失。
磁盘:外部数据存储器,存储大量数据,是非易失性的。

四·CPU与寄存器

CPU与寄存器:寄存器是CPU的组成部分,是用于高速有限存储数据的一类部件,可以用来暂存指令,数据和地址;访问速度比访问内存要快很多,CPU通过提供指令集来完成寄存器与内存的数据交互。
程序状态字寄存器是寄存器中非常重要的一种,它的内容中包含了各种控制位,系统调用和IO操作都与它有关。可以通过它切换模式(用户态和内核态)。

五·内核态与用户态

内核态:特权模式,CPU可以访问内存所有数据,包括外围设备,CPU自己也可以进行程序切换。
用户态:非特权模式,执行的代码收到硬件限制,不允许访问外围设备,占用CPU的能力被剥夺。
我们的软件都是运行在用户态下,但有时候会有操作硬件的需求,所以必须要切换至内核态,由于对内核态中的指令的保护,只能跳到制定位置去加载指令,称为系统调用(System Call),系统调用完成后,重置CPU为用户态并返回执行结果。
这个写的不错,推荐http://www.cnblogs.com/zemliu/p/3695503.html。

六·存储器系列

L1缓存: 集成在CPU内部中,用于CPU在处理数据过程中数据的暂时保存。高速缓存存储的信息越多,CPU与内存之间的数据交换次数就越少,CPU运算执行效率就能够越高。但是由于与CPU集成在一起,容量不可能做的太大。
L2缓存:位于CPU与内存之间的临时存储器,可以理解为一级缓存的缓冲器,用于存储那些CPU处理时需要用到但又无法存储在以及内存中的数据,容量比内存小但是交换速度快。
缓存的工作原理:当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存;正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。(百度百科)
内存RAM(Random Access Memory):掉电即失的存储单元,存储系统的主力。
E2PROM:电可擦除的ROM,非易失性的存储单元。
闪存(Flash):存储数据不会掉电丢失,而且访问速度非常快,容量较小,是数码相机的胶卷, MP3的存储磁盘,还应用于固态硬盘。
CMOS与BISO电池:计算机领域指保存计算机基本启动信息(如日期,启动设置等)的芯片,用来保存BIOS硬件配置和用户对某些参数的设定,由一块纽扣电池驱动供电,保证数据不丢失,由于程序耗电量不大,所以可以运行很久。

七·磁盘结构与虚拟内存

磁盘结构:磁盘绕着一根中心主轴旋转,磁盘上有磁道,磁道是一圈圈的同心圆,由机械臂带着磁头进行数据的读取。
 
平均寻道时间:计算机发出寻址命令后磁头移动到数据所在的磁道所用的平均时间。
平均延迟时间:由于数据存放在不同的扇区中,磁头到了对应的磁道,还要等待磁头移动到数据所在的扇区,这段时间是平均延迟时间。
虚拟内存:特别多的程序的大小都大于计算机内存容量,而计算机可以执行这样的程序就是因为使用的是虚拟内存机制,通过把暂时不需要执行的程序放到磁盘上的一块区域,而这块区域就成为了所谓的虚拟内存,在Linux中是Swap,解决内存容量不足。
MMU(Memory Management Unit):内存管理单元, 用来管理虚拟内存,负责快速映射内存地址。
Context Switch:程序之间的快速切换,与MMU一起显著提高了计算机系统的运行处理性能。

八·磁带

数据读取和写入速度比硬盘低很多,但是同等价钱下,拥有更多的存储容量,而且容易转移,经常在大型的数据库中作为数据备份使用。

九·控制器与设备驱动

控制器:控制器负责控制相对应的设备,目的是是为操作系统屏蔽掉具体底层对于硬件的直接复杂和具体的控制
设备驱动: 设备驱动是操作系统和IO设备间的粘合剂。驱动负责将操作系统的请求传输,转化为特定的控制器能够理解的命令。

十·总线与北桥和南桥

总线(Bus): 总线是一种内部结构,它是cpu、内存、IO设备传递信息的公用通道,各个部件之间通过总线相连接,
北桥:北桥芯片就是主板上离CPU最近的芯片,这主要是考虑到北桥芯片与处理器之间的通信最密切,是PCI桥,连接高速信号。
南桥:离CPU插槽较远,连接的IO总线众多,负责一些外设接口的控制,是ISA桥,连接低速信号。

十一·BIOS和操作系统的启动流程

BIOS(Basic Input Output system):一组固化到计算机主板上一个ROM芯片上的程序小型操作系统,主要功能是为计算机提供最底层最直接的硬件设置和控制。
操作系统启动流程:上电->运行BIOS,进行系统自检->读取CMOS参数,启动相应的设备->读取扇区内容->读入bootloader启动装载模块,启动操作系统->检查每种设备的驱动程序

十二·应用程序启动流程

应用程序启动流程:操作系统监视输入设备(鼠标或键盘)操作的请求,如果出现相对应的操作,找到所需要执行文件在硬盘中的位置,将所需要执行的程序加载到内存中,应用程序就开始执行了。


Python之路-计算机基础