OS学习笔记-5(清华大学慕课)计算机体系结构与内存层次

计算机体系结构与内存层次

  • 内存最小的访问单位是1B=8bit,每个字节都有自己的物理地址
  • 总线一般是一次读取4B=32bit
  • cpu里面有高速缓存cache和寄存器作为存储帮手
  • 访问速度最快的是几纳秒,最慢的几毫秒,相差百万级
  • 进程会共享所需要的内核资源
  • 进程和内核的逻辑地址会经过中间的存储管理单元转换成物理地址,实现抽象、保护、共享、虚拟化
  • 操作系统内核放在内存的前面一部分,进程有一部分放在内存里面,有一部分放在外存里面,如图
  • 进程的逻辑地址空间可能会大于物理内存总量
    在这里插入图片描述在这里插入图片描述

操作系统采用的内存管理方式

  • 重定位:段地址+偏移
  • 分段:分成代码、数据、堆栈
  • 分页:把内存分成最基本的单位
  • 虚拟存储:把数据存到硬盘上,使得逻辑地址空间大于物理内存空间

逻辑地址生成

  • 静态重定位是指装入时把逻辑地址转换成物理地址,装入后不变
  • 动态重定位指装入后地址在执行中,模块地址会改变
  • 编译:生成若干模块
  • 链接:将模块和库函数链接到一起,形成一个完整的装入模块,此时生成逻辑地址
  • 运行:将完整的模块装入内存

在这里插入图片描述

  • 编译和链接后每个目标模块都以0号单元开始编址,不同进程有相同的逻辑地址

在这里插入图片描述

  • MMU地址转换模块

在这里插入图片描述

连续内存分配

  • 连续内存分配有两种实现方式:固定分区分配,动态分区分配
  • 进程内部无法利用的碎片叫内碎片,分配单元之间无法利用的碎片叫外碎片

在这里插入图片描述

  • 动态分配下,进程大小可变,由操作系统确定那些是可用的那些是不可用的区域
  • 分配策略有三个:First-fit,Best-fit,Worst-fit
  • First-fit:找到第一个合适的分区就装进去,简单,但有外碎片,高地址有大块内存空间,但大块内存空间分配就要找比较久,较慢
  • Best-fit:找到比它大,而且大得最小的分区,相对简单,大的分区不会被拆开,但还是有外碎片,释放分区较慢
  • Worst-fit:找到比它大,而且大得最多的分区,不喜欢,不记

在这里插入图片描述

碎片整理

  • 将进程间的外碎片整理起来
  • 只有可动态重定位的程序可以移动整理
  • 一般在进程等待状态下时移动
  • 小个的外碎片会选择跳过,避免开销

在这里插入图片描述

分区兑换

  • 内存不够用时,会把等待状态的进程先放到外存

在这里插入图片描述

伙伴系统

  • 不断将分区分成两个小的部分,直到装不下进程的前一次大小,最多空2^i-1内碎片
  • 外碎片合并时如果不能合成空间大小2的整数幂,将不合并
  • 目前unix和linux都有对伙伴系统的相关实现

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

发布了43 篇原创文章 · 获赞 3 · 访问量 3377

猜你喜欢

转载自blog.csdn.net/a1920993165/article/details/99572374
今日推荐