欢迎访问大师范文AI写作助手,如没有想要的内容请与本站万能的AI助手联系。

操作系统内存管理知识

天下 分享 时间: 加入收藏 我要投稿 点赞

什么是内存管理?总的来说系统内存管理包括物理内存管理虚拟内存管理。这里给大家分享一些关于操作系统内存管理知识希望对大家能有所帮助

物理内存管理概述:

操作系统负责内存空间分配回收

内存空间的扩展:操作系统需要提供某种技术逻辑上对内存空间进行扩充

操作系统需要提供地址转换功能,负责程序逻辑地址物理地 址的转换

操作系统需要提供内存保护功能保证各进程在各自存储空间运行,互不干扰

内存空间的扩展:

覆盖技术:将程序分为多个段(多个模块)。 常用的段常驻内存,不常用的段在需要时调入内存。内存中分为一个“固定区”和若干个“覆盖区”。 需要常驻内存的段放在“固定区”中,调入后就不再 调出(除非运行结束) 不常用的段放在“覆盖区”,需要用到时调入内存, 用不到时调出内存。

交换技术:交换(对换)技术设计思想:内存空间紧张时,系统将内存中某些进程暂时换出外存,把外存中 某些已具备运行条件的进程换入内存(进程在内存与磁盘间动态调度)

操作系统内存管理知识希望对大家能有所帮助

非连续分配管理方式

连续分配:为用户进程分配的必须是一个连续的内存空间

非连续分配:为用户进程分配的可以是一些分散的内存空间

什么是分页存储:

将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个“页框”(页框=页帧=内存块=物理 块=物理页面)。每个页框有一个编号,即“页框号”(页框 号=页帧号=内存块号=物理块号=物理页号),页框号从0开始。

将进程的逻辑地址空间也分为与页框大小相等的一个个部分, 每个部分称为一个“页”或“页面” 。每个页面也有一个编号, 即“页号”,页号也是从0开始。

操作系统以页框为单位各个进程分配内存空间。进程的每个页面分别放入一个页框中。也就是说,进程的页面与内存的页 框有一一对应关系各个页面不必连续存放,可以放到不相邻的各个页框中。

(注:进程的最后一个页面可能没有一个页框那么大。也就是 说,分页存储有可能产生内部碎片,因此页框不能太大,否则 可能产生过大的内部碎片造成浪费)

具有快表的地址变换机 构:

快表,又称联想寄存器(TLB, translation lookaside buffer ),是一种访问速度比内存快很多的高速缓存(TLB不是内存!),用来存放最近访问的页表项的副本,可以加速地址变换的速度。 与此对应,内存中的页表常称为慢表。

引入快表后,地址的变换过程

① CPU给出逻辑地址,由某个硬件算得页号、页内偏移量,将页号与快表中的所有页号进行比较。

② 如果找到匹配的页号,说明访问的页表项在快表中有副本,则直接从中取出该页对应的内存块 号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问物理地址对应的内存单元。因此, 若快表命中,则访问某个逻辑地址仅需一次访存即可。

③ 如果没有找到匹配的页号,则需要访问内存中的页表,找到对应页表项,得到页面存放的内存块 号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问物理地址对应的内存单元。因此, 若快表未命中,则访问某个逻辑地址需要两次访存(注意:在找到页表项后,应同时将其存入快表, 以便后面可能的再次访问。但若快表已满,则必须按照一定的算法对旧的页表项进行替换)

局部性原理:

时间局部性:如果执行程序中的某条指令,那么不久后这条指令很 有可能再次执行;如果某个数据访问过,不久之后该数据很可能再 次被访问。(因为程序中存在大量的循环)

空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的 存储单元也很有可能被访问。(因为很多数据在内存中都是连续存放 的)

分段存储管理方式:

进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言 中,程序使用段名来编程),每段从0开始编址 内存分配规则:以段为单位进行分配,每个段在内存中占据连续空间,但各段之间可以不相邻。

分段、分页管理对比

页是信息物理单位。分页的主要目的是为了实现离散分配提高内存利用率。分页仅仅是系统管 理上的需要,完全是系统行为,对用户是不可见的。

段是信息逻辑单位。分段的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的,用户编程时需要显式地给出段名。

页的大小固定且由系统决定。段的长度却不固定决定用户编写的程序

分页的用户进程地址空间是一维的,程序员只需给出一个记忆符即可表示一个地址

分段的用户进程地址空间是二维的,程序员在标识一个地址时,既要给出段名,也要给出段内地址

分段比分页更容易实现信息的共享和保护。不能被修改的代码称为纯代码或可重入代码(不属于临 界资源),这样的代码是可以共享的。可修改的代码是不能共享的。

虚拟内存管理

传统存储管理方式的特征、缺点

一次性:作业必须一次性全部装入内存后才能开始运行。这会造成两个问题:

作业很大时,不能全 部装入内存,导致作业无法运行;

②当大量作业要求运行时,由于内存无法容纳所有作业,因此只 有少量作业运行导致多道程序并发度下降。

驻留性:一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束。事实上,在一个时间段 内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的 数据浪费了宝贵的内存资源

虚拟内存的定义和特征:

基于局部性原理,在程序装入时,可以将程序中很快 会用到的部分装入内存,暂时用不到的部分留在外存, 就可以让程序开始执行

程序执行过程中,当所访问信息不在内存时,由 操作系统负责将所需信息从外存调入内存,然后继续 执行程序

若内存空间不够,由操作系统负责将内存中暂时用不 到的信息换出到外存。

操作系统管理下,在用户看来似乎有一个比实际 内存大得多的内存,这就是虚拟内存

虚拟内存有三个主要特征:

多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。

对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换 入、换出。

虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。


操作系统内存管理知识相关文章

★ 全国统考计算机真题及答案解答

★ c语言学习心得

电脑学习

★ 如何合理设置电脑虚拟内存,提高电脑运行速度

★ BIOS常见字母对照表附带解释

★ 关于毕业软件专业实习报告范文大全

★ 2020疫情期间行业总结范文五篇

★ linux实习心得范文

★ 最新计算机实训心得体会5篇

★ 关于最新计算机电脑维修专业实习报告总结{范文}

精选图文

221381
领取福利

微信扫码领取福利

操作系统内存管理知识

微信扫码分享