操作系统--4内存管理

一、概述

外存中的数据需要先通过I/O设备读取到内存,然后才能由CPU访问使用。内存在系统断电后数据丢失。

内存管理的目的有两个:为用户使用存储器提供方便;充分发挥内存的利用率

功能:

内存的分配与回收:内存管理记录每个内存单元的使用状态,为运行进程的程序段和数据段等需求分配内存空间,并在不需要时回收它们。

地址转换:逻辑地址转换成实际物理内存地址,也称为地址重定位。当程序装入物理内存执行时,如果程序中编译时生成的地址(逻辑地址)与其装入内存的实际地址(物理地址)不一致,必须进行地址转换。由专门的硬件--内存管理单元(MMU)来完成这一功能。

内存扩充:通常采用的手段包括虚拟存储、覆盖和交换等技术。

内存的共享与保护:当多通道程序共享内存空间时,需要对该空间中的信息进行保护,以保证信息的一致性。(权限)

2、内存分配的方式

静态分配和动态分配

1)静态分配

操作系统在装载用户程序时,一次性地为其分配所需的内存空间。如果没有足够的内存空间,则不能装入该程序。

2)动态分配

操作系统在装载用户程序时,只为其分配必需的基本内存空间,而在程序运行的过程中,允许其申请分配新的内存空间,或加载相关的代码和数据。

动态内存分配方式支持动态数据结构与动态程序结构(如递归数据、递归程序),不必让整个进程占据一个连续的存储区域,也不必一次全部装入内存。现代操作系统通常采用这种内存分配方式。

3、重定位

1)逻辑地址空间

程序员建立的符号名的集合叫做”名字空间“,编译后得到的目标程序是以0作为参考地址的模块。多个目标模块由连接程序连接程序连接成一个具有统一地址的装配模块,以便最后装入内存中执行。

目标模块中的地址称为逻辑地址(或相对地址)以0起始的相对地址,而把逻辑地址的集合叫做”逻辑地址空间“或简单的叫做”地址空间“。

2)物理内存空间

内存中一系列物理单元的集合,又称物理空间或内存空间。这些单元的编号,称物理地址或绝对地址。物理地址从地址0开始统一编号的,因此物理内存是一维的线性空间。

3)重定位时机

(a)程序编译连接时

编译时就可以知道程序运行时将处于内存什么位置,就可以产生绝对地址。

(b)程序装入内存时

编译时不知道进程将处于内存什么位置,编译时必须产生可重定位代码。在这种情况下,最终的地址重定位推后到程序装入内存时。

(c)程序执行时

编译和程序装入时都不进行地址重定位,而将其推后到CPU执行程序时,在程序执行期间就可以把它各个段的内容在内存中灵活地放置或移动。当CPU用到一个逻辑地址时,需要快速地将其转换为对应的物理地址,因此需要特殊的硬件支持(如i386的MMU)。大多数操作系统采用这种方法

4重定位方式

1)静态重定位:程序编译连接和程序装入内存时的重定位

优点:无须增加专门的硬件地址转换机构,便于实现程序的静态连接。缺点:1程序的内存空间只能是连续的一片区域,而且在重定位之后就不能移动,不利于内存空间的有效使用;2各个用户进程很难共享内存中同一程序的副本。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值