SPOS Codes
SPOS Codes
import java.io.*;
class pass1 {
public static void main(String args[]) throws Exception {
FileReader fr = new FileReader(args[0]);
BufferedReader br = new BufferedReader(fr);
String line = null;
System.out.println("---------------------------------------------");
while((line = br.readLine())!=null) {
String[] tokens = line.split("\t");
if(line_count==0) {
lc = Integer.parseInt(tokens[2]);
for(int i=0; i<tokens.length; i++) {
System.out.println(tokens[i] + "\t");
}
System.out.println("");
}
else {
for(int i=0; i<tokens.length; i++) {
System.out.println(tokens[i] + "\t");
}
System.out.println("");
if(!tokens[0].equals("")) {
symboltable[symtabline][0] = tokens[0];
symboltable[symtabline][1] = Integer.toString(lc);
symboltable[symtabline][2] = Integer.toString(1);
symtabline++;
}
else if (tokens[1].equalsIgnoreCase("DS") ||
tokens[1].equalsIgnoreCase("DC")) {
symboltable[symtabline][0] = tokens[0];
symboltable[symtabline][1] = Integer.toString(lc);
symboltable[symtabline][2] = Integer.toString(1);
symtabline++;
}
if(tokens.length==3 && tokens[2].charAt(0)=='=') {
littable[littabline][0] = tokens[2];
littable[littabline][1] = Integer.toString(lc);
littabline++;
}
else if(tokens[1]!=null) {
optable[optabline][0] = tokens[1];
if(tokens[1].equalsIgnoreCase("START")||
tokens[1].equalsIgnoreCase("END")||tokens[1].equalsIgnoreCase("ORIGIN")||
tokens[1].equalsIgnoreCase("EQU")||tokens[1].equalsIgnoreCase("LTORG")) {
optable[optabline][1] = "AD";
optable[optabline][2] = "R11";
}
else if(tokens[1].equalsIgnoreCase("DS")||
tokens[1].equalsIgnoreCase("DC")) {
optable[optabline][1] = "DL";
optable[optabline][2] = "R7";
}
else {
optable[optabline][1] = "IS";
optable[optabline][2] = "(04, 1)";
}
optabline++;
}
}
line_count++;
lc++;
}
System.out.println("---------------------------------------------");
System.out.println("SYMBOL TABLE");
System.out.println("---------------------------------------------");
System.out.println("SYMBOL \t ADDRESS \t LENGTH");
for(int i=0; i<symtabline; i++) {
System.out.println(symboltable[i][0] + "\t" + symboltable[i][1] +
"\t" + symboltable[i][2]);
}
System.out.println("---------------------------------------------");
System.out.println("OPCODE TABLE");
System.out.println("---------------------------------------------");
System.out.println("MNEMONIC \t CLASS \t INFO");
System.out.println("---------------------------------------------");
for(int i=0; i<optabline; i++) {
System.out.println(optable[i][0] + "\t" + optable[i][1] + "\t" +
optable[i][2]);
}
System.out.println("---------------------------------------------");
System.out.println("LITERAL TABLE");
System.out.println("---------------------------------------------");
System.out.println("LITERAL \t ADDRESS");
System.out.println("---------------------------------------------");
for(int i=0; i<littabline; i++) {
if(littable[i][0]!=null && littable[i+1][0]!=null) {
if(i==0) {
pooltable[pooltabline] = i+1;
pooltabline++;
}
else if(Integer.parseInt(littable[i][1]) <
(Integer.parseInt(littable[i+1][1]))-1) {
pooltable[pooltabline] = i+2;
pooltabline++;
}
}
}
System.out.println("POOL TABLE");
System.out.println("---------------------------------------------");
System.out.println("LITERAL NUMBER");
System.out.println("---------------------------------------------");
for(int i=0; i<pooltabline; i++) {
System.out.println(pooltable[i]);
}
System.out.println("---------------------------------------------");
br.close();
}
}
Pass 2
import java.io.*;
import java.util.HashMap;
while((s=b2.readLine())!=null) {
String word[] = s.split("\t\t\t");
symSymbol.put(symtabPointer++, word[1]);
}
while ((s=b3.readLine())!=null) {
String word[] = s.split("\t\t");
litSymbol.put(littabPointer, word[0]);
litAddress.put(littabPointer++, word[1]);
}
while ((s=b1.readLine())!=null) {
if(s.substring(1, 6).compareToIgnoreCase("IS,00")==0) {
f1.write("+ 00 0 000 \n");
}
else if(s.substring(1, 3).compareToIgnoreCase("IS")==0) {
f1.write("+ "+s.substring(4, 6)+" ");
if(s.charAt(9)==')') {
f1.write(s.charAt(8)+" ");
offset=3;
}
else {
f1.write("0 ");
offset=0;
}
if(s.charAt(8+offset)=='S') {
f1.write(symSymbol.get(Integer.parseInt(s.substring(10+offset, s.length()-1)))
+"\n");
}
else {
f1.write(litAddress.get(Integer.parseInt(s.substring(10+offset, s.length()-
1)))+"\n");
}
}
else if(s.substring(1,6).compareToIgnoreCase("DL, 01")==0) {
String s1=s.substring(10, s.length()-1),s2="";
for(int i=0; i<3-s1.length(); i++) {
s2+="0";
s2+=s1;
f1.write("+ 00 0 " + s2 + "\n");
}
}
else {
f1.write("\n");
}
}
f1.close();
b1.close();
b2.close();
b3.close();
}
}
First come First Server
import java.util.*;
stime[0] = 0;
for(int i=1; i<n; i++) {
stime[i] = stime[i-1] + etime[i-1];
}
wtime[0] = 0;
for(int i=1; i<n; i++) {
wtime[i] = stime[i-1] + id[i];
total = total+wtime[i];
}
for(int i=1; i<n; i++) {
tat[i] = wtime[i] + etime[i];
total1 = total1+tat[i];
}
avg = (float)total/n;
avg1 = (float)total1/n;
sc.close();
}
}
Shortest Job First
import java.util.*;
arrangeArrival(num, mat);
completionTime(num, mat);
System.out.println("Final Result...");
System.out.println("Process ID \t Arrival Time \t Burst Time \t
Waiting Time \t Turnarount Time");
for(int i=0; i<num; i++) {
System.out.printf("%d \t\t %d \t\t %d \t\t %d \t\t %d \n",
mat[i][0], mat[i][1], mat[i][2], mat[i][3], mat[i][4]);
}
sc.close();
}
}
Round Robin Algorithm
import java.util.Scanner;
bt = new int[10];
wt = new int[10];
tat = new int[10];
rem_bt = new int[10];
else {
age[a]++;
}
}
}
}
}
float hr = (float)hit/((float)hit + (float)miss);
System.out.println("Hit="+hit+" miss="+miss);
System.out.println("page replacement ratio = " + hr);
}
}
First In First Out
import java.io.*;
class FIFO {
public static void main(String args[]) throws IOException {
int n, f;
float rat;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Enter the Number of FRAMES: ");
f = Integer.parseInt(br.readLine());
int fifo[] = new int[f];
System.out.println("Enter the number of INPUTS: ");
n = Integer.parseInt(br.readLine());
int inp[] = new int[n];
System.out.println("Enter INPUT: ");
for(int i=0; i<n; i++)
inp[i] = Integer.parseInt(br.readLine());
System.out.println("-------------------------------------------------");
for(int i=0; i<f; i++)
fifo[i] = -1;
static int predict(int pg[], int[] fr, int pn, int index) {
int res=-1, farthest = index;
for(int i=0; i<fr.length; i++) {
int j;
for(j=index; j<fr.length; j++) {
if(fr[i] == pg[j]) {
if(j>farthest) {
farthest = j;
res = i;
}
break;
}
}
if(j == pn)
return i;
}
return (res == -1) ? 0:res;
}