一、计算机系统的几个基本概念
2013-09-04 19:22
225 查看
1. 计算机系统的构成:
a. 由软硬件两大部分组成;
b. 硬件:是指实体部分,通常指主机(MPU、内存及其支持部件)、接口、外设这些看得见摸得着的东西;
c. 软件:是指程序和相关附件(程序的产品说明、使用说明等),软件不仅能充分调动硬件的功能而且能局部模仿人类思维,因此软件也是评价系统好坏的重要标志;
d. 软件通常分为两大类:
i. 系统软件:底层软件,和相应的硬件紧密相连,通用性较差,基于硬件平台,主要有这几类:
*1. 标准程序库:例如开机启动程序BIOS;
*2. 语言处理程序:特指汇编以及高级语言编译器;
*3. 操作系统:有批处理、分时、实时等类型;
*4. 服务程序:例如连接、诊断、调试程序等;
*5. 数据库管理程序:基于操作系统,又低于应用程序;
*6. 网络通信程序等;
ii. 应用软件:位于最高层次,基于系统软件,比如游戏软件、事务管理软件、文本编辑器等;
举例:比如游戏里的存档功能就是调用了操作系统提供的文件写入功能,因此游戏软件是基于操作系统的;
2. 计算机系统的层次结构:
a. 三级层次结构:
第三级(最高级) 虚拟机M3(高级语言机器)
实质是编译器,将高级语言编译成汇编语言再传给M2执行,
从外部看上去就是一台可以直接运行高级语言的机器,将M2的功能隐藏了
第二级 虚拟机M2(汇编语言机器)
实质也是编译器,将汇编语言编译成机器语言再传给M1执行,
从外部看上去就是一台可以直接运行汇编语言的机器,将M1的功能隐藏了
第一级(最底层) 实际机器M1(机器语言机器)
可以直接运行机器语言程序
b. 严格来讲以上虚拟机都属于翻译程序,通常翻译程序可以分为两类:
i. 编译型:就像a.中的结构,直接将源程序最终全部翻译成可直接在M1上运行的机器语言,程序一次性执行;
ii. 解释型:直接运行源程序,而且是一条一条执行源程序中的语句,只不过是每执行一条就将其翻译成可直接在M1上运行的机器语言,即翻译一次执行一次,即使下一次重复执行该语句也必须得走该流程,这种层次结构就只有两层;
注:该过程同样也是三层结构的,相当于M3每执行一次高级语言就将其先翻译成汇编语言,再翻译成机器语言最后再执行,这种模式更加贴近人的思维,就好像真的在执行高级语言一样,并且是“一条一条执行高级语言”的;
c. 四级层次结构:就是讲第一层再向下分解出一个微程序机器,又因为实际机器和微程序机器都是实际机器,因此将第一层的实际机器改称为传统机器以示区别
第一层 传统机器M1
还是机器语言机器
将每一条机器指令按照不同的部分分解成更小的原子操作,即按照“指令类型+操作数1+操作数2”的形式进行分解,
分解成更小的一组微指令,再将不同类型的微指令传给相应的M0直接运行,例如一条机器指令(为了方便,用汇编
语言描述)”MOV AL,X;“,将其分解成更小的三条微指令MOV、AL、X,分别为移动指令、寻找寄存器存储单元的寻址
指令和寻找内存存储单元的寻址指令,然后将这三个微指令交由各自相应的微程序机器运行(分别交由移动控制单元、
寄存器寻址控制单元和内存寻址控制单元来运行),这样就将实际机器M1分解成了若干更小的微程序机器M0,这更加
体现了分工合作的高效性;
第零层 微程序机器M0
微指令系统
可以直接运行各自的微指令,因此由机器指令分解而来的各条微指令可以看做更小的微程序
d. 五级层次结构:即在M1和M2(即机器机和汇编机之间)还应有一层虚拟机,即操作系统,因为它具有控制并管理计算机全部硬件资源的作用,因此上层虚拟机的很多实现都必须有操作系统支持,比如malloc需要有操作系统的内存映射来支持,但从高级语言角度来看malloc没有任何意义,操作系统不是翻译程序,而是上层程序的运行环境;
3. 从层次结构来划分软硬件:
a. 以操作系统为分界线,上层虚拟机是软件的主要研究对象,而下层的传统机和微程序机是硬件的主要研究对象,组成原理主要的研究对象就是传统机和微程序机;
b. 软硬件界线并非一成不变,随着超大规模集成电路的发展出现了固件,即将软件永久存于只读存储器中;
例如,现在已经实现部分操作系统的固化(固态C盘),这样就省去了开机时将操作系统加载进内存的时间,MPU可以直接读操作系统中的内容,相当于一个专门存放操作系统的永久性内存;
4. 计算机系统结构和计算机组成的区别:
a. 计算机系统结构:
i. 即计算机系统的属性,比如指令系统、数据类型、存储技术等;
ii. 是一种概念性的结构与功能;
iii. 只在程序员层面上可见,由于计算机系统具有多级层次结构,因此站在不同层次上的程序员所看到的计算机系统结构是不同的;
iv. 例如在C程序员看来完全相同的两种系统结构,但在汇编程序员看来可能完全不一样;
b. 计算机组成:
i. 是对于程序员来说是透明的(隐藏的)实现系统结构的硬件细节;
ii. 例如指令系统是一种结构问题,而如何用硬件实现(用什么电路、用那些器件进行组合)具体的指令系统就是计算机组成问题了;
c. 最为典型的例子:
厂商一般会生产同一系列不同型号的各种计算机,不同型号之间性能以及价格等会有较大的差别,但是这些型号的计算机上面开发的软件可以相互兼容;
其中同一系列就是指这些计算机的系统结构都是相同的,因此对于程序员来说其看到的系统属性都是相同的,因此开发的软件相互都可以兼容(从而使用户的软件投资不浪费),而不同型号就是指这些计算机组成互不相同,但是这些不同的组成都实现了相同的体系结构,不同组成使得其运行速度有较大差异,一些方面的性能可能不同,这样可以针对不同性能需求的用户提供同一种体系结构的产品;
a. 由软硬件两大部分组成;
b. 硬件:是指实体部分,通常指主机(MPU、内存及其支持部件)、接口、外设这些看得见摸得着的东西;
c. 软件:是指程序和相关附件(程序的产品说明、使用说明等),软件不仅能充分调动硬件的功能而且能局部模仿人类思维,因此软件也是评价系统好坏的重要标志;
d. 软件通常分为两大类:
i. 系统软件:底层软件,和相应的硬件紧密相连,通用性较差,基于硬件平台,主要有这几类:
*1. 标准程序库:例如开机启动程序BIOS;
*2. 语言处理程序:特指汇编以及高级语言编译器;
*3. 操作系统:有批处理、分时、实时等类型;
*4. 服务程序:例如连接、诊断、调试程序等;
*5. 数据库管理程序:基于操作系统,又低于应用程序;
*6. 网络通信程序等;
ii. 应用软件:位于最高层次,基于系统软件,比如游戏软件、事务管理软件、文本编辑器等;
举例:比如游戏里的存档功能就是调用了操作系统提供的文件写入功能,因此游戏软件是基于操作系统的;
2. 计算机系统的层次结构:
a. 三级层次结构:
第三级(最高级) 虚拟机M3(高级语言机器)
实质是编译器,将高级语言编译成汇编语言再传给M2执行,
从外部看上去就是一台可以直接运行高级语言的机器,将M2的功能隐藏了
第二级 虚拟机M2(汇编语言机器)
实质也是编译器,将汇编语言编译成机器语言再传给M1执行,
从外部看上去就是一台可以直接运行汇编语言的机器,将M1的功能隐藏了
第一级(最底层) 实际机器M1(机器语言机器)
可以直接运行机器语言程序
b. 严格来讲以上虚拟机都属于翻译程序,通常翻译程序可以分为两类:
i. 编译型:就像a.中的结构,直接将源程序最终全部翻译成可直接在M1上运行的机器语言,程序一次性执行;
ii. 解释型:直接运行源程序,而且是一条一条执行源程序中的语句,只不过是每执行一条就将其翻译成可直接在M1上运行的机器语言,即翻译一次执行一次,即使下一次重复执行该语句也必须得走该流程,这种层次结构就只有两层;
注:该过程同样也是三层结构的,相当于M3每执行一次高级语言就将其先翻译成汇编语言,再翻译成机器语言最后再执行,这种模式更加贴近人的思维,就好像真的在执行高级语言一样,并且是“一条一条执行高级语言”的;
c. 四级层次结构:就是讲第一层再向下分解出一个微程序机器,又因为实际机器和微程序机器都是实际机器,因此将第一层的实际机器改称为传统机器以示区别
第一层 传统机器M1
还是机器语言机器
将每一条机器指令按照不同的部分分解成更小的原子操作,即按照“指令类型+操作数1+操作数2”的形式进行分解,
分解成更小的一组微指令,再将不同类型的微指令传给相应的M0直接运行,例如一条机器指令(为了方便,用汇编
语言描述)”MOV AL,X;“,将其分解成更小的三条微指令MOV、AL、X,分别为移动指令、寻找寄存器存储单元的寻址
指令和寻找内存存储单元的寻址指令,然后将这三个微指令交由各自相应的微程序机器运行(分别交由移动控制单元、
寄存器寻址控制单元和内存寻址控制单元来运行),这样就将实际机器M1分解成了若干更小的微程序机器M0,这更加
体现了分工合作的高效性;
第零层 微程序机器M0
微指令系统
可以直接运行各自的微指令,因此由机器指令分解而来的各条微指令可以看做更小的微程序
d. 五级层次结构:即在M1和M2(即机器机和汇编机之间)还应有一层虚拟机,即操作系统,因为它具有控制并管理计算机全部硬件资源的作用,因此上层虚拟机的很多实现都必须有操作系统支持,比如malloc需要有操作系统的内存映射来支持,但从高级语言角度来看malloc没有任何意义,操作系统不是翻译程序,而是上层程序的运行环境;
3. 从层次结构来划分软硬件:
a. 以操作系统为分界线,上层虚拟机是软件的主要研究对象,而下层的传统机和微程序机是硬件的主要研究对象,组成原理主要的研究对象就是传统机和微程序机;
b. 软硬件界线并非一成不变,随着超大规模集成电路的发展出现了固件,即将软件永久存于只读存储器中;
例如,现在已经实现部分操作系统的固化(固态C盘),这样就省去了开机时将操作系统加载进内存的时间,MPU可以直接读操作系统中的内容,相当于一个专门存放操作系统的永久性内存;
4. 计算机系统结构和计算机组成的区别:
a. 计算机系统结构:
i. 即计算机系统的属性,比如指令系统、数据类型、存储技术等;
ii. 是一种概念性的结构与功能;
iii. 只在程序员层面上可见,由于计算机系统具有多级层次结构,因此站在不同层次上的程序员所看到的计算机系统结构是不同的;
iv. 例如在C程序员看来完全相同的两种系统结构,但在汇编程序员看来可能完全不一样;
b. 计算机组成:
i. 是对于程序员来说是透明的(隐藏的)实现系统结构的硬件细节;
ii. 例如指令系统是一种结构问题,而如何用硬件实现(用什么电路、用那些器件进行组合)具体的指令系统就是计算机组成问题了;
c. 最为典型的例子:
厂商一般会生产同一系列不同型号的各种计算机,不同型号之间性能以及价格等会有较大的差别,但是这些型号的计算机上面开发的软件可以相互兼容;
其中同一系列就是指这些计算机的系统结构都是相同的,因此对于程序员来说其看到的系统属性都是相同的,因此开发的软件相互都可以兼容(从而使用户的软件投资不浪费),而不同型号就是指这些计算机组成互不相同,但是这些不同的组成都实现了相同的体系结构,不同组成使得其运行速度有较大差异,一些方面的性能可能不同,这样可以针对不同性能需求的用户提供同一种体系结构的产品;
相关文章推荐
- [计算机系统]计算机系统中的一些基本概念
- 计算机系统结构 计算机系统结构的基本概念
- 计算机系统基本概念概述
- 深入理解计算机系统:汇编基本概念
- 【计算机系统结构】 计算机系统结构的基本概念
- 基本概念学习(1002)---计算机系统
- 几个基本的计算机概念
- C#点滴--几个基本概念
- 电力网、电力系统和动力系统几个概念的区别?
- 录制脚本前需要理解的几个基本概念
- WebService开发的几个基本概念
- 进阶——分布式系统基本概念
- Java千百问_01基本概念(016)_32位和64位计算机有什么区别
- cs app深入理解计算机系统:第五章 优化程序性能 几个优化的java实现
- 入门SAP FICO必学的几个基本概念
- Java:几个基本概念 IDE/SDK(JDK)/Tomcat/JavaBean/Serverlet/JSP/JavaScript
- 架构设计:系统间通信(10)——RPC的基本概念
- (转)Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
- Linux系统启动01-基本概念
- 几个基本概念辨析:流敏感,路径敏感和上下文敏感