欢迎来到天天文库
浏览记录
ID:52585758
大小:887.50 KB
页数:70页
时间:2020-04-10
《南邮操作系统教程CH 04 存储管理.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第四章存储管理4.1概述4.2连续存储管理4.3分页式存储管理4.4分段式存储管理4.5虚拟存储学习目标虚拟设备多个进程和线程可以共享一个CPU多个进程和线程应该可以共享一个存储器多个进程和线程还可以共享一个IO设备(第5章)如何共享一个存储器?各进程/线程自己的数据有自己的执行区域,程序变成进程时是如何映射到那个区域去的?对各进程/线程在内存中的数据要加以保护,如何实施?为了更好地利用CPU,就应该让更多的进程/线程并发执行,如果内存不够用了怎么办?虚拟存储器源代码的伪中间代码intdemo(){inta=0;while(a<2){a++;}
2、return0;}代码执行时,这些行号需要改变吗?0demo:1inta=02loop:3temp=a–24if(temp>0)gotodone5a++6gotoloop7done:8return072存储地址及地址转换存储器使用的地址叫物理地址(绝对地址),其空间是由存储器地址总线扫描出来的空间,其大小取决于实际安装的主存容量。目标程序地址叫逻辑地址(相对地址),被限制从0开始编址,一个用户程序的逻辑地址集合称为该程序的逻辑地址空间。地址转换(重定位、地址映射):将程序的逻辑地址转成物理地址的过程。静态转换动态转换执行步骤:编译链接/装载执行
3、程序执行步骤(地址转换时机)源代码编译器目标模块链接器其它目标模块装载模块装载器内存可执行二进制中间代码0…1…2…3……050K100K180K230K…50K12内存静态地址转换静态转换:当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换。一般在装入内存时由软件完成。若编译时完成则需要程序员事先知道要装载的地址。1000goto12000100200300goto200a++逻辑地址空间110012001300物理地址空间a++动态地址转换动态转换:在程序执行过程中要访问数据时再进行地址变换,需要额外的硬件来记录程序装
4、载的内存基址。1000goto2000100200300a++110012001300a++逻辑地址空间物理地址空间CPUgoto2001000BR+goto200存储保护使在内存中的各道进程,只能访问它自己的区域,避免进程内存空间重叠,特别是不能访问OS的内存空间。通常需要两个硬件支持(不需要转换地址):基址寄存器(BaseRegister):存放装载的起始地址限长寄存器(LimitRegister):存放的最大逻辑地址0x000000000xFFFFFFFFOperatingSystem进程Base=0x20000Limit=0x10000
5、DRAM+BaseLimitCPU逻辑地址
6、可变分区存储管理。固定分区存储管理存储分配:系统维护一张主存分配表,里面记载了内存的分区划分和使用状态。分配主存时总选择那些分区占用标志为0且长度小于等于进程所需空间的分区块。回收只要相应分区占用位置0即可。分区号起始地址长度占用标志18K8K0216K16KP1332K16K0448K16K0564K32KP2696K32K00kOS(8K)8k分区1(8K)16k分区2(16K)32k分区3(16K)48k分区4(16K)64k分区5(32K)96k分区6(32K)固定分区的地址转换和存储保护静态转换:装入时检查绝对地址是否落在分区内动态转
7、换:执行时检查,如下图所示。下限寄存器B逻辑地址CPU绝对地址操作系统区用户分区1用户分区2用户分区3B+L2上限寄存器
8、120K空闲区表已分配区表始址长度标志15K23K未分配48K20K未分配80K30K未分配始址长度标志0K15KP138K10KP268K12KP3
此文档下载收益归作者所有