软件设计师之一考就过:成绩版
考点1:CPU、指令
真题1:CPU 执行算术运算或逻辑运算时,常将源操作数和结果暂存在(累加器(AC))中。
真题2:在程序的执行过程中,Cache与主存的地址映射是由(硬件自动)完成的。
真题3:计算机执行程序时,内存分为静态数据区、代码区、栈区和堆区。其中(栈区)一般在进行函数调用和返回时由系统进行控制和管理,(堆区)由用户在程序中根据需要申请和释放。
解析:堆是一块动态存储区域,由程序员在程序中进行分配和释放。
真题4:计算机中,系统总线用于(CPU、主存及外设部件)连接。
-
总线(Bus),是指计算机设备和设备之间的传输信息的公共数据通道。(接到电脑主板上的线基本就是总线)
-
通常分为以下三类:
**内部总线:**内部芯片级别的总线,芯片与处理器之间通信的总线。(肉眼看不到,在芯片内部等)
系统总线:是板级总线,用于计算机内各部分之间的连接(比如硬盘和主板等),具体分为**数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传输控制命令)。(考点:总线的分类考试时只需要回答:数据总线、地址总线、控制总线即可)**代表的有 ISA 总线、EISA总线、PCI总线。
**外部总线:**设备一级的总线(计算机和外部之间的),微机和外部设备的总线。代表的又RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。
计算机指令执行过程:取指令——分析指令——执行指令,三个步骤:
首先将程序计数器PC中的指令地址取出,送入地址总线,CPU 依据指令地址取内存中取出指令内容存入指令寄存器IR;
而后由指令译码器进行分析,分析指令操作码;
最后执行指令,取出指令执行所需的源操作数。
1、指令操作数的寻址方式(考点:立即、直接、间接)
真题1:寻址速度对比:立即>寄存器>直接>间接
立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。
寄存器寻址方式:指令中的地址码是寄存器的编号。
直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。
间接寻址方式:指令地址码字段指向的存储单元中存储的操作数的地址。
2、CISC 和 RISC
CISC 是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现;
RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)。
具体区别如下:
3、指令执行的流程
首先要知道的是 指令是放在内存里面的。
PC (指令计数器,Program Counter)存放的总是下一个指令的内存地址。
一个指令执行时,CPU 会自动修改 PC 的内容,以便使其保持的总是将要执行的下一条指令的地址。
想要执行下一条指令时,就将下一条指令的地址传递给内存。
然后内存通过数据线返回需要的数据(指令),将指令从内存取到数据寄存器(DR)中。
CPU 拿到这条指令需要把指令先找个地方保存着。(从数据寄存器(DR)传送至 IR 中)
这个地方就是 IR 寄存器(指令寄存器)(从数据寄存器(DR)传送至 IR 中),即 IR 寄存器用于保存指令,保存当前正在执行的一条指令。
保存到 IR(指令寄存器) 后, CPU 就开始翻译这条指令(将 IR 中的 操作码 传送到指令译码器进行移码),翻译完这条指令就知道这条指令想要做什么了。(控制器发出操作信号的控制下,计算机各有关部件执行操作码规定的操作)
ADD(R1),R0
比如:
R1 寄存器的内容为 2234(内存地址),而内存地址为 2234 对应的内容为 4
R0 寄存器的内容为 3
同时 有个 ALU(算术逻辑单元) 可以用来做比如加法操作。
然后就可以开始执行了,执行的步骤为:
1、根据 R1 找到主存中对应的位置,即 将 R1 的 2234 通过地址线传递给内存
2、内存根据地址 2234 ,找到该地址,并获取到对应的内容,比如这里为 4
3、然后数据 4 通过数据线 跑到/暂存到 暂存器中(该暂存器为累加寄存器)
4、这时 第一个 运算数 4 就已经在 ALU 的输入端了,再将另一个运算数 3 放到 ALU 的输入端:即 取出 寄存器 R0 的 值
5、两个输入参数都在 ALU 输入端了,此时只需要给 ALU 一个 加法信号,那么结果 7 便会直接输出到寄存器中。(该寄存器为 累加寄存器)
6、最终需要将结果数据输出到主存中。结果数据 7 通过数据线传递到内存,数据 7 传递到数据线时,就会根据 R1 的地址 2234,将 2234 的地址的对应内容写为 结果数据 7(即该地址的数据由原来的 4 变为了 7)。
至此一个指令就执行完成了。
控制器包括 指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、指令译码器(ID)。
地址寄存器(AR):保存当前 CPU 所访问的内存单元的地址,由于内存和CPU存在着操作速度上的差异,所以需要使用 AR 保持地址信息,直到内存的读/写操作完成。
注意指令: ADD(R1),R0,ADD 为操作码,R1 为地址码
4、进程与线程
1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程,线程依赖于进程而存在。
2、进程:是操作系统进行资源分配和调度的一个独立单位。进程拥有独立的地址空间,一般情况下至少包括文本区域(代码)、数据区域和堆栈。每个进程都有自己的内存空间和系统资源。
3、线程:是进程的执行流,是CPU调度的基本单位,也是一段程序执行的路径。一个进程中可以包含多个线程,它们共享进程的内存空间和资源,但是每个线程有自己的程序计数器(PC)、寄存器集合和栈。
考点2:计算机和外设间的数据交互方式、中断
真题1:计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和 DMA 方式等,当采用(DMA)方式时,不需要CPU执行程序指令来传送数据。
真题2:Linux 中只有一个根目录,用"/"表示。
真题3:计算机运行过程中,CPU需要与外设进行数据交换。采用(中断方式和DMA方式)控制技术时,CPU与外设可并行工作。
真题4:以下关于I/O软件的叙述中,正确的是:
B、I/O 软件隐藏了 I/O操作实现的细节,向用户提供的事物理接口
C、I/O软件印象了I/O操作实现的细节,方便用户使用I/O设备
答案:C
真题5:在由高速缓存、主存和硬盘构成的三级存储体系中,CPU执行指令时需要读取数据,那么DMA控制器和中断CPU出的数据地址是(主存物理地址)。
真题6:中断与DMA方式都可实现外设与CPU之间的并行工作
真题7: