目前我正在阅读有关操作系统设计的书籍。但是,当内存中的空闲页数小于进程的工作集时,我并不十分清楚操作系统的行为方式。
从操作系统方面,它可能会阻止进程加载到内存中吗?
从开发者方面来看,他们可以做些什么来改善这种情况?
答案 0 :(得分:0)
我怀疑你的混淆与术语"工作集的含义有关。"该术语在理论计算机科学和操作系统实现中具有不同的含义。
在前者中,工作集是一个进程在给定时间内所需的内存量。
在后面,工作集是进程在给定时间内具有的物理内存量。 (某些系统可能使用不同的定义)。
进程获取操作系统提供的内容。操作系统只能提供可用的功能。如果一个进程需要更多的物理内存,那么操作系统要么提供它所拥有的内容,要么提供另一个进程。
当进程启动时,其工作集将为零(或接近零)。进程只在导致页面错误时获取物理内存。如果监视程序,程序启动时通常会看到很多页面错误,然后数字开始趋于平稳(除非程序使用相对于系统物理内存的大量虚拟内存)。