调页空间编程要求
应用程序所需的调页空间量与该系统上所执行的活动类型有关。 如果调页空间减小,进程可能会丢失。
如果调页空间用尽,系统可能会崩溃。 检测到低调页空间的条件时,应该定义补充调页空间。
系统监视空闲调页空间块的数量,并检测何时出现调页空间不足。 vmstat 命令获取与此条件相关的统计信息。 当空闲调页块的数量低于某个阈值(即调页空间警告级)时,系统通过发送 SIGDANGER 信号来通知所有进程(除了 kprocs)此情况。
注: 如果缺货情况继续存在,并且低于称为调页空间终止级别的第二个阈值,那么系统会将 SIGKILL 信号发送到作为调页空间的主要用户且没有用于 SIGDANGER 信号的信号处理程序的进程。 ( SIGDANGER 信号的缺省操作是忽略该信号)。 系统继续发送 SIGKILL 信号,直到可用调页空间块数高于调页空间终止级别。 如果 low_ps_handling 参数设置为 2 (在 vmo 命令下) ,并且如果找不到要终止的进程 (没有 SIGDANGER 处理程序) ,那么系统会将 SIGKILL 信号发送到具有 SIGDANGER 信号的信号处理程序的最早进程。
动态分配内存的进程可以通过使用 ps迂险 子例程监视调页空间级别或使用特殊分配例程来确保存在足够的调页空间。 当达到调页空间终止级别时,可以通过为 SIG危险 信号定义信号处理程序并使用 disclaim 子例程释放在数据和堆栈区域中分配的内存和调页空间资源来避免进程结束。 以及在共享内存段中。
其他可帮助从 VMM 中动态检索页面调度信息的子例程包括以下: