CCH10Virtualmemory操作系统.ppt

上传人:max****ui 文档编号:10961735 上传时间:2020-04-16 格式:PPT 页数:67 大小:1.64MB
返回 下载 相关 举报
CCH10Virtualmemory操作系统.ppt_第1页
第1页 / 共67页
CCH10Virtualmemory操作系统.ppt_第2页
第2页 / 共67页
CCH10Virtualmemory操作系统.ppt_第3页
第3页 / 共67页
点击查看更多>>
资源描述
Module10 VirtualMemory Background 背景 DemandPaging 请求页式 PerformanceofDemandPaging 请求页式的性能 PageReplacement 页置换 Page ReplacementAlgorithms 页置换算法 AllocationofFrames 页框的分配 Thrashing 颠簸 OtherConsiderations 其他考虑 DemandSegmenation 请求段式 9 1Background 为了在内存空间运行超过内存总容量的大作业或者同时运行大量作业解决的方法是从逻辑上扩充内存容量这就是虚拟存储技术所要解决的主要问题实现虚拟存储器要解决 程序部分运行可以吗 发现程序不在内存时 如何将其装入后继续运行 内存无空间时怎么办 虚拟存储器的引入局部性原理在一段时间内 程序的执行仅局限于某个部分 相应地 它所访问的存储空间也局限于某个区域内 那么程序为什么会出现局部性规律呢 原因可以归结为以下几点 程序在执行时 除了少部分的转移和过程调用指令外 大多数仍是顺序执行的 子程序调用将会使程序的执行由一部分内存区域转至另一部分区域 程序中存在许多循环结构 循环体中的指令被多次执行 程序中还包括许多对数据结构的处理 如对连续的存储空间 数组的访问 往往局限于很小的范围内 Background 局部性表现为 时间局部限性 如果程序中的某条指令一旦执行 则不久的将来该指令可能再次被执行 如果某个存储单元被访问 则不久以后该存储单元可能再次被访问 产生时间局限性的典型原因是在程序中存在着大量的循环操作 空间局部限性 一旦程序访问了某个存储单元 则在不久的将来 其附近的存储单元也最有可能被访问 即程序在一段时间内所访问的地址 可能集中在一定的范围内 其典型原因是程序是顺序执行的 Background 9 1Background Virtualmemoryisatechniquethatallowstheexecutionofprocessesthatmaynotbecompletelyinmemory 虚拟内存是一种允许进程部分装入内存就可以执行的技术 principleoflocality局部性原理 时间局部性 空间局部性Onlypartoftheprogramneedstobeinmemoryforexecution 只有运行的部分程序需要在内存中 Logicaladdressspacecanthereforebemuchlargerthanphysicaladdressspace 逻辑地址空间能够比物理地址空间大 Needtoallowpagestobeswappedinandout 必须允许页面能够被换入和换出 Virtualmemorycanbeimplementedvia 虚拟内存能够通过以下手段来执行 Demandpaging 请求页式 Demandsegmentation 请求段式 VirtualMemoryThatisLargerThanPhysicalMemory Background 虚拟存储的基本原理在程序装入时装入当前需要执行的部分页或段读入到内存在程序执行过程中根据缺页或缺段将相应的页或段调入到内存内存中暂时不使用的页或段调出保存在外存上 引入虚拟存储技术的好处可在较小的可用内存中执行较大的用户程序可在内存中容纳更多程序并发执行不必影响编程时的程序结构 与覆盖技术比较 提供给用户可用的虚拟内存空间通常大于物理内存 realmemory 虚拟存储技术的特征物理内存分配的不连续 虚拟地址空间使用的不连续与交换的比较 调入和调出是对部分虚拟地址空间进行通过物理内存和快速外存相结合 提供大范围的虚拟地址空间范围大 但占用容量不超过物理内存和外存交换区容量之和占用容量包括 进程地址空间中的各个段 操作系统代码 DemandPaging 在简单页式存储管理的基础上 增加请求调页和页面置换功能形成虚拟存储系统需解决 取页 将哪部分装入内存置页 将调入的页放在什么地方淘汰 内存不足时 将哪些页换出内存 DemandPaging Bringapageintomemoryonlywhenitisneeded 只有在一个页需要的时候才把它换入内存 LessI Oneeded 需要很少的I O Lessmemoryneeded 需要很少的内存 Fasterresponse 快速响应 Moreusers 多用户 Pageisneeded 需要页 referencetoit 查阅此页 invalidreference 无效的访问 abort 中止 not in memory 不在内存 bringtomemory 换入内存 对进程页表的修改缺页中断的特殊性 请求分页中的硬件支持它是在纯分页系统的基础上 增加了请求调页功能 页面置换功能所形成的页式虚拟存储系统 它是目前常用的一种虚拟存储器的方式 1 请求分页的页表机制它是在纯分页的页表机制上形成的 由于只将应用程序的一部分调入内存 还有一部分仍在磁盘上 故需在页表中再增加若干项 供程序 数据 在换进 换出时参考 在请求分页系统中的每个页表项如图所示 DemandPaging 其中各字段说明如下 状态位 存在位P 用于指示该页是否已调入内存 供程序访问时参考 访问字段A 用于记录本页在一段时间内被访问的次数 或最近已有多长时间未被访问 提供给置换算法选择换出页面时参考 修改位M 表示该页在调入内存后是否被修改过 由于内存中的每一页都在外存上保留一份副本 因此 若未被修改 在置换该页时就不需将该页写回到外存上 以减少系统的开销和启动磁盘的次数 若已被修改 则必须将该页重写到外存上 以保证外存中所保留的始终是最新副本 外存地址 用于指出该页在外存上的地址 通常是物理块号 供调入该页时使用 DemandPaging 2 缺页中断机构在请求分页系统中 每当所要访问的页面不在内存时 便要产生一缺页中断 请求OS将所缺页调入内存 与一般中断的主要区别在于 缺页中断在指令执行期间产生和处理中断信号 而一般中断在一条指令执行完后检查和处理中断信号 缺页中断返回到该指令的开始重新执行该指令 而一般中断返回到该指令的下一条指令执行 一条指令在执行期间 可能产生多次缺页中断 DemandPaging 3 地址变换机构请求分页系统中的地址变换机构 是在分页系统的地址变换机构的基础上 再为实现虚拟存储器而增加了某些功能所形成的 如产生和处理缺页中断 以及从内存中换出一页的功能等等 下图给出了请求分页系统的地址变换过程 DemandPaging 缺页中断处理是否否是是否产生缺页中否是断请求调页是 开始 程序请求访问一页 越界中断 CPU检索快表 页表项是否在快表中 访问页表 页是否在内存中 修改快表 修改访问位和修改位 形成物理地址 地址变换结束 保留CPU现场 从外存中找到缺页 页号 页表长度 内存满否 选择一页换出 该页是否被修改 将该页写回外存 将一页从外存换入内存 修改页表 CPU从外存读缺页 启动I O硬件 StepsinHandlingaPageFault Stepsinhandlingapagefault 查找页表来确定此次地址访问是否合法如果不合法 则中止该进程 否则如果是发生了缺页 则需要将其调入内存找到一个空闲物理块启动磁盘 把该页读入内存读磁盘结束后 修改页表以指出该页已在内存中重新开始执行刚才发生缺页中断的指令 这时它可以访问刚才调入的页 调入策略 分配策略和清除策略 分配策略 assignmentpolicy 调入策略 fetchpolicy 1 请求调页 demandpaging 2 预调页 prepaging 清除策略 cleaningpolicy 1 请求清除 demandcleaning 2 预清除 precleaning 页面调入策略 为能使进程运行 事先需将一部分要执行的程序和数据调入内存调入页面的时机预调页策略 主动的页面调入策略 即把那些预计很快会被访问的程序或数据所在的页面 预先调入内存 预测的准确率不高 50 主要用于进程的首次调入 也有的系统将预调页策略用于请求调页请求调页策略 当进程在运行中发生缺页时 由系统将缺页调入内存 目前虚拟存储器系统大多采用此策略 在调页时须花费较大的系统开销 如需频繁启动磁盘I O Valid InvalidBit Witheachpagetableentryavalid invalidbitisassociated 1 in memory 0 not in memory 在每一个页表的表项有一个有效 无效位相关联 1表示在内存 0表示不内存 Initiallyvalid invalidbutissetto0onallentries 在所有的表项 这个位被初始化为0 Exampleofapagetablesnapshot 一个页表映象的例子 Duringaddresstranslation ifvalid invalidbitinpagetableentryis0 在地址转换中 如果页表表项位的值是0 pagefault 缺页 1 1 1 1 0 0 0 Frame valid invalidbit pagetable PageFault Ifthereiseverareferencetoapage firstreferencewilltraptoOS 如果有对一个页的访问 第一个访问要陷入OS pagefault 缺页 OSlooksatanothertabletodecide OS查看另一个表来决定 Invalidreference 无效引用 abort 终止 Justnotinmemory 仅仅不在内存 Getemptyframe 得到空的页框 Swappageintoframe 把页换入页框 Resettables validationbit 1 重新设置页表 把位设为1 Restartinstruction 重启指令 LeastRecentlyUsed 最近未使用 blockmove 块移动 autoincrement decrementlocation 区域自动增长 缩减 Whathappensifthereisnofreeframe Pagereplacement findsomepageinmemory butnotreallyinuse swapitout 页置换 找到内存中并没有使用的一些页 换出 Algorithm 算法 Performance 性能 wantanalgorithmwhichwillresultinminimumnumberofpagefaults 找出一个导致最小缺页数的算法 Samepagemaybebroughtintomemoryseveraltimes 同一个页可能会被装入内存多次 PageReplacement 缺页率 假定作业Ji共有m页 系统分配给它的主存块为n块 这里m n 如果作业Ji执行过程中总的内存访问次数为A 成功访问的次数为S 不成功的访问次数为F 产生缺页中断的次数 则 A S F缺页率 f F A PerformanceofDemandPaging PageFaultRate0 p 1 0 缺页率0 p 1 0 ifp 0nopagefaults 如果p 0 没有缺页 ifp 1 everyreferenceisafault 每次访问都缺页 EffectiveAccessTime EAT 有效存取时间 EAT 1 p xmemoryaccess p pagefaultoverhead swappageout swappagein restartoverhead DemandPagingExample Memoryaccesstime 1microsecond 存取内存的时间 50 ofthetimethepagethatisbeingreplacedhasbeenmodifiedandthereforeneedstobeswappedout 50 的时间 所置换的页被修改 因此需要被换出 SwapPageTime 10msec 交换页的时间 EAT 1 p x1 p 10 1 9P inmsec Page ReplacementAlgorithms 在进程运行过程中 如果发生缺页 而内存中又无空闲块时 怎么办 将内存中的某一页换到磁盘的对换区将哪个页面调出 根据页面置换算法来确定置换算法的好坏将直接影响系统的性能 不适当的算法可能会导致进程发生 抖动 Thrashing 抖动 刚被换出的页很快又被访问 需重新调入 导致系统频繁地交换页面 以致大部分CPU时间花费在完成页面置换的工作上 PageReplacement Preventover allocationofmemorybymodifyingpage faultserviceroutinetoincludepagereplacement 通过修改缺页服务例程 来包含页置换 防止分配过多 Usemodify dirty bittoreduceoverheadofpagetransfers onlymodifiedpagesarewrittentodisk 修改 脏 位来防止页面转移过多 只有被修改的页面才写入磁盘 Pagereplacementcompletesseparationbetweenlogicalmemoryandphysicalmemory largevirtualmemorycanbeprovidedonasmallerphysicalmemory 页置换完善了逻辑内存和物理内存的划分 在一个较小的物理内存基础之上可以提供一个大的虚拟内存 Page ReplacementAlgorithms Wantlowestpage faultrate 需要一个最小的缺页率 Evaluatealgorithmbyrunningitonaparticularstringofmemoryreferences referencestring andcomputingthenumberofpagefaultsonthatstring 通过运行一个内存访问的特殊序列 访问序列 计算这个序列的缺页次数 Inallourexamples thereferencestringis 在所有的例子中 访问序列是 1 2 3 4 1 2 5 1 2 3 4 5 Page ReplacementAlgorithms 1 最佳算法 OPT optimal 2 最近最久未使用算法 LRU LeastRecentlyUsed 3 先进先出算法 FIFO Belady现象4 轮转算法 clock 最近未使用算法 NRU NotRecentlyUsed 5 最不常用算法 LFU LeastFrequentlyUsed First In First Out FIFO Algorithm Referencestring 1 2 3 4 1 2 5 1 2 3 4 53frames 3pagescanbeinmemoryatatimeperprocess 4framesFIFOReplacement Belady sAnomaly FIFO算法可能会产生Belady异常 moreframes lesspagefaults 页就是更多的页框相反会产生更多的缺页 1 2 3 1 2 3 4 1 2 5 3 4 9pagefaults 1 2 3 1 2 3 5 1 2 4 5 10pagefaults 4 4 3 First In First Out FIFO Algorithm First In First Out FIFO Algorithm FIFOIllustratingBelady sAnomaly OptimalAlgorithm Replacepagethatwillnotbeusedforlongestperiodoftime 被置换的页将是之后最长时间不被使用的页 4framesexample1 2 3 4 1 2 5 1 2 3 4 5Howdoyouknowthis 怎样知道的 Usedformeasuringhowwellyouralgorithmperforms 用来衡量你的算法的效率 1 2 3 4 6pagefaults 4 5 LeastRecentlyUsed LRU Algorithm Referencestring 1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 5 4 4 3 5 Pagefault 12Pagereplacement 9 Counterimplementation 计数器的实现 Everypageentryhasacounter everytimepageisreferencedthroughthisentry copytheclockintothecounter 每一个页表项有一个计数器 每次页通过这个表项被访问 把记录拷贝到计数器中 Whenapageneedstobechanged lookatthecounterstodeterminewhicharetochange 当一个页需要置换时 查看计数器来决定置换哪一个页 特点 每次内存访问时需增加一次写内存 写页表中某一页的时间域 页面替换时需检索页表以找到时间域最小的页面 LeastRecentlyUsed LRU Algorithm LRUAlgorithm Cont Stackimplementation keepastackofpagenumbersinadoublelinkform 栈实现 在一个双链表中保留一个记录页数目的栈 Pagereferenced 被访问的页 moveittothetop 移到栈顶 requires6pointerstobechanged 需要改变6个指针 Nosearchforreplacement 没有为置换进行查找 UseOfAStacktoRecordTheMostRecentPageReferences LRUApproximationAlgorithms Referencebit 访问位 Witheachpageassociateabit initially 0 每个页都与一个位相关联 初始值位0 Whenpageisreferencedbitsetto1 当页是访问页时设位1 Replacetheonewhichis0 ifoneexists Wedonotknowtheorder however 如果存在的话置换位为0的页 然而我们并不知道这个置换顺序 Secondchance 二次机会 Needreferencebit 需要访问位 Clockreplacement 时钟置换 Ifpagetobereplaced inclockorder hasreferencebit 1 Then 如果将要 以顺时针 交换的访问位是1 则 setreferencebit0 把访问位设位0 leavepageinmemory 把页留在内存中 replacenextpage inclockorder subjecttosamerules 以同样的规则 替换下一个页 Second Chance clock Page ReplacementAlgorithm EnhancedSecondchanceAlgorithm 不仅考虑页面的使用情况 还考虑置换代价选择淘汰页面时 既要是未被访问的 还要是未被修改的页面 实现 设置两位访问位 A 修改位 M 启动一个进程时 A M置0A被定期清零内存中的所有页面被分成为四类 第0类 无访问 无修改 A 0 M 0 第1类 无访问 有修改 A 0 M 1 第2类 有访问 无修改 A 1 M 0 第3类 有访问 有修改 A 1 M 1 CountingAlgorithms Keepacounterofthenumberofreferencesthathavebeenmadetoeachpage 用一个计数器记录对每一个页的访问次数 LFUAlgorithm replacespagewithsmallestcount 最少使用算法 置换计数器值最小的一个页 即访问次数最少的页 MFUAlgorithm basedontheargumentthatthepagewiththesmallestcountwasprobablyjustbroughtinandhasyettobeused 最常使用算法 认为 最小计数的页也许刚刚被换入和使用 所以置换计数器值最大的页 AllocationofFrames Eachprocessneedsminimumnumberofpages 每个进程所需要的最少的页的数目 保证进程正常运行所需的最小物理块数若系统为某进程所分配的物理块数少于此值时 进程将无法正常运行 频繁发生缺页 这个数目取决于指令的格式 功能和寻址方式 Example IBM370 6pagestohandleSSMOVEinstruction instructionis6bytes mightspan2pages 2pagestohandlefrom 2pagestohandleto Twomajorallocationschemes 两个主要的分配策略 fixedallocation 固定分配 priorityallocation 优先分配 FixedAllocation Equalallocation 平均分配 e g if100framesand5processes giveeach20pages 例 如果有100个页框 和5个进程 则每个进程分给20个页 Proportionalallocation 按比率分配 Allocateaccordingtothesizeofprocess 根据每个进程的大小来分配 PriorityAllocation Useaproportionalallocationschemeusingprioritiesratherthansize 根据优先级而不是大小来使用比率分配策略 IfprocessPigeneratesapagefault 如果进程Pi产生一个缺页 selectforreplacementoneofitsframes 选择替换其中的一个页框 selectforreplacementaframefromaprocesswithlowerprioritynumber 从一个较低优先级的进程中选择一个页面来替换 Globalvs LocalAllocation Globalreplacement 全局替换 processselectsareplacementframefromthesetofallframes oneprocesscantakeaframefromanother 进程在所有的页中选择一个替换页面 一个进程可以从另一个进程中获得页面 Localreplacement 局部替换 eachprocessselectsfromonlyitsownsetofallocatedframes 每个进程只从属于它自己的页中选择 相对而言 全局替换会带来较高的系统吞吐率 固定分配 局部置换策略 基于进程的类型 交互型或批处理型等 或根据程序员 系统管理员的建议 为每个进程分配固定数目的物理块 在整个运行期间都不再改变如果进程在运行中发生缺页 只能从该进程已在内存的页面中选一页换出 然后再调入另一页 保证分配给该进程的内存空间不变 可变分配 全局置换策略 系统为每个进程分配一定数目的物理块 OS本身也保持一个空闲物理块队列当某进程发生缺页时 系统从空闲物理块队列中 取出一物理块分配给该进程 并将欲调入的缺页装入其中 当空闲物理块队列中的物理块用完时 OS才从内存中选择一页调出 该页可能是任一进程的页 可变分配 局部置换 根据进程的类型或程序员的要求 为每个进程分配一定数目的内存空间 并且在进程运行期间可根据情况 缺页率 适当增加或减少所分配的物理块数当某进程发生缺页时 只允许从该进程已在内存的页面中选出一页换出 而不影响其它进程的运行 Thrashing Ifaprocessdoesnothave enough pages thepage faultrateisveryhigh Thisleadsto 如果一个进程没有足够的页 那么缺页率将很高 这将导致 lowCPUutilization CPU利用率低下 operatingsystemthinksthatitneedstoincreasethedegreeofmultiprogramming 操作系统认为需要增加多道程序设计的道数 anotherprocessaddedtothesystem 系统中将加入一个新的进程 Thrashing 颠簸 aprocessisbusyswappingpagesinandout 一个进程的页面经常换入换出 ThrashingDiagram ThrashingSolution Whydoespagingwork Localitymodel 局部模型 一个locality是一个进程目前的活跃页面的集合Locality取决于程序的结构和它的数据结构Processmigratesfromonelocalitytoanother 进程从一个位置移到另一个位置 Localitiesmayoverlap 位置可能重叠 Whydoesthrashingoccur 为什么颠簸会发生 sizeoflocality totalmemorysize给每个进程分配的最小物理块数不能少于locality的大小 这样 就可以使进程在把它的locality页全部装入内存之后 不再发生缺页 Workingset 工作集理论是在1968年由Denning提出来的 它正是基于局部的假设 Denning认为 程序在运行时对页面的访问是不均匀的 即往往在某段时间内的访问仅局限于较少的若干个页面 如果能够预知程序在某段时间内要访问哪些页面 并能将它们提前调入内存 将会大大地降低缺页率 从而减少置换工作 提高CPU的利用率 基本思想 根据程序的局部性原理 进程在一段时间内总是集中访问一些页面 活跃页面 如果分配给一个进程的物理块数太少了 使该进程的活跃页面不能全部装入内存 则进程在运行过程中将频繁发生缺页如果能为进程提供与活跃页面数相等的物理块数 则可减少缺页中断次数 Workingset 具体实现 OS跟踪每个进程的工作集 并为其分配大于其工作集的物理块数 如果还有空闲物理块 则可启动另外的进程 如果所有进程的工作集之和超过了可用物理块的总数 则OS会选择暂停一个进程 该进程被换出 所释放的物理块可分配给其他进程 Working SetModel working setwindow afixednumberofpagereferences工作集窗口 是指对于给定的访问序列选取定长的区间 落在工作集窗口中的页面集合称为工作集WSSi workingsetofProcessPi totalnumberofpagesreferencedinthemostrecent variesintime if toosmallwillnotencompassentirelocality if toolargewillencompassseverallocalities if willencompassentireprogram D WSSi totaldemandframesifD m ThrashingPolicyifD m thensuspendoneoftheprocesses Page FaultFrequencyScheme 颠簸具有较高的缺页率 所以通过控制缺页频率 可以有效地防止颠簸的发生 Establish acceptable page faultrate 设置可接受的缺页率 Ifactualratetoolow processlosesframe 如果缺页率太低 回收一些进程的页框 Ifactualratetoohigh processgainsframe 如果缺页率太高 就分给进程一些页框 OtherConsiderations Prepaging 预先调页 Pagesizeselection 页面尺寸选择 Fragmentation 碎片 页面大 则内碎片大tablesize 表大小 页面小 则页表占用的空间大I Ooverhead I O开销 磁盘I O时间中传输时间和数据量有关系 但它占的比例很小 而寻道时间和旋转延迟时间占了很大的比例 所以页面尺寸比较大会有利于减少磁盘I O时间 减少缺页率 要求页面尺寸大总的趋势 页面尺寸越来越大 这是由于CPU速度和内存容量的增长超过了磁盘速度的加快 OtherConsideration Cont Programstructure 程序结构 ArrayA 1024 1024 ofintegerEachrowisstoredinonepageOneframeProgram1forj 1to1024dofori 1to1024doA i j 0 1024x1024pagefaultsProgram2fori 1to1024doforj 1to1024doA i j 0 1024pagefaultsI Ointerlockandaddressing I O连接和地址 DemandSegmentation Usedwheninsufficienthardwaretoimplementdemandpaging 当请页的硬件不充足时使用 OS 2allocatesmemoryinsegments whichitkeepstrackofthroughsegmentdescriptors 操作系统以段来分配内存 它通过段描述符来进行跟踪 Segmentdescriptorcontainsavalidbittoindicatewhetherthesegmentiscurrentlyinmemory 段描述符有一个有效位来说明段是否以在内存 Ifsegmentisinmainmemory accesscontinues 如果段已在主存中 继续存取 Ifnotinmemory segmentfault 如果不在内存中 缺段中断 Solaris2的虚存管理 OS维持一个空闲物理块链表 最大值和最小值指明表中空闲块的上限和下限值内核以每秒4次的频率检查表中的空闲块数 如果低于下限值 启动pageout进程 相当于second chance算法 又叫two handed clock算法 Pageout 第一遍扫描内存中的所有页面 并置其访问位为0 稍后进行第二遍扫描 检查内存中的所有页面 如果某一页的访问位仍然为0 则把它加入空闲块链 Pageout如此循环执行 直到空闲块数达到最大值 如果不能达到最大值 则内核从内存换出进程 把该进程的所有物理块作为空闲块 WindowsNT的虚存管理 采用请求页面调度加上簇的策略在处理缺页中断时 不仅调入出错页 而且还调入其周围的页虚存管理程序维护一个空闲物理块链表 它有一个相关阈值当空闲物理块数低于其阈值 则采用自动工作集修整 以使该值在阈值以上自动工作集修整 计算分配给每个进程的物理块数 如果大于其最小工作集 则减少其物理块数直到最小工作集 一个进程创建时 会指定一个工作集的最大值和最小值如果一个发生缺页的进程现有物理块数低于其工作集最大值 则虚存管理程序为其分配一个空闲物理块 如果一个缺页进程现有物理块数已达到其工作集最大值 则采用局部置换策略 存储保护 存储保护的目的 保护系统程序区不被用户侵犯 有意或无意的 不允许用户程序读写不属于自己地址空间的数据 系统区地址空间 其他用户程序的地址空间 由于存储保护检查是针对每个存储访问操作进行的 必须由相应的处理器硬件机构支持 存储保护类型界限保护 上界寄存器 下界寄存器或基址寄存器 限长寄存器 所有访问地址必须在上下界之间 每个进程都有自己独立的进程空间 如果一个进程在运行时所产生的地址在其地址空间之外 则发生地址越界 当程序要访问某个内存单元时 由硬件检查是否允许 如果允许则执行 否则产生地址越界中断 由操作系统进行相应处理 存储保护 访问方式保护 保护键 通过保护键匹配来判断存储访问方式是否合法 对于允许多个进程共享的存储区域 每个进程都有自己的访问权限 如果一个进程对共享区域的访问违反了权限规定 则发生操作越权 即读写保护 对每个内存区域指定一个键值和若干禁止的访问方式 进程中也指定键值 如果访问时键值不匹配而且是被禁止的访问方式 则出错 存储保护 环保护 处理器状态分为多个环 ring 分别具有不同的存储访问特权级别 privilege 通常是级别高的在内环 编号小 如0环 级别最高 可访问同环或更低级别环的数据 可调用同环或更高级别环的服务 存储保护 对同环或更高级别环服务的调用 存储分配的安全性考虑 把一个页面分配给进程之前 先要清除页面中的数据 如全部填充为0 以免该进程读取前一进程遗留在页面中的数据 存储保护
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!