1. 存储器的层次结构
1.1 多层结构的存储器系统
-
存储器的多层结构
对于通用计算机:最高层为CPU寄存器,中间为主存,最底层是辅存;
在较高档的计算机:寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质;
存储器多层结构的特点:层次越高(越靠近CPU),存储介质的访问速度越快,价格也越高,相对所配置的存储容量也越小。
操作系统存储管理的管辖范畴:寄存器、高速缓存、主存储器和磁盘缓存;
设备管理的管辖范畴:固定磁盘和可移动存储介质。 -
可执行存储器
可执行存储器:寄存器、主存储器
计算机访问可执行存储器的方式:load或store指令,需很少的时钟周期的时间
计算机访问辅存的方式:通过I/O设备,涉及中断、设备驱动程序以及物理设备的运行,运行时间比访问可执行存储器相差3个数量级或更多。操作系统的存储管理:
对可执行存储器:分配、回收、提供在存储层次间数据移动的管理机制。
对设备和文件管理:根据用户的需求,提供对辅存的管理机制。
1.2 主存储器与寄存器
-
主存储器
简称内存或主存,是计算机中的主要部件,用于保存进程运行时的程序和数据。通常,处理机都是从主存储器中取得指令和数据的,并将其所得的指令放入指令寄存器中,而将其所读取的数据装入到数据寄存器中;或者反之,将寄存器中的数据存入到主存储器。
由于主存储器访问速度远低于CPU执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。
-
寄存器
寄存器具有与处理机相同的速度,故对寄存器的访问速度最快,完全能与CPU协调工作,但价格却十分昂贵,因此容量不可能做得很大。寄存器的用途:存放处理机运行时的数据(存放操作数、地址寄存器加快地址转换速度)
1.3 高速缓存和磁盘缓存
-
高速缓存
介于寄存器和存储器之间的存储器,主要用于备份主存中较常用的数据,以减少处理机对主存储器的访问次数,大幅度地提高程序执行速度。 -
磁盘缓存
主要用于暂时存放频繁使用地一部分磁盘数据和信息,以减少访问磁盘的次数。并不是一种实际存在的存储器,而是利用主存中的部分存储空间暂时存放从磁盘中读出(或写入)的信息。
主存也可以看作是赋存的高速缓存。
2. 程序的装入和链接
用户程序要在系统中运行,必须先将它装入内存,然后再将其转变为一个可以执行的程序,通常都要经过以下几个步骤:
(1)编译,由编译程序(Compiler)对用户源程序进行编译,形成若干个目标模块(Object Module);
(2)链接,由链接程序(Linker)将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的装入模块(Load Module);
(3)装入,由装入程序(Loader)将装入模块装入内存。
2.1 程序的装入
- 绝对装入方式(Absolute Loading Mode)
- 可重定位装入方式(Relocation Loading Mode)
- 动态运行时的装入方式(Dynamic Run-time Loading)
2.2 程序的链接
- 静态链接(Static Linking)方式
- 装入时动态链接(Load-time Dynamic Linking)
- 运行时动态链接(Run-time Dynamic Linking)