清华操作系统课程(向勇、陈渝)笔记——第四章(一)(非连续内存分配,分段)

非连续内存分配

1. 概述

连续内存分配的缺点

  • 有外碎片、内碎片的问题
  • 内存利用率较低
  • 分配给一个程序的物理内存是连续的

非连续分配的优点

  • 一个程序的物理地址空间是非连续的
  • 更好的内存利用和管理
  • 允许共享代码与数据
  • 支持动态加载和动态链接

非连续分配的缺点

  • 如何建立虚拟地址和物理地址之间的映射

    包括软件方案和硬件方案:软件方案的开销很大;硬件方案包括分段和分页。

2. 分段Segmentation

更好地分离和共享。

逻辑地址空间是连续的,物理地址是非连续的。

分段寻址方案:用软件实现开销大,考虑如何用硬件实现。

2. 1 段访问机制

一个段指一个内存块,是一个逻辑地址空间。

程序根据段访问机制访问内存地址需要一个二维的二元组(s为段号,addr为段内偏移)

  • 段寄存器+地址寄存器实现方案
  • 单地址实现方案

2. 2 段访问机制的硬件实现方案

左上角是一个可执行程序。

通过CPU来执行每条指令,CPU需要进行寻址。

2. 2. 1段号
  • 通过逻辑地址的段号找到对应的物理地址的段(包括段起始地址base和段大小limit)
  • 如何找:通过硬件实现,查找segment table,逻辑地址的段号为segment table的index。
  • segment table由操作系统设置。
2. 2. 2 偏移量
  • CPU检查偏移地址是否小于等于limit值,若是,则是合法的寻址;若不是,则是非法访问,发生内存异常
  • 偏移量加上base值等于逻辑地址所对应的物理地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值