程序的表示、转换与链接:一、计算机系统概述

本文详细介绍了计算机系统的构成、程序开发过程、冯·诺依曼结构、从高级语言到机器代码的转换、以及计算机层次结构,涵盖了指令集体系结构、存储地址表示、并发执行和异常处理等内容。
摘要由CSDN通过智能技术生成

本课涵盖的内容

如下图,本课重点在高级语言以下的各抽象层(从上到下,第3~6层):

  1. C语言程序设计层:数据的机器级表示和运算、语句和过程调用的机器级表示
  2. 操作系统、编译和链接的部分内容
  3. 指令集体系结构(ISA)和汇编层:指令系统、机器代码、汇编语言
  4. 微体系结构及硬件层:CPU的通用结构、层次结构存储系统

请添加图片描述

一、计算机系统基本组成结构与基本功能

冯·诺依曼结构

现代计算机的原型。冯·诺依曼结构最重要的思想是“存储程序”,即任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需操作人员干预下,自动完成逐条取出指令和执行指令的任务。当年基于冯诺依曼结构设计的“存储程序”计算机,被称为IAS(the Institute for Advance Study at Princeton)计算机
请添加图片描述
抽象出来的结构图如下所示:
请添加图片描述
冯诺依曼结构提出,计算机应由运算器、控制器、存储器、输入设备、输出设备五个基本部件组成:

  1. 存储器:不仅能存放数据,还能存放指令,形式上二者没有区别,但计算机应能区分数据还是指令
  2. 控制器:应能自动取出指令来执行
  3. 运算器:应能进行加减乘除,并能进行一些逻辑运算和附加运算
  4. 输入/输出设备:操作人员可通过IO设备和主机进行通信

二、程序的开发和执行过程

最早的程序开发

很简单,直接输入指令和数据,启动后把第一条指令地址送PC开始执行

后来用高级语言开发程序,就需要更复杂的支撑环境

  1. 需要编辑器编写源程序
  2. 需要一套翻译转换软件处理各类源程序
    • 编译方式:预处理程序、编译器、汇编器、链接器
    • 解释方式:解释程序
  3. 需要一个可以执行程序的界面(环境)
    • GUI方式:图形用户界面
    • CUI方式:命令行用户界面

其中,前两个属于语言处理程序,第三个属于人机接口。语言处理系统提供语言处理程序+语言的运行时系统(运行时系统如库函数,调试、优化等功能)。操作系统提供人机接口+操作系统内核(如printf)。语言处理系统+操作系统=系统软件。系统软件又是在指令集体系结构的基础上构建起来的(操作系统最终是由指令实现的,而指令是按照一定规范编写的,这个规范就是指令集体系结构)。而指令集体系结构最终是由计算机硬件实现的,即指令集体系结构是计算机硬件的一种抽象,抽象成软件能够直接使用的一个接口,软件就可通过此接口来使用具体硬件了

请添加图片描述

三、计算机系统层次结构

  1. 不同时期,计算机系统的层次结构:
    • 最早的计算机用机器语言编程(机器语言为第一代程序设计语言),其层次结构如下图
      请添加图片描述
    • 后来用汇编语言编程(汇编语言为第二代程序设计语言),其层次结构如下图
      请添加图片描述
    • 现代计算机用高级语言编程(第三代程序设计语言为过程式语言、第四代程序设计语言为非过程化语言),其层次结构如下图
      请添加图片描述
  2. 计算机系统的不同用户:
    • 最终用户:工作在由应用程序提供的最上面的抽象层
    • 系统管理员:工作在由操作系统提供的抽象层。系统管理用通过操作系统提供的命令对操作系统进行管理,如进行备份、升级、杀毒等
    • 应用程序员:工作在由语言处理系统(编译器、汇编器等)的抽象层,语言处理系统建立在操作系统上。如编写游戏的程序员
    • 系统程序员:实现系统软件(语言处理程序、操作系统)。工作在ISA层次,必须对ISA非常了解,是直接用指令编写程序的
      请添加图片描述
  3. 指令集体系结构ISA:
    Instruction Set Architecture,指令集体系结构。ISA是一种规约,规定了如何使用硬件。可看作对硬件的抽象,所有软件功能都建立在ISA之上,没有它,软件就无法使用计算机硬件。规定内容如下:
    • 可执行的指令的集合,包括指令格式、操作种类、每种操作对应的操作数的相应规定
    • 指令可以接受的操作数的类型
    • 操作数所能存放的寄存器的结构,包括每个寄存器的名称、编号、长度、用途
    • 操作数所能存放的存储空间的大小和编址方式
    • 操作数在存储空间存放时按照大端还是小端方式存放
    • 指令获取操作数的方式,即寻址方式
    • 指令执行过程的控制方式,包括程序计数器PC、条件码定义等
  4. ISA和计算机组成(微结构)之间的关系:
    计算机组成/微体系结构图如下:
    请添加图片描述
    由于不同ISA规定的指令集不同,如IA-32规定只有8个通用寄存器,MIPS规定有32个通用寄存器,那么相对应的IA-32里寄存器的编号只有3位,MIPS里指令中寄存器的编号就有5位。因此指令集ISA和微体系结构是密切相关的,计算机组成必须能够实现ISA规定的功能,如提供GPR、标志、运算电路等。

    而有时,同一种ISA可以有不同的计算机组成,如乘法指令可用ALU或乘法器实现。有没有乘法指令属于ISA要考虑的问题,而如何实现乘法指令是微体系结构需要考虑的问题

    ISA实际上就是计算机组成的抽象,也是计算机硬件的抽象。

四、计算机系统基础课程内容概要

请添加图片描述
三个主题:

  1. 表示:
    • 不同数据类型(带符号整数、无符号整数、浮点数、数组、结构等)在寄存器或存储器中如何表示和存储?
    • 指令如何表示和编码(译码)?
    • 存储地址(指针)如何表示?如何生成复杂数据结构中数据元素的地址?
  2. 转换
    • 高级语言程序对应的机器级代码是怎样的?如何转换并链接生成可执行文件?
  3. 执行控制流
    • 计算机能理解的“程序”是如何组织和控制的?
    • 如何在计算机中组织多个程序的并发执行?
    • 逻辑控制流中的异常事件及其处理
    • I/O操作的执行控制流(用户态->内核态)
  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值