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

物理内存足够小,且都被内核使用,当用户态程序需要换入的时候,怎么办?

    来源: 互联网  发布时间:2017-04-30

    本文导语:  物理内存足够小,且都被内核态使用,当用户态需要换入的时候,怎么办? 这时在调用do_pages_fault的时候会发生什么? | 当没有物理内存的时候,必须要杀死,不能让其睡眠。 原因很简单,如果我写了...

物理内存足够小,且都被内核态使用,当用户态需要换入的时候,怎么办?
这时在调用do_pages_fault的时候会发生什么?

|
当没有物理内存的时候,必须要杀死,不能让其睡眠。

原因很简单,如果我写了个程序,把所有内存都耗尽了,当其他任务需要内存的时候,让我们都睡眠,显然是不公平的。

这种情况下使得对服务器的攻击易如反掌,拼命申请内存就能使其他用户的其他任务无法工作。

所以,无内存必杀,没有悬念的。

但是怎么杀,就是一个问题了,理论上来说,应该按照用户权限和内存消耗量综合考虑。

如果要杀普通用户的进程,理论上内核是不需要重启的。(我不确定内核是否有相关配置参数,关于杀进程策略)

|
如果这样的系统真的启动起来,并运行了用户进程,并且需要换入了,就会杀掉用户进程,如果没有用户进程,那么就没有需要换入的了。

|
如果内核真的用完了内存,这个时候内核还在运行,那么用户层将无内存可用。因为内核的页是不会交换出去的。那么内存缺页后拿不到页面。

|
可以说内核态的权限高于用户态的!
不足的时候,先满足内核态,再考虑用户态的!所以如果只有够内核态的话,就不会考虑用户态

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • 哪位前辈给解释下linux下虚拟内存和物理内存的关系!
  • [跪求解答]关于虚拟内存中页目录与页表在物理内存中加载的问题
  • 【操作系统虚拟内存和物理内存疑惑】
  • Solaris下如何获得物理内存和虚拟内存的大小?
  • 虚拟内存容量小于物理内存容量时,系统性能还能得到改善吗?
  • 32位地址空间指的是虚拟内存的寻址范围,但是为什么要求物理内存大小不能大于4G?
  • 用top命令查看一个进程,虚拟内存一直不变,但物理内存每时5s增长12k或20k.
  • solaris 8 下有没有返回系统总物理内存和当前所使用内存大小的函数。(不是top,vmstat命令)
  • linux用户态内存的物理地址问题?
  • 怎样在Linux下读取物理内存
  • 求助!怎样实现一个程序长期固定的在一块物理内存
  • 请教:IBM AIX 4.3下面如何获得系统当前的物理内存占用率啊?
  • 用什么命令可以得到HP-UX的实际物理总内存?急急啊 !
  • 内存的物理地址最低总是从0开始的吗?
  • Linux内存映射 物理地址映射到虚拟地址
  • 如何不写驱动通过应用程序获得一块内存并取得它的物理地址?
  • 请问:Linux的物理内存怎样看?
  • 请问怎么看LINUX的物理内存有多少?
  • hp-unix 如何查看机器有多少物理内存
  • 大容量硬盘分区表的起始物理地址与结束物理地址的疑问?
  • 怎样访问物理地址空间?????????
  • 开源物理项目 OSP
  • 在驱动里面,如何读取物理地址为0xFFFFFFF0 的内容
  • 高手请进:32位虚拟地址经过页机制转换以后得到的物理地址是32位吗?那物理内存又是怎样编址的呢?
  • 怎么在linux下改变网卡物理IP
  • 虚拟地址→物理地址变换问题
  • 虚拟机上apache不能被物理机访问???
  • 在uCLinux下可以访问实际的物理地址吗?
  • 开源物理引擎 ODE
  • 谁搞得灵清虚拟地址与物理地址!帮帮忙啦


  • 站内导航:


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

    ©2012-2021,