我几乎没有操作系统的问题。我谷歌了很多,但无法找到任何答案。谁能帮帮我吗。
Q1。内核为用户程序提供了多少内存,有什么限制吗?
Q2。用户程序最多可以拥有的地址范围是多少,是什么决定的?
Q3。如果将多余的内存分配给用户程序会发生什么,比如说 malloc 在无限循环中?
我几乎没有操作系统的问题。我谷歌了很多,但无法找到任何答案。谁能帮帮我吗。
Q1。内核为用户程序提供了多少内存,有什么限制吗?
Q2。用户程序最多可以拥有的地址范围是多少,是什么决定的?
Q3。如果将多余的内存分配给用户程序会发生什么,比如说 malloc 在无限循环中?
Q1。内核为用户程序提供了多少内存,有什么限制吗?
变化。在现代系统中,这受到进程配额、系统参数和页面文件大小(如果到达那里,最终还有硬件的虚拟地址空间大小)的限制。
Q2。用户程序最多可以拥有的地址范围是多少,是什么决定的?
变化。这是由硬件和操作系统的页表配置决定的。某些 CPU 类型在总虚拟地址空间内分配固定范围的用户地址。其他的则具有单一范围的逻辑地址,并允许操作系统将其划分为用户地址和系统地址。后者更灵活。前者允许对页表进行分页。
Q3。如果将多余的内存分配给用户程序会发生什么,比如说 malloc 在无限循环中?
分配请求将失败。在 malloc 的情况下,您会得到一个返回的空指针。在系统服务级别,你会得到一个失败代码。