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

内存

  • 1. 指针与引用
  • 2. 进程的内存模型
  • 3. 幻象大师---操作系统
  • 4. 总结

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

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

1. 指针与引用

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

2. 进程的内存模型

  1. 我们知道不管是什么语言,最后操作系统看到的都是C程序,C程序在内存运行起来就是进程
  2. 下图是描述 32位操作系统下进程在内存中是什么样子
    计算机:理解操作系统:内存篇(下)_第1张图片
  3. 在上图汇总多出一块内存,这块内存就是操作系统在运行时候所占用的内存
  4. 每个进程独占一个连续的4G大小的内存,内存从地址0开始,一直到 0xffffffff ,其中最上方的1G留给操作系统使用,下方的3G留给进程自己使用,程序员可以操作的区域就是堆区和栈区。

    请思考下面两个问题
    为什么每个进程认为自己占用的是 4G内存了 ? 如果我的 计算机上只有2G内存,进程还会认为自己拥有4G内存吗?
    操作系统可以运行很多程序,但是内存是由限的,力图只有2G ,每个进程都认为自己拥有4G内存,这会不会有什么问题 ?
    要回答上面两个问题,下面就由我来带你了解下 操作系统 。

3. 幻象大师—操作系统

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

4. 总结

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

你可能感兴趣的:(计算机,操作系统,内存)