现代操作系统学习(3)——存储管理

本文探讨了操作系统中的存储管理,包括存储器抽象、地址空间、虚拟内存、分页系统、页面置换算法等关键概念。地址空间解决了保护和重定位问题,允许多程序并发执行。虚拟内存解决了内存不足的问题,而分页系统则通过页表和页面置换算法有效地管理内存。文中还提到了现代处理器如Intel Pentium的分段分页结合技术。
摘要由CSDN通过智能技术生成

上周学习的进程搞的我头皮发麻,太多概念了,这周的存储管理就相对轻松很多了
博客写到一半。。。我忘了保存了。。。只有刚开始写的一点点的初稿。很难受= =!

无存储器抽象

最简单的存储器抽象就是根本没有抽象,每一个程序都直接访问物理内存。
即使存储器模型就是物理内存,还是存在一些可行项的。图3-1展示了三种变体。
第一种是操作系统位于RAM底部,用在以前的大型机和小型计算机中,现在很少使用
第二种是操作系统位于内存顶端的ROM中,用于一些掌上电脑和嵌入式系统中
第三种是设备驱动程序位于顶端的ROM中,操作系统的其他部分在RAM底部,用于早期的个人计算机。
第一种和第三种的缺点是用户程序出现的错误可能摧毁整个系统。这三种通常情况下,同一时刻只能运行一个程序。
这里写图片描述
不使用抽象的情况下运行多道程序
IBM360的解决方案是内存被划分为2KB的块,每个块被分配一个四位的保护键。这种的缺陷是使用绝对地址寻址,会产生覆盖
这里写图片描述

存储器抽象:地址空间

把物理内存直接暴露给程序会带来以下两个问题:第一,如果用户程序可以寻址内存的每个字节。它们就可以很容易地破坏操作系统,即使只有一个用户进程运行的情况下,这个问题也是存在的。第二,如果使用这种模型,想同时运行多个程序是很困难的。
地址空间的概念
要保证多个应用程序在内存中并且不相互影响,需要解决两个问题:保护和重定位。一个解决方案是创造一个新的内存抽象——地址空间。就像进程的概念创造了一类抽象的CPU以运行程序一样,地址空间为内存创造了一种抽象的内存。地址空间是一个进程可用于寻址内存的一套地址集合。每个进程都有一个自己的地址空间,并且这个地址空间独立于其他程序的地址空间(除了在一些特殊情况下内存需要共享他们的地址空间外)
比较难的是给每个程序一个地址空间,使得一个程序的地址28所对应的物理地址和另一个程序中地址28对应的物理地址不同,下面是一个简单的解决方案。
基址寄存器和界限寄存器
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
交换技术
内存并不足以将所有的程序都置入内存,有两种处理内存超载的通用方法,最简单的策略是交换(swapping)技术,即把一个进程完整调入内存,使该程序运行一段时间再把它存回磁盘。
这里写图片描述
这里写图片描述
这里写图片描述
空闲内存管理
有两种方式跟踪内存的使用情况:位图和空闲链表
使用位图的存储管理
这里写图片描述
这里写图片描述
使用链表的存储管理
使用链表时有几种为进程分配内存的算法,还是挺重要的
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

虚拟内存

尽管基址寄存器和界限寄存器可以用于创建地址空间的抽象,但还是有另一个问题需要解决——管理软件的膨胀。
也就是需要运行的程序往往大到内存无法容纳,而且必然要支持多个程序同时运行,即使内存可以支持单独一个程序的需求,但是从总体来看,它们仍然超出了内存大小,如果采用交换技术,一个典型的SATA磁盘的峰值传输率最高达到100M/S,这意味着需要10S才能换出一个1GB的程序以及再花10S把它放进去。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值