小编Eri*_*son的帖子

操作系统通常如何管理内核内存和页面处理?

我正在研究内核设计,我有一些关于分页的问题.

到目前为止我的基本想法是:每个程序都有自己的(或者它认为)4G内存,减去我保留的程序可以调用的内核函数的某个部分.因此,操作系统需要找出一些方法来加载程序在操作期间需要使用的内存中的页面.

现在,假设我们拥有无限的内存和处理器时间,我可以加载/分配程序写入或读取的任何页面,因为它使用页面错误来查找不存在(或被换出)的页面,因此操作系统可以快速分配它们或交换它们.但在现实世界中,我需要优化这个过程,这样我们就不会有一个程序不断消耗它所触及的所有内存.

所以我想我的问题是,操作系统通常如何解决这个问题?我最初的想法是创建一个程序调用set/free页面的函数,然后它可以自己进行内存管理,但程序通常是这样做的,还是编译器认为它有自由的统治?此外,编译器如何处理需要分配相当大的内存段的情况?我是否需要提供一个试图按顺序为其提供X页的功能?

这显然不是一个特定于语言的问题,但我偏爱标准C并且对C++很好,所以我希望任何代码示例都在那个或汇编中.(程序集不应该是必需的,我完全打算使用尽可能多的C代码,并作为最后一步进行优化.)

另一件事应该更容易回答:一般如何处理程序需要调用的内核函数?只有拥有一组内存区域(我正在考虑虚拟空间的末尾),它包含程序可以调用的大多数基本功能/进程特定内存吗?我的想法就是让内核函数做一些非常花哨的东西并将页面交换出来(这样程序在自己的空间中看不到敏感的内核函数)当程序需要做任何重要的事情,但我不是真的在这一点上关注安全性.

所以我想我比一般的设计理念更担心.我想让内核与GCC完全兼容(不知何故),我需要确保它提供了普通程序所需的一切.

谢谢你的建议.

paging operating-system kernel memory-management osdev

6
推荐指数
2
解决办法
2710
查看次数

您在C#中使用了哪些命名约定?

作为一名初学程序员,我正试图为自己制定一个标准的命名约定.我意识到这是个人喜好,但我试图从你们中的一些人(很多人)中得到一些比我更聪明的想法.

我不是在谈论骆驼符号,而是如何命名你的变量等等.恕我直言,var_Quantity比Q或varQ更具描述性.但是,如何防止变量变得太长.我试图通过命名我的控件来更具描述性,但我最终得到了一些类似于"rtxtboxAddrLine1"的RadTextBox,其中包含地址行1.对我而言,这是无法管理的,尽管它很清楚该控件是什么.

我只是好奇你是否有一些你遵循的指南或我是否留给自己的设备?

c# naming-conventions

6
推荐指数
3
解决办法
2216
查看次数

Linux&C:如何在多进程程序中设置文件读取优先级?

这是我正在进行的任务,不,我不是在找你给我答案.我只需要有人指出我正确的方向,也许需要一行或两行示例代码.

我需要弄清楚如何在我的程序中设置文件读取操作的优先级.要点:

  • 服务器进程接收消息并生成一个子进程来处理它
  • child尝试从消息中打开文件名,并开始将文件内容加载到消息队列中
  • 可能有多个子节点同时运行,并且初始消息包含优先级,因此某些消息可能会获得更多设备访问权限

我能想到的唯一方法(现在,无论如何)将是每次创建消息时递增计数器,并在计数器达到该进程指定优先级的给定值后执行类似sched_yield的操作.这很可能是一种可怕的,可怕的方法,但这是我现在所能想到的.赋值更多的是关于消息队列而不是其他任何东西,但我们仍然必须具有数据传输优先级.

任何帮助/指导表示赞赏:)

c linux

6
推荐指数
2
解决办法
1507
查看次数

有没有办法改变JDialog的所有者?

我有一个非常具体的问题,我想知道是否有办法更改JDialog的所有者(可以使用构造函数设置).我想没有"官方"的可能性(除了黑客),但我想确保我没有错过任何东西.关于这个主题的任何想法或提示都会有所帮助,谢谢......

java swing jdialog

6
推荐指数
1
解决办法
4418
查看次数

如何将Java JFrame部分移出Linux桌面?

我正在编写一个带有可移动框架的Java应用程序,我在Linux中遇到了一个怪癖.我在CentOS下运行GNOME 2.16.0.

当我使用JFrame.setBounds将界限设置为离屏幕一半的任何位置时,它实际上将帧的位置设置为尽可能接近指定的边界,同时仍然完全保留在屏幕上.

我如何告诉Java告诉GNOME实际将帧放在我指定的位置,即使它离屏幕一半?

下面是一些演示问题的示例代码,假设-50,50是屏幕外的.框架仍然可以通过标题栏拖出屏幕,但任何调用setLocation或setBounds不工作.

这在Windows中运行良好.

JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(200, 200));
frame.pack();
frame.setVisible(true);
frame.setLocation(-50, 50);

java linux swing gnome

6
推荐指数
1
解决办法
1220
查看次数

如何使按钮与文本大小完全相同?

是否有可能JButton完全采用其文本的大小?因为默认情况下,a JButton将在其文本周围有少量填充(水平和垂直).我想删除那个填充.

java swing jbutton

6
推荐指数
2
解决办法
9065
查看次数

如何在Joda时间找到最近一个月的结束日期?

假设一个月结束日期是一个月中的日期,即该月中的最后一个非周末和非假日日期.如何在Joda时间找到最近一个月的结束日期?例如,今天的答案将是5月28日星期五,因为那是五月的月末,而五月是最近一个月的结束.

java datetime jodatime

6
推荐指数
1
解决办法
3898
查看次数

如何从Java ArrayList中删除顺序元素?

我是一个相对较新的Java程序员,我从diffList中删除了多个元素.理想情况下,我想做这样的事情:

ArrayList ar1 = new ArrayList();
ar1.add(...)
ar1.add(...)
ar1.add(...)
ar1.add(...)

for (int i = 0; i < 2; i++){
     ar1.remove(i);
}
Run Code Online (Sandbox Code Playgroud)

我认为迭代器可能会有所帮助,但我找不到一个与我正在尝试的内容相近的示例.任何帮助,将不胜感激.谢谢.

java arraylist

6
推荐指数
2
解决办法
4299
查看次数

如何创建包含字符串和对象的Hashtable条目的JList?

我想创建一个包含Hashtable of String和object的条目的JList:

Hashtable<String,Object>
Run Code Online (Sandbox Code Playgroud)

JList元素应该包含哈希表条目并显示作为字符串的条目键的值...

可能吗 ?怎么做到呢 ?

java swing hashmap jlist

6
推荐指数
3
解决办法
4850
查看次数

如何修复此UnknownHostException?

public static final String readURL(String url)throws Throwable
{
        try {
            InputStream in = (InputStream) fetch(url);
            byte[] bArr = readBytes(in);
            return new String(bArr);
        } catch (Throwable e) {
            throw e;
            }
}


public static final Object fetch(String address) throws MalformedURLException,IOException {
    URL url = new URL(address);
    Object content = url.getContent();
    return content;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我支持代理

readURL(" http://abc.com ")

访问URL http://abc.com它会抛出java.net.UnknownHostException:我有:

<uses-permission android:name="android.permission.INTERNET" /> 
Run Code Online (Sandbox Code Playgroud)

在清单文件中.

快速解决方案吗?

java url android

5
推荐指数
1
解决办法
3万
查看次数