我的OS类的部分工作要求我用Java创建一个包含各种字段的Process Control Block类。我已经创建了具有所有不同字段的类,例如姓名,状态,到达时间等。但是当被要求这样做时,我被卡住了:
似乎我必须创建另一个名为RegisterSet的类,包含所有这些不同的字段,但我仍然坚持我应该如何做到这一点,然后如何在我的PCB类中创建设置值。 ..
非常感谢任何帮助。
这就是我所拥有的。我有RegisterSet类,每个寄存器都有setter和getter,然后在我的PCB类中,我有一个setValues函数,如下所示:
public void setValues(String XAR,
String XDO, String PC, String IR,
String EMIT, String RR, String PSW,
String R0, String R1, String R2,
String R3, String R4, String R5, String R6,
String R7){
RegisterSet reg = new RegisterSet();
reg.setXAR(XAR);
reg.setXDO(XDO);
reg.setPC(PC);
reg.setIR(IR);
reg.setEMIT(EMIT);
reg.setRR(RR);
reg.setPSW(PSW);
reg.setR0(R0);
reg.setR1(R1);
reg.setR2(R2);
reg.setR3(R3);
reg.setR4(R4);
reg.setR5(R5);
reg.setR6(R6);
reg.setR7(R7);
}
然后我有getValues方法运行我在RegisterSet类中创建的ToString():
public String getValues(){
RegisterSet reg = new RegisterSet();
return reg.ToString();
}
最后,这就是我想在我的SIM卡中运行的内容:
//Remaining are Registers
String xar = st.nextToken();
String xdi = st.nextToken();
String xdo = st.nextToken();
String pc = st.nextToken();
String ir = st.nextToken();
String emit = st.nextToken();
String rr = st.nextToken();
String psw = st.nextToken();
String r0 = st.nextToken();
String r1 = st.nextToken();
String r2 = st.nextToken();
String r3 = st.nextToken();
String r4 = st.nextToken();
String r5 = st.nextToken();
String r6 = st.nextToken();
String r7 = st.nextToken();
PCB.setValues(xar, xdi, xdo, pc, ir, emit, rr, psw,
r0, r1, r2, r3, r4, r5, r6, r7);
我尝试编译时遇到的错误说明了这一点:
required: String,String,String,String,String,String,String,String,String,String,String,String,String,String,String
found: String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String
reason: actual and formal argument lists differ in length
基本上,我正在阅读许多流程的不同细节,将数据填充到PCB中,然后将PCB添加到Process Table中,这只是一个ArrayList。之后,我遍历ArrayList,打印出每个进程。
答案 0 :(得分:0)
你有没有试过像:
class PCB {
...
RegisterSet registerSet = new RegisterSet();
public RegisterSet getRegisterSet() { return this.registerSet; }
public void setRegisterSet(RegisterSet rs) { this.registerSet = rs; }
...
}
这回答了你的直接问题,但不知怎的,我不确定你的意思。