Golang编程语言知识介绍


  • 首页

  • todo

  • 思考

  • life

  • food

  • OS

  • lua

  • redis

  • Golang

  • C

  • TCP/IP

  • ebpf

  • p4

  • OpenVPN

  • IPSec

  • L2TP

  • DNS

  • distributed

  • web

  • OpenWRT

  • 运维

  • Git

  • 鸟哥的私房菜

  • IT杂谈

  • 投资

  • About Me

  • 友情链接

  • FTP

  • 搜索
close

操作系统基础29-内存管理的概念

时间: 2021-08-24   |   分类: os   cs     |   阅读: 819 字 ~2分钟

操作系统基础29-内存管理的概念

2020-12-18 03:37·重学IT的老猫

操作系统作为系统资源的管理者,当然也需要对内存进行管理,要管些什么呢?

\1. 操作系统负责内存空间的分配与回收。

\2. 操作系统需要提供某种技术从逻辑.上对内存空间进行扩充。

\3. 操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换。

\4. 操作系统需要提供内存保护功能。保证各进程在各自存储空间内运行,互不干扰

内存空间的分配与回收

内存空间的分配与回收:由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储分配麻烦,提高编程效率。

操作系统基础29-内存管理的概念

内存空间的扩展

内存空间的扩充:利用虚拟存储技术或者自动覆盖技术,从逻辑上扩充内存。

游戏GTA的大小超过60GB,按理来说这个游戏程序运行之前需要把60GB数据全部放入内存。然而,实际我的电脑内存才4GB, 但为什么这个游戏可以顺利运行呢? 虚拟技术(操作系统的虚拟性)

地址转换

地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理器必须提供地址变换功能,把逻辑地址转换成相应的物理地址。

为了使编程更方便,程序员写程序时应该只需要关注指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位(三种装入方式)**)**应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。

操作系统基础29-内存管理的概念

内存保护

存储保护:保证各道作业在各自的存储空间内运行,互不干扰。

两种方式:

  1. CPU中设置一对上,下限寄存器,存放用户作业在主存中的下限和上限,每当CPU要访问一个地址时,分别和两个寄存器的值相比,判断有无越界。

操作系统基础29-内存管理的概念

  1. 通过采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器)来实现这种保护,重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址的最大值,每个逻辑地址值必须小于界地址寄存器,内存管理机构动态的将逻辑地址与界地址寄存器进行比较,如果未发生地址越界。则加上重定位寄存器的值后映射成物理地址,再送交内存单元。

操作系统基础29-内存管理的概念

#os# #cs#
操作系统基础30-内存交换
操作系统基础28-内存基础知识
shankusu2017@gmail.com

shankusu2017@gmail.com

日志
分类
标签
GitHub
© 2009 - 2025
粤ICP备2021068940号-1 粤公网安备44011302003059
0%