当前位置: 首页 > news >正文

考研408 | 【操作系统】 内存管理

内存的基础

内存和内存的作用:

 几个常用的数量单位:

指令的工作原理: 

 问题:如何将指令中的逻辑地址转换为物理地址?

 解决办法:装入的三种方式

1.绝对装入

2.可重定位装入 

3.动态重定位 

 

从写程序到程序运行

链接的三种方式:

总结: 

 内存管理的概念

内存管理:

 1.内存空间的分配与回收

2.内存空间的扩展 

3.地址转换 

4.内存保护 

总结: 

覆盖与交换 

 覆盖技术:

交换技术:

  

总结: 

连续分配管理方式 

单一连续分配:

固定分区分配: 

 

动态分区分配: 

 

 动态分区分配算法:

 

1.首次适应算法

2.最佳适应算法 

3.最坏适应算法 

 4.邻近适应算法

总结: 

 回收:

 

 

 

 总结:

基本的分页存储

分页存储:

重要的数据结构--页表

 问题1:每个页表项占多少字节?

 

 

问题2:如何实现地址的转换?

 

 

 

 

 

逻辑地址结构: 

总结: 

基本地址变化机构 

 

 

 

 题目:

 

页表项大小: 

总结: 

具有快表的地址变换机构 

 快表:

 

思考:能否把整个页表都放在TLB中?

答:不能,因为造价成本高

快表工作过程:

 

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

例题: 

快表和慢表同时查找: 

 局部性原理:

总结: 

两级页表 

 单级页表存在的问题:

 

解决单级页表的问题: 

两级页表的原理、地址结构: 

 

实现地址变换: 

 几个细节:

 

 总结:

基本分段存储管理

分段:

 

段表: 

地址变换: 

 

分段、分页管理的对比:

 

 

 

总结: 

段页式管理方式 

分页、分段的优缺点分析:

分段+分页=段页式管理:

段页式管理的逻辑地址结构: 

段表、页表: 

 段页式管理过程:

总结: 

 虚拟内存的基本概念

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

局部性原理:

虚拟内存的定义和特征: 

实现虚拟内存技术: 

总结: 

请求分页管理方式

页表机制: 

缺页中断机构: 

地址变换机构: 

请求分页管理由逻辑地址转换为物理地址过程: 

 

 总结:

 

页面置换算法

最佳置换算法(OPT): 

 

先进先出置换算法(FIFO): 

 

最近最久未使用置换算法(LRU): 

时钟置换算法(CLOCK): 

 

 

 

 

改进型的时钟置换算法: 

 

 总结:

 

页面分配策略

驻留集:

 页面分配、置换策略:

 

 

 

何时调入页面: 

从何处调入页面: 

1:

 

 2:

 

 

 

 3:

 

抖动(颠簸)现象: 

工作集:

总结: 

内存映射文件 

 

传统的文件访问方式:

内存映射文件(Memory-Mapped Files): 

 

 总结:

http://www.lryc.cn/news/140435.html

相关文章:

  • C# 工厂模式
  • 在云服务器上安装Jenkins
  • 一文了解SpringBoot中的IOC
  • docker-compose管理创建LNMP服务并运行Wordpress网站平台
  • 【宝藏系列】一文带你梳理 Linux 的五种 IO 模型
  • 【Python】模块、包
  • CMAKE_CUDA_ARCHITECTURES针对Jetson Xavier或者Orin的设置
  • sqlite3.OperationalError: unable to open database file解决方法
  • SSL核心概念 SSL类型级别
  • 器件介绍TMP1826NGRR、TMP1826DGKR、TMP1827NGRR、TMP1075NDRLR数字温度传感器
  • 抖店必须绑定抖音账号吗?聊6个抖店不为人知的小细节,别外传
  • 如何搭建智能家居系统并通过内网穿透实现远程控制家中设备
  • 【趣味随笔】手机参数你真的看懂了吗?
  • 微信小程序开发教学系列(4)- 数据绑定与事件处理
  • C++避坑——most vexing parse问题
  • 利用lammps模拟蓝宝石在水润滑环境下的抛光
  • 3.BGP状态机和路由注入方式
  • 微信开发之一键创建微信群聊的技术实现
  • 设计模式二十:观察者模式(Observer Pattern)
  • Linux操作系统--CentOS使用初体验
  • 搭建HAProxy + Keepalived高可用
  • 使用Python爬虫定制化开发自己需要的数据集
  • java八股文面试[java基础]——接口和抽象类的区别
  • head 请求了解过吗?如何用 get 模拟 head 请求?不需要服务器返回数据,怎么实现?
  • Redis笔记——(狂神说)待续
  • 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v7.0版已发布
  • BLFS学习系列 第26章. 显示管理器 —— 总述
  • macOS上编译obs-studio
  • Oracle数据库快速入门
  • Linux内核学习(十)—— 块 I/O 层(基于Linux 2.6内核)