OS系列 2-1
存储器管理
存储器概述
程序的链接和装入
存储分配(管理)方式
连续分配
离散分配
虚拟存储器
存储器概述
存储器层次结构
寄存器 寄存器具有与处理机相同的速度。主要用于存放处理机运行时的数据。如用寄存器存放操作数,或用作地址寄存器加快地址转换速度等。 高速缓存 是介于寄存器和主存储之间的存储器,用于备份主存中常用的数据。 主要的用途是局部性原理 主存储器 主存储器简称内存或主存。由于主存储器的访问速度远低于 CPU 执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。 磁盘缓存 并不是实际存在的介质,只要是在主存中占用一块地址来存储从磁盘读取的数据缓存。 固定磁盘 可移动存储介质
存储器管理的功能
内存保护:防止因用户程序错误 破坏 系统或其他用户,防止程序之间的相互干扰 内存分配:对内存进行分配 地址映射:将逻辑地址转换为物理地址 内存扩充:在逻辑上为用户提供一个比实际内存更大的存储空间
程序的链接和装入
用户程序要在系统中运行,必须先将它装入内存,然后再将其转变为一个可执行程序
基本的步骤:
编译:将用户源代码编译为多个目标模块 链接:将目标模块和所需要的库函数链接在一起,形成完整的装入模块 装入:通过装入程序,装入到内存
链接方式
静态链接 在程序运行之前,将各个目标模块与他们所需要的库函数进行连接,形成一个完整的装配模块,以后不在拆开。 装入时动态链接 在目标模块在装入内存时才进行链接,便于装入前的更新和修改 运行时动态链接 在程序执行的时候才进行链接。即使在执行的时候,载入被调用的模块,然后执行一系列的操作,如果没有调用,则不会进行操作,有利于程序的转入,节省内存空间
装入方式
绝对装入方式 运行单道程序的时候的方式。装入模块被装入内存后,程序中的逻辑地址与实际内存地址完全相同 可重定位装入》》静态重定位 在多道程序中,因为多个目标模块的起始位置都是0,所以,需要采用重定向的方式,对目标程序的指令和数据进行修改。 动态运行时装入 》》动态重定位 需要重定位寄存器的支持,因为程序在内存中发生了移动,所以,不能将模块的装入的地址转化为绝对地址,只有在程序正真正的执行时候,才转化为绝对地址