DS Assignment 6
DS Assignment 6
Bully.java
import java.util.*;
int coordinator;
int max_processes;
boolean processes[];
max_processes = max;
coordinator = max;
System.out.println("Creating processes..");
processes[i] = true;
}
void displayProcesses() {
if(processes[i]) {
} else {
if(!processes[process_id - 1]) {
processes[process_id - 1] = true;
} else {
if(!processes[process_id - 1]) {
} else {
processes[process_id - 1] = false;
System.out.println("Process " + process_id + " is down.");
coordinator = process_id;
System.out.println("Election message sent from process " + process_id + " to process " + (i+1));
if(processes[i]) {
keepGoing = false;
runElection(i + 1);
int choice = 0;
while(true) {
System.out.println("Bully Algorithm");
System.out.println("3. Up a process");
choice = sc.nextInt();
switch(choice) {
case 1:
max_processes = sc.nextInt();
break;
case 2:
bully.displayProcesses();
break;
case 3:
process_id = sc.nextInt();
bully.upProcess(process_id);
break;
case 4:
System.out.print("Enter the process number to down:- ");
process_id = sc.nextInt();
bully.downProcess(process_id);
break;
case 5:
process_id = sc.nextInt();
bully.runElection(process_id);
bully.displayProcesses();
break;
case 6:
System.exit(0);
break;
default:
break;
}}}}
Ring.java
import java.util.*;
int max_processes;
int coordinator;
boolean processes[];
ArrayList<Integer> pid;
public Ring(int max) {
coordinator = max;
max_processes = max;
processes[i] = true;
void displayProcesses() {
if(processes[i])
else
processes[process_id-1] = true;
} else {
if(!processes[process_id-1]) {
} else {
processes[process_id-1] = false;
System.out.print("[ ");
for(Integer x : pid) {
System.out.print(" ]\n");
}
void initElection(int process_id) {
if(processes[process_id-1]) {
pid.add(process_id);
displayArrayList(pid);
while(temp != process_id - 1) {
if(processes[temp]) {
pid.add(temp+1);
displayArrayList(pid);
coordinator = Collections.max(pid);
System.out.println("Process P" + process_id + " has declared P" + coordinator + " as the
coordinator");
pid.clear();
int choice = 0;
while(true) {
System.out.println("Ring Algorithm");
System.out.println("3. Up a process");
choice = sc.nextInt();
switch(choice) {
case 1:
max_processes = sc.nextInt();
break;
case 2:
ring.displayProcesses();
break;
case 3:
System.out.print("Enter the process to up:- ");
process_id = sc.nextInt();
ring.upProcess(process_id);
break;
case 4:
process_id = sc.nextInt();
ring.downProcess(process_id);
break;
case 5:
process_id = sc.nextInt();
ring.initElection(process_id);
break;
case 6:
System.exit(0);
break;
default:
break;}} }}
Output:
BULLY
patil@PATIL:~/Downloads/DS/Assign6$ javac
Bully.javapatil@PATIL:~/Downloads/DS/Assign6$
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
Creating processes..
P1 created
P2 created
P3 created
P4 created
Bully Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
P1 is up
P2 is up
P3 is up
P4 is up
Bully Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
Process 2 is down.
Bully Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
P1 is up
P2 is down
P3 is up
P4 is up
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
P1 is up
P2 is down
P3 is up
P4 is up
Bully Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
Ring Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
P1 created.
P2 created.
P3 created.
P4 created.
P4 is the coordinator
Ring Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
P1 is up.
P2 is up.
P3 is up.
P4 is up.
P4 is the coordinator
Ring Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
Process P2 is down.
Ring Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
P1 is up.
P2 is down.
P3 is up.
P4 is up.
P4 is the coordinator
Ring Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program
Ring Algorithm
1. Create processes
2. Display processes
3. Up a process
4. Down a process
6. Exit Program