计算机:理解操作系统:内存篇(下)

文章探讨了指针与引用在C++中的区别,以及不同编程语言如Java和Python的内存模型。介绍了进程的内存结构,特别是在32位系统下的布局,并阐述了操作系统如何通过虚拟内存为每个进程制造4G内存的幻象,使得进程不受物理内存限制。学习虚拟内存是理解操作系统的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本篇是 关于计算机内存最后一篇文章
什么是内存
C/C++内存模型
堆区与栈区的本质
Java、Python等内存模型
Java内存模型
Jave中的堆区与栈区是如何实现的
Python内存模型

指针与引用
进程的内存模型
幻想大师-操作系统
总结

1. 指针与引用

  1. 在各种编程语言中我们经常听到两个词:指针或者引用,这两个词都是好内存相关的,指针和引用的作用都是“如何找到存放在内存上的数据”
  2. C++中有指针和引用的概念,Java、Python 只有引用的概念(指针强调位置,引用强调强调别名)
    由于Java/Pyhton 是通过解释器来查找对象的,也只有解释器知道这个对象在内存中的具体位置。C++是没有解释器的,所以需要指针来查找位置。

2. 进程的内存模型

  1. 我们知道不管是什么语言,最后操作系统看到的都是C程序,C程序在内存运行起来就是进程
  2. 下图是描述 32位操作系统下进程在内存中是什么样子
    在这里插入图片描述
  3. 在上图汇总多出一块内存,这块内存就是操作系统在运行时候所占用的内存
  4. 每个进程独占一个连续的4G大小的内存,内存从地址0开始,一直到 0xffffffff ,其中最上方的1G留给操作系统使用,下方的3G留给进程自己使用,程序员可以操作的区域就是堆区和栈区。
    🚘🚘🚘🚘🚘
    请思考下面两个问题
    🚀 为什么每个进程认为自己占用的是 4G内存了 ? 如果我的 计算机上只有2G内存,进程还会认为自己拥有4G内存吗?
    🚀 操作系统可以运行很多程序,但是内存是由限的,力图只有2G ,每个进程都认为自己拥有4G内存,这会不会有什么问题 ?
    要回答上面两个问题,下面就由我来带你了解下 操作系统 。

3. 幻象大师—操作系统

  1. 其实进程看到的内存是 操作系统制造的幻觉,操作系统让每个进程都认为内存只有两部分,一部分是操作系统的,一部分是自己的,这个就是 ------虚拟内存。
  2. 在虚拟内存上程序员分配内存不受真实物理内存限制。

4. 总结

要想学号操作系统,学号虚拟内存是必不可少的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值