【笔记】计算机专业导论
课程原址:http://www.icourse163.org/course/NUDT-1001614002
完成计算的两个要素:数据与规则。(计算机中 前者由输入设备输入,存储设备存储,后者由CPU提供)
加法器(帕斯卡)--------->改进(莱布尼茨)---------->差分机(巴贝奇)--------->分析机(巴贝奇)。
按计算机主要元器件将计算机分为4代:
第一代电子计算机(真空电子管)---------->二代(晶体管)---------------->三代(集成电路)--------------四代(大规模集成电路,微处理器)
日本有第五代计算机的计划,称之为人工智能计算机。
摩尔定律:价格不变时,集成电路上可容纳的晶体管数目,约每隔24个月增加一倍。(后被修订为18个月)
十进制转换成二进制:
整数部分:除2取余法。(第一个数是最低位)
小数部分:乘2取整法。(第一个数是最高位)
十进制的小数转换成二进制可能出现问题:并不能完全等价转换。
如0.64。
这也是计算机浮点数计算不精确的原因。
计算机为什么用0/1表示?
物理实现:
1、状态简单
2、可靠性、稳定性高
3、运算规则简单,简化设计
4、通用性强
举例:101报告指出,33位的表示可以达到10的10次方的大小,二进制系统比十进制系统相比要来的经济的多。
解释:10的10次方约等于2的33次方。2的33次方有34个位,每个位两种可能(0或1),总计34*2=68种可能的状态,而10的10次方有11个位,每个位10种可能(0到9),总计11*10=110种可能的状态。明显二进制的物理实现更加经济,越大的数据二进制的优势越明显。
位的单位为bit,缩写为b
一个字节 = 8个二进制位
8位位模式可以区分的信息种类是2^8=256种。
裸机:刚买回来的计算机,只有硬件,没有任何软件,连操作系统都没有。
软件:由硬件执行,完成一定任务的所有程序和数据。
软件分为两类,一类是面向系统的,我们叫做系统软件。一类是面向用户的,我们叫做引用软件。操作系统是最重要的系统软件。
操作系统(OS):是管理计算机硬件与软件资源的计算机程序。
操作系统一方面向下管理所有软硬件资源,我们叫它管家功能;
另一方面向上为用户提供服务,提供用户与计算机的交互接口。类似服务生一样。
操作系统处在用户与硬件之间。
任何硬件插入到计算机中,都要和系统报道,比如插入鼠标,会提示正在下载驱动程序,驱动程序,就是对应硬件向操作系统报道的过程。
冯诺依曼计算机五大组成:
1、算数逻辑单元(ALU):运算器,是对数据进行处理和运算的部件。
2、控制单元(CU):控制器,实现计算机本身的自动化过程,实现指令的自动装入和自动执行。
3、存储器:分为内存和外存,计算机运行的时候,数据和指令都放在内存,数据只有放在内存中,才有资格抢占CPU。
比如使用QQ,启动QQ后QQ从外存进入内存,开始使用CPU。
4、输入设备
5、输出设备
五大组成要协同工作,需要交流(信息通道),信息通道称为总线(BUS),按照所传输信号不同,总线分为三类:Date,Address,Control Signal。
CPU的两大重要组件:ALU,CU。
CPU内部有很多寄存器(或寄存器组),用来暂时存放需要处理的数据。
CPU在某一时刻只支持某个程序的某一条指令运行,只不过其速度很快,让人感觉cpu同时运行了多个程序。
指令:指令是对计算机进行程序控制的最小单位,所有的指令集合称为计算机的指令系统。也叫代码。
机器指令格式:操作码,操作数。操作码告诉机器你要做什么(加减乘除运算?还是数据传输?),操作数告诉机器要做的事是基于哪些数据的。
程序:指一组指令的集合,为完成一项特定任务而用某种语言编写。
进程:是程序执行的一次过程。程序进入内存后,我们称之为进程。
进程与程序的区别:
进程是动态的(暂时),程序是静态的(永久);
程序的每次执行构成不同的进程;
一个程序可以对应多个进程。
进程的特征:
动态性-生命周期;
由创建而产生,由调度而执行,因等待而暂停(等待某种资源,等待I/O完成),因完成而消亡;
独立性:是系统进行资源分配与调度的独立单位;
并发性:为了增强计算机处理能力和提高资源利用率,所采用的一种同时操作技术。
异步性:每个进程都以自己独立的、不可预知的速度进展(不可再现性)。
虚拟存储器管理(虚存):外存上划出一块空间,模拟内存。----------------实现存储扩充。
虚存的实现基础:程序局部性原理。就是程序不是一股被执行,而是一条条指令(代码)被执行。
因此程序执行时可以先将一部分代码装入内存。假如程序正好执行的代码正在虚存里,此时代码需要先进入内存,在被CPU执行,所以这时你会感觉有点慢。
线程是操作系统进行运算调度的最小单位,一条线程指的是进程中一条单一的控制流,一个进程可以包含多个线程,每条线程并行执行不同的任务。