2016-11-10 51 views
0

我们有一个时间关键的进程(第三方代码),它有mlockall。我将此代码移植到我们的没有硬盘的嵌入式系统中。 它是RAM系统,从SD卡启动并且在SD卡中也有存储。仅在RAM中使用mlock的系统

mlockall在RAM系统中是否具有任何性能优势?

只是为了检查是否有它试图任何交换分区: 执行cat/proc /掉期 文件名类型大小使用中断优先

在这种情况下我可以删除mlockall用于,因为它是不会在增加任何价值了系统。请帮助。

回答

0

在内存压力下,linux内核可能会决定从RAM中逐出页面。脏页面(包含可写数据)只能换出。清理页面(只读)就像流程的文本部分可能会被删除。需要时,这些页面将通过页面错误返回。

由于没有交换,第一种情况不会发生在您身上。第二种情况可能发生,可以通过mlockall调用阻止。

总的来说,讨论是理论上的,因为在内存压力下运行系统会引入很多非确定性行为,这对于实时系统是不利的。