跳转至

备忘录

  1. 指令系统的功能与边界

1745075957300-ce1dce52-6330-4d29-b92e-05aafe47c194.png

Note

  • 指令系统边界:软件可以通过指令控制计算机行为,但是指令的使用者并不一定了解指令执行的全部细节。例如,指令可以直接访问内存,但是在这个过程中CPU实际上会通过cache来加速访存,而指令的使用者并不清楚这个细节。而与之类似的虚拟页式管理,当访问内存失败后,操作系统会通过指令去辅存中调页进入内存,因此这个过程是直接受指令控制的。因此,在操作系统的学习过程中,一定要分清指令系统的边界,清楚哪些工作是指令控制完成的软件功能,哪些是属于底层硬件实现的功能。而操作系统属于软件,同样是指令集形成的程序,因此,指令系统的边界同样是操作系统的边界,操作系统只能对指令系统涉及到的硬件资源进行管理,而无法管理和感知指令无法涉及的层次(例如cache)。
  • 变址寄存器、通用寄存器、内存里的值,用户程序中的指令可以直接访问或者修改,也可以通过控制通用寄存器实现与内存之间的数据交换
  • 变址寻址方式和基址寻址方式的有效地址形成过程类似。但是,基址寻址方式与变址寻址方式在以下两个方面不同:①具体应用的场合不同。变址寻址面向用户,可用于访问字符串、数组、表格等成批数据或其中的某些元素;基址寻址面向系统,用于解决程序的重定位问题和短地址访问大空间的问题。②使用方式不同。变址寻址时,指令中提供的形式地址是一个基准地址,位移量由变址寄存器给出;而基址寻址时,指令中给出的形式地址为位移量,而基址寄存器中存放的是基准地址。因此一个对应用层程序员(用户)可见,一个对系统程序员可见。
  • 系统程序员可直接读写的必须在内核态下使用特权指令才能访问,对用户程序不可见
  • 关于IO端口:指令系统通过访问I/O接口对I/O设备进行访问,主要包括直接访问和内存映射两种方式。指令可以通过将CPU寄存器的值读入I/O接口中的控制寄存器来向I/O设备发出命令、给出设备输入,也可以通过读取设备控制寄存器的值来感知设备状态、获取设备输出。与此同时,支持DMA与通道的块设备(如磁盘)还可以在CPU发出命令后,直接与内存进行大块数据的直接交换。
  • PSW(EFLAG)寄存器其内容由CPU根据指令执行结果自动设定,用户程序执行过程中可能会隐含读取到其部分内容(如OF CF等溢出标志位),以确定程序的执行顺序(例如跳转指令进行转移条件判断),但是不能直接修改PSW寄存器的值;PC程序计数器也是如此,我们可以通过无条件跳转指令jump间接修改其值,但是无法直接读写;因此PC PSW属于用户部分可见寄存器
  • 指令边界以下的寄存器等硬件对操作系统来说都是不可见的(与黑盒一般),只能由CPU硬件访问(具体硬件机制不必探究);例如,指令寄存器IR用来存放正在执行的指令,只能被硬件访问;存储器地址寄存器(MAR)和存储器数据寄存器(MDR)分别用来存放将要访问的存储单元的地址和数据,也由硬件直接访问;
  • 理解了上面表格的信息,也就可以明白了为什么中断的处理过程中,保存断点信息(PC PSW)由硬件执行(保存到内核堆栈),而保存现场信息(通用寄存器)和屏蔽字由操作系统执行,因为操作系统不能直接读写PC PSW的信息。

1747111058292-3ac905fd-39ed-44f7-bada-29531e2ea282.png

  1. 中断向量表(中断描述符表)位于内存的内核空间之中,由特殊的寄存器(内核中断向量表基址寄存器IDTR)记录其表首位置,存放内容为中断向量。

1745125835792-d744552f-799a-4bce-906a-dcb60179b0ab.png

  1. 1745228411110-184689e8-a683-4493-b525-f6d23264b0e5.png

【2015-21】在采用中断I/O方式控制打印输出的情况下,CPU和打印控制接口中的I/O端口之间交换的信息不可能是( )。

A. 打印字符

B. 主存地址

C. 设备状态

D. 控制命令

本题选B

  1. 1745416818871-422f776e-a338-4eaf-9f07-f6a8470cb8f4.png

拆分一下

操作系统引导

磁盘格式化+操作系统安装

  1. 1745324329672-58a106e3-66b2-4b74-9385-1b5562d1c727.png