当前位置:  技术问答>linux和unix

求内存管理的问题!

    来源: 互联网  发布时间:2016-07-30

    本文导语:  小弟刚学内核 有个内存管理的问题不懂。。 cpu可以寻址的是4G的地址空间,应该是OS为每个进程分配的 怎么我看书说的是为每个进程64M的空间,总共最多64个进程存在,加起来就64*64=4G,这个4G是给内核寻址的?这...

小弟刚学内核

有个内存管理的问题不懂。。

cpu可以寻址的是4G的地址空间,应该是OS为每个进程分配的

怎么我看书说的是为每个进程64M的空间,总共最多64个进程存在,加起来就64*64=4G,这个4G是给内核寻址的?这样的话就64个进程都可以寻得到?可以互相读写?

这就不懂了,怎么是这样的4G内存,那是0.11内核

|
关于地址的问题,楼主可以看看《See MIPS RUN 2.8地址空间》,还有就是google一下“程序地址 线性地址 物理地址”,应该有说明的帮助。但是具体使用上,就看看Linux中的I2S CODEC驱动部分,也可以搜索一下。那里面的环形音频队列结构里就包含了一个程序地址和一个DMA读数用的内存地址。

    早期linux确实规定最多64个进程,平均每个64M的说法,应该与当时硬件条件和编程便利有关。但是这不是问题的核心。举例来讲,程序地址就是你malloc之类产生的地址,它们大多得数为 0xA0000000~0xC0000000,但是我们没有这么大的memory,将高三位清0,即得到内存地址。程序内存就是在程序中参与地址运算的所有地址,这些地址取值范围4G,但是具体到程序运行时这个地址到底在内存中那个地方就需要转换了。

    linux系统我只是看MIPS的应用,在这里面4G空间就是已经分配各自任务,这与windows确实不同。windows给每个进程分配4G的基础在于它的分block和page转换处理,这个地址必须经过运算转换为线性地址,再映射到具体内存。而Linux其实假定了程序和数据最大容量小于4G,顶大个的东西都放得下,所以它认定程序地址和线性地址是相同的,连虚假的块转换都没有。

|


对!0.11内核前年我比较仔细的读过,你说的没错。

    
 
 

您可能感兴趣的文章:

  • c/c++服务器程序内存泄露问题分析及解决
  • 一个问题,关于kmalloc分配的内存和编译器自动分配的内存的问题(堆和栈)
  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • [跪求解答]关于虚拟内存中页目录与页表在物理内存中加载的问题
  • 遇到奇怪的内存泄露问题,应用程序杀死内存无法释放!
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • 【求助】AIX下进程内存分配问题,无法分配超过256M的内存
  • Solaris上内存释放问题
  • vsftpd占用内存的问题
  • linux虚拟内存的问题!急!!!
  • 请教几个虚拟内存的问题!谢谢
  • 有关系统内存的概念问题
  • 共享内存问题,高手们请进!!!
  • ubuntu的问题。查看内存使用情况的问题
  • dos内存问题,请帮助
  • 问个LINUX内存分配的问题。
  • 关于虚拟内存的一点概念问题
  • 请教一个内存方面的问题
  • 有关高端内存的问题
  • 一个关于内存的问题
  • 初学者关于共享内存的几个问题-->
  • linux下的内存管理方式
  • 有谁比较过glib和嵌入式系统的内存管理?哪个效率好?
  • linux内核分配内存,及管理?
  • linux内存管理虚拟地址 逻辑地址 交换分区(swp)
  • Objective-C 内存管理 MAZeroingWeakRef
  • linux,windows内存管理
  • linux 内存管理初级问题
  • 这里有人研究了Linux内存管理的slab层吗?
  • 页内存管理的缺点
  • 内存分配管理 jemalloc
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 get_allocator():返回vector的内存分配器
  • 我的机器内存128 ,安装redhat9 后,可用内存很少了,如何节省内存呢?
  • C++ Vectors 成员 capacity():返回vector所能容纳的元素数量(在不重新分配内存的情况下)
  • 奇闻:Apache+Apache JServ 1.1.1+1G内存居然报内存不够,那位高友知道参数设置,把俺的1G内存都利用起来,感激不尽啊
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 怎样读取指定内存地址处指定长度的内存数据???(
  • C/C++内存池实现介绍及基本要求
  • 【操作系统虚拟内存和物理内存疑惑】
  • linux下free命令显示的内存使用情况分析
  • Solaris下如何获得物理内存和虚拟内存的大小?
  • c/c++内存堆分配和栈分配理解
  • 程序需要共享内存相当大,但是系统的内存有限
  • Ubuntu查看内存,进程相关命令介绍
  • 关于大于2G内存的使用.....按32位编译的进程怎么使用大于2G的内存?
  • Linux 共享内存介绍及实现代码
  • redhat9内存使用率高达73%,怎么查看内存具体使用情况
  • Linux内存文件系统(ramdisk)的三种实现方式
  • 多个进程对系统V共享内存进行读写,怎样实现对共享内存部分进行加解锁?
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • redhat7.1 p4,700多m内存,经常耗了400m内存,为什么?
  • Microsoft Internet Explorer内存破坏漏洞(CNVD-2013-13096)
  • 哪位前辈给解释下linux下虚拟内存和物理内存的关系!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3