您的位置:首页 > 理论基础

一、计算机系统的几个基本概念

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. 最为典型的例子:

            厂商一般会生产同一系列不同型号的各种计算机,不同型号之间性能以及价格等会有较大的差别,但是这些型号的计算机上面开发的软件可以相互兼容;

            其中同一系列就是指这些计算机的系统结构都是相同的,因此对于程序员来说其看到的系统属性都是相同的,因此开发的软件相互都可以兼容(从而使用户的软件投资不浪费),而不同型号就是指这些计算机组成互不相同,但是这些不同的组成都实现了相同的体系结构,不同组成使得其运行速度有较大差异,一些方面的性能可能不同,这样可以针对不同性能需求的用户提供同一种体系结构的产品;

                                                                                                          
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计算机系统