Articles of 分页

我怎么能告诉Linux保持一个页面,而不是驱逐它?

可能重复: 我可以告诉Linux不要换出特定进程的内存吗? 我想在Linux中分配一块内存,并确保它不会得到#GP或#PF错误。 关于#GP,作为程序员我有责任确保不超出任何界限。 然而,#PF是操作系统的责任,因为它可以select是否驱逐一个页面。 我想如果我经常使用相同的页面,操作系统将足够聪明,不会驱逐它。 但是,如果我想分配一大块内存,那么需要一段时间才能到达一些页面,而我不希望操作系统在这段时间内将其驱逐出去。 有没有办法告诉Linux保持一个页面,使我从来没有得到一个页面错误? 注意:这与问题类似, 如何告诉Windows保留一个页面而不是驱逐它? 除了这个是关于Linux的

如何防止一个程序/进程分页?

我有一个需要很多内存的程序,比如所有物理内存的2/3。 运行一段时间后,我的操作系统开始将程序交换到硬盘。 但是我需要程序非常快速地响应,所以我需要防止对该进程进行分页。 如何防止操作系统交换一个进程? 谢谢你的帮助!

是帧数=页数(Linux)?

我正在学习Linux设备驱动程序,发现页数等于帧数。 每个页面映射到每个frame.It说像每当程序需要内存将分配页面。 但在操作系统的书籍中,我发现像虚拟地址分成页面,这些页面被加载到框架中。那么页面的数量如何可以等于框架? 以上哪一项是正确的? 如何在页表中存储关于虚拟,页面,框架映射的信息? 我完全困惑。

如何不覆盖以前的terminal内容

我不确定这是否是重复的,但是我不知道要search什么,因为我不知道这个现象的名称。 基本上,每当我在某些计算机上使用vim和less ,以前的terminal内容被当前文件的缓冲区覆盖(我认为)。 如果我滚动滚动条而不是当前程序的命令,我可以看到以前的terminal内容,但是一些以前的行已经被当前的程序覆盖了。 看起来像vim这样的缓冲区(我认为)有多less行,terminal有多less条线被覆盖了。 当我从vim / less退出时,这些线条仍然被覆盖,尽pipe它们出现在历史中,当我通过历史logging“回”时。 但是,在其他电脑上,发生了一些不同的事情。 当我使用vim或less ,如果我上下滚动,我看不到terminal的前面几行。 事实上,在大多数发生这种现象的计算机上,如果我用鼠标向下滚动,而less回滚到当前缓冲区中的文件,就好像我按了Ctrl-E / Ctrl-Y 。 当我退出vim / less ,根本看不到文件,我只能看到terminal的前一个内容,就像我在打开文件之前所做的一样。 每当我用得more ,不pipe用什么电脑,都会出现前一种现象,但我用得不多,因为我喜欢各方面都不太好,所以我没有testing它的极限。 我经历了前一种现象的计算机/虚拟terminal似乎是较旧的计算机和/或具有较小能力和规格的计算机,这是合乎情理的,因为大多数人可能想要后者,但是可能难以完成,并且需要更多的处理能力和记忆。 以前有过的电脑是:我工作的2台RedHat ,可能是从2000年底/ 2010年初期开始的,我是用Penguinet的Windows 7电脑Penguinet ; 带有Terminal Rex IDE的Android手机/平板电脑,“安装系统” 在大多数的Androidterminal应用程序,我不能得到vim , less ,甚至vi ,但我得到more 。 当我用Git Bash使用vagrant时,默认的msys TERM值,terminal都搞砸了,我经历了大部分相同的行为,但更糟的是。 当我将TERM更改为cygwin或xterm ,效果更好。 对于我来说更理想的计算机是:我最新的带有Ubuntu 15.04笔记本电脑(是的,预装Linux ); 在过去的几年中,我在Windows 8笔记本电脑上安装的任何Linux虚拟机,但是我只有最新的版本,所以我不知道这个行为有多大。 Git Bash在我的Windows 8笔记本电脑上。 当我用鼠标滚动时, Git Bash没有通过文件回滚,而是通过一个空的terminal,但这可能是因为我的vimrc / lessrc的设置。 当我在Git […]

是什么导致页面错误?

根据维基百科 : 页面错误是当程序访问虚拟地址空间中映射的页面但不加载到物理内存中时硬件引发的软件陷阱。 (重点是我的) 好的,这是有道理的。 但是,如果是这样的话,为什么每当Process Hacker中的进程信息被刷新时,我就看到大约15页错误? 或换句话说,为什么有任何记忆被分页? (我不知道它是用户还是内核内存。)我没有页面文件,内存使用量是4 GB中的1.2 GB,这是干净的重新启动之后。 没有任何资源短缺, 为什么会有东西被分页?

将Windows窗体中的DataGridView绑定到列表<List <T >>

我有一个自定义对象的集合,其格式为List of List of T,即List of List对象。 我需要将此集合绑定到Windows窗体中的datagridview控件,并且页数应该等于外部列表中内部列表的数量。 每个页面都应该绑定到内部列表,即T列表。任何想法如何实现?