0% found this document useful (0 votes)
33 views4 pages

7 Election

this is data

Uploaded by

Shruti More
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views4 pages

7 Election

this is data

Uploaded by

Shruti More
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Election Algorithm

Bully Algorithm
Code:
import java.io.*;
import java.util.Scanner;
class Bully{
static int n;
static int pro[] = new int[100];
static int sta[] = new int[100];
static int co;
public static void main(String args[])throws IOException
{
System.out.println("Enter the number of process");
Scanner in = new Scanner(System.in);
n = in.nextInt();
int i,j,k,l,m;
for(i=0;i<n;i++)
{
System.out.println("For process "+(i+1)+":");
System.out.println("Status:");
sta[i]=in.nextInt();
System.out.println("Priority");
pro[i] = in.nextInt();
}

System.out.println("Which process will initiate election?");


int ele = in.nextInt();
elect(ele);
System.out.println("Final coordinator is "+co);
}
static void elect(int ele)
{
ele = ele-1;
co = ele+1;
for(int i=0;i<n;i++)
{
if(pro[ele]<pro[i])
{
System.out.println("Election message is sent from "+(ele+1)+" to "+(i+1));
if(sta[i]==1)
elect(i+1);
}
}
}
}
Output:
Ring Algorithm
Code:
import java.util.Scanner;
class Process{
public int id;
public boolean active;

public Process(int id){


this.id=id;
active=true;
}

}
public class Ring{
int noOfProcesses;
Process[] processes;
Scanner sc;

public Ring(){
sc=new Scanner(System.in);
}
public void initialiseRing(){
System.out.println("Enter no of processes");
noOfProcesses=sc.nextInt();
processes = new Process[noOfProcesses];
for(int i=0;i<processes.length;i++){
processes[i]= new Process(i);
}
}

public int getMax(){


int maxId=-99;
int maxIdIndex=0;
for(int i=0;i<processes.length;i++){
if(processes[i].active && processes[i].id>maxId){
maxId=processes[i].id;
maxIdIndex=i;

}
}
return maxIdIndex;
}
public void performElection(){

System.out.println("Process no :"+processes[getMax()].id+" fails");


processes[getMax()].active=false;
System.out.println("Election Initiated by");
int initiatorProcesss=sc.nextInt();

int prev = initiatorProcesss;


int next = prev+1;

while(true){
if(processes[next].active){
System.out.println("Process "+processes[prev].id+" pass Election("+processes[prev].id+")
to"+processes[next].id);
prev=next;
}

next = (next+1)%noOfProcesses;
if(next == initiatorProcesss){
break;
}
}

System.out.println("Process "+ processes[getMax()].id +" becomes coordinator");


int coordinator = processes[getMax()].id;

prev = coordinator;
next =(prev+1)%noOfProcesses;

while(true){

if(processes[next].active)
{
System.out.println("Process "+ processes[prev].id +" pass Coordinator("+coordinator+ ") message to
process "+processes[next].id );prev = next;
}
next = (next+1) % noOfProcesses;
if(next == coordinator)
{
System.out.println("End Of Election ");
break;
}
}

public static void main(String arg[]){


Ring r= new Ring();
r.initialiseRing();
r.performElection();
}

Output:

You might also like