关于进程的内存管理的问题

时间:2015-12-20 15:24:49

标签: memory-management process operating-system kernel userspace

我对操作系统的问题很少。我谷歌很多,但无法找到任何答案。任何人都可以帮助我。

Q1。内核为用户程序提供了多少内存,是否有任何限制?

Q2。用户程序的最大地址范围是多少,是什么决定了它?

Q3。如果将多余的内存分配给用户程序,比如无限循环中的malloc,会发生什么?

1 个答案:

答案 0 :(得分:1)

  

Q1。内核为用户程序提供了多少内存,是否有任何限制?

Varies。在现代系统中,这受到过程配额,系统参数和页面文件大小的限制(如果到达那里,最终会受到硬件的虚拟地址空间大小的限制)。

  

Q2。用户程序的最大地址范围是多少,是什么决定了它?

而异。这由硬件和操作系统的页表配置决定。某些CPU类型在总虚拟地址空间内分配固定范围的用户地址。其他人具有单一范围的逻辑地址,并允许操作系统将其划分为用户和系统地址。后者更灵活。前者允许页面表的分页。

  

Q3。如果将多余的内存分配给用户程序,比如无限循环中的malloc,会发生什么?

分配请求将失败。在malloc的情况下,您将获得返回的空指针。在系统服务级别,您将收到失败代码。