我在"Understanding the linux kernel“中读到,当在用户空间调用malloc时,内核只在vm_area_t结构中添加一个线性区域,而不是在内存中分配空间,这被称为ostponing分配,并且在线性区域中分配的空间只能在页面中断发生时使用。但是,如果在页面中断期间没有页面可以被分配,那么当用户调用malloc时,不是被欺骗了吗?
我在尝试在Linux上加载更多out of memory (OOM)时遇到了32bit binaries and 32 bit Perl的2-3GB of data into memory问题。
一直想知道为什么OS with Demand Paging功能不能将常驻页面换出到磁盘并加载更多页面以超过4 4GB的限制?
可能会有频繁的页面错误发生(影响性能),但永远不应该遇到OOM问题?