我正在尝试建模虚拟内存系统。我想要做的是使用多线程模拟多个并发用户进程。
我将通过命令行接收:页面大小(字节为整数),每个进程在模拟逻辑内存中获取的页数,相应模拟物理内存中的帧数,数量模拟的总进程数,以及每个进程的实际逻辑地址(文本文件中包含的任意内容)。
我想与我的问题主要相关的是如何在输入上创建n个线程并填充每个线程的逻辑地址数组。我正在阅读多线程但有点挣扎。
我正在尝试使用此线程代码:
class Proccess implements Runnable {
Thread t;
List<Integer> addresses = new ArrayList<>();
Proccess(String pNum) {
t = new Thread(this, pNum);
System.out.println("Child " + t.getName());
t.start();
}
public void run() {
try {
//Is this where I want to fill in the addresses list?
//I will be reading in a file to do this. Each
//file is unique for each individual process
//so I don't have to worry about multiple processes
//accessing the same file.
} catch (InterruptedException e) {
System.out.println("Interrupted.");
}
System.out.println(".");
}
}
每个流程也都有自己的页面表,我愿意接受有关如何有效添加/维护它的建议。
这不是针对学校的,所以我没有必要遵循的规范。