180203—【操作系统】背景知识
按:
操作系统利用一个或多个处理器的硬件资源,为系统用户提供一组服务,
它还代表用户来管理辅助存储器和输入/出设备。
计算机的基本构成
计算机有四个主要的结构化部件:
- 处理器 :
- 内 存:常为易失性的,关机即空。与其相对的是磁盘存储器,关机时内容不会丢失。
内存通常也叫:实存储器、主存储器。 - 输入/出设备:
- 系统总线:
处理器的功能包括和内存交换数据,为此,它需要:
两个内部 (对处理器而言)寄存器:
- 存储器地址寄存器 MAR: 用于存储下一次执行读写的存储器的地址。
- 存储器缓存寄存器 MBR:存储将要写入存储器,或从存储器提取的数据。
同理,为实现输入输出功能,也需要:
- 输入输出地址寄存器 MAR: 用于确定一个输入输出设备的地址。
- 输入输出缓存寄存器 MBR:用于在处理器和输入输出设备中间传导数据。
内存模块由一组单元构成,这些单元由按顺序编号的地址确定,每个单元存储一个二进制数,可解释为一个指令或数据。
输入输出模块也有自己的内存缓存区,用于临时存储数据直到他们全部到达该去的地方。
可以如下总结:
数据的历程包括: 存储—>处理器—>输入/出设备。
指令如何执行
处理器执行的程序是由一组保存在存储器中的一组指令组成的,单个指令所需要的处理称为一个指令周期,该周期在简化之后由两个阶段组成:取指阶段、执行阶段。
相关部位:
- 存储器:用以存储待执行的指令和待处理的数据;
- 程序计数器PC:缓存需执行的指令在存储器中的地址;
- 指令寄存器IR:用以存放当前在执行的指令;
- AC:用于缓存需要处理的数据。
下图中,展示了把地址为940的存储单元中的内容与地址为941中的内容相加,并把结果保存在后一个单元的过程,该过程需要三条指令:
- PC取第一条指令的地址为300,该指令的内容被送入IR处理,此后PC递增1。
- IR的最初4位,一个十六进制数表示需加载AC,剩下12位指明内容的地址为940,940中的数据被取入AC;
- PC递增之后为301,取其中的指令送入IR,PC再增1;
- IR表示需要把AC中以前的内容和地址为941中的内容相加,结果保存在AC中;
- 从302中取下一条指令(2941),PC增1;
- IR指示AC中的内容被存在941中。
中断
中断是用于提高处理器处理效率的一种手段。
例如,绝大多数I/O设备都慢于处理器,遇到需要调用I/O设备时,如果等待该设备准备好,则处理器将会空闲较长时间造成资源浪费。
假设有一台1GHz CPU的PC,它每秒可执行10^9次指令,典型的硬盘转速为7200转/秒,因此旋转半周的时间为4ms,这比处理器慢了大约4000000倍。
上图,write指令表示调用一个I/O模块。
a中为未设计中断机制时的情况,write指令执行时,处理器只能空闲;
b中,遇到wirte之后,此时该指令涉及的I/O程序只需要准备代码和真正的I/O指令,在这为数不多的几条指令执行完成之后,控制权被交回到用户程序,在这期间,外部设备忙于从存储器接受数据并打印,这种操作和用户程序中指令的执行是并发的;
c中,考虑如果在中断中间再次遇到中断时的情况。此时,用户程序在第一次调用I/O未完成之时就遇到了第二次wirte指令。
此时用户程序将被挂起,当第一次I/O程序完成之后,才能执行后续I/O程序。
中断和指令周期:
多个中断
假设正在处理一个中断时,可以发生另外的中断。
处理多个中断有两种办法:
- 在处理第一个中断时,禁止再发生中断,即对其他中断请求不予理睬。等第一个中断结束之后再执行。
- 定义中断优先级,允许高优先级打断低优先级。
第一种方式的缺点在于未考虑相对优先级和时间限制的要求,
比如:当来自通信线路的输入到达时可能需要快速接受,来为更多的输入让出空间,如果在第二批到来时第一批还未处理完,就可能导致缓冲区溢出而丢失数据。
第二种方法可解决该问题: