Skip to main content

Write the simulation program for preemptive scheduling algorithm using SJF. The arrival time and first CPU bursts of different jobs should be input to the system. The output should give the Gantt chart and waiting time for each process and average times.

Write the simulation program for preemptive scheduling algorithm using SJF. The arrival time and first CPU bursts of different jobs should be input to the system. The output should give the Gantt chart and waiting time for each process and average times.


Program:
#include <stdio.h>
#include <stdlib.h>

struct sch{
 int wt,at,ft,bt,st;
}pr[50],temp[50];
int rq[50],x,n,timer;
void addp(){
 int i;
 for(i=0;i<n;i++){
  if(pr[i].at==timer){
   rq[++x]=i;
  }
 }
}

int selectp(){
 int pp,i;
 if(x<0){
  return(-1);
 }else{
  pp=rq[0];
  for(i=1;i<=x;i++){
   if(temp[pp].bt>temp[i].bt){
    pp=i;
   }
  }
  for(i=pp;i<x;i++){
   rq[i]=rq[i+1];
  }
  x--;
  return(pp);
 }
}

void main(){
 setbuf(stdout,NULL);
 int i,t,p;
 float awt;
 timer=0;
 x=-1;
 printf("Enter the Number of processes:");
 scanf("%d",&n);
 for(i=0;i<n;i++){
  printf("\nEnter arrival time:");
  scanf("%d",&pr[i].at);
  printf("\nEnter bursts time:");
  scanf("%d",&pr[i].bt);
  temp[i]=pr[i];
 }
 t=0;
 addp();
 while(t<n){
  p=selectp();
  if(p==-1){
   printf("idle|");
   timer++;
   addp();
  }else{
   if(pr[p].bt==temp[p].bt){
    pr[p].st=timer;
   }
   printf("P%d|",p);
   temp[p].bt--;
   timer++;
   addp();
   if(temp[p].bt<=0){
    pr[p].ft=timer;
    t++;
   }else{
    rq[++x]=p;
   }
  }
 }
 awt=0;
 printf("\nWaiting time of each Process:");
 for(i=0;i<n;i++){
  pr[i].wt=(pr[i].ft-pr[i].at)-pr[i].bt;
  printf("\nP%d=%d",i,pr[i].wt);
  awt+=pr[i].wt;
 }
 awt = awt/n;
 printf("\nAverage Waiting time:%f",awt);
}

Comments

Trending Posts

Write a Java program using servlet for email registration with userid, password, name, address fields and display the details on next page.

Write a Java program using servlet for email registration with userid, password, name, address fields and display the details on next page. Program: import java.io.*; import java.net.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class User extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ resp.setContentType("Text/http:charset=UTF-8"); PrintWriter out = resp.getWriter(); out.print("<html>"); out.print("<head>"); out.print("<title>Today</title>"); out.print("</head>"); out.print("<body>"); out.print("<br>UserId="+resp.getParameter("userid")); out.print("<br>Password="+resp.getParameter("password")); out.print("<br>Name=&quo

Write a Java program to accept names of n students and insert into LinkedList. Display the contents of list using Iterator and also Display the content in reverse order using ListIterator.

Write a Java program to accept names of n students and insert into LinkedList. Display the contents of list using Iterator and also Display the content in reverse order using ListIterator. Program: import java.io.*; import java.util.*; class ReverseLinkedList { public static void main(String args[]) throws IOException { LinkedList students = new LinkedList(); String str; int i, n; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter how many names:"); n = Integer.parseInt(br.readLine()); for(i=0;i<n;i++){ System.out.println("Enter the names of students:"); str = br.readLine(); students.add(str); } Iterator itr = students.iterator(); System.out.println("Content of LinkedList using Iterator"); while(itr.hasNext()){ System.out.println(itr.next()); }

Write a Java program to read n integers into LinkedList collection. Do the following operations. Display only negative integers and delete last element.

Write a Java program to read n integers into LinkedList collection. Do the following operations. Display only negative integers and delete last element. Program: import java.io.*; import java.util.*; class LinkedListInt { public static void main(String args[]) throws IOException { LinkedList list = new LinkedList(); int i,n,x; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("How many integers:"); n = Integer.parseInt(br.readLine()); for(i=0;i<n;i++){ System.out.println("Enter Number:"); x = Integer.parseInt(br.readLine()); list.add(x); } Iterator itr = list.iterator(); while(itr.hasNext()){ Integer y = (Integer)itr.next(); int a = (int)y; if(a<0){ System.out.println("Negative number:"+a); } } System.out.pri

Write a Java program to accept the details of employee(eno, ename, salary) using AWT and insert into database

Write a Java program to accept the details of employee(eno, ename, salary) using AWT and insert into database. Program: import java.awt.*; import java.awt.event.*; import java.io.*; import java.sql.*; public class Employee extends Frame implements ActionListener { Label labelEno, labelEname, labelSalary; TextField textEno, textEname, textSalary; Button btnAdd; String sqlQuery; Statement s; Connection dbConnection; public Employee() throws ClassNotFoundException, SQLException { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); dbConnection = DriverManager.getConnection("jdbc.odbc:EmployeeDSN"); setLayout(new FlowLayout()); setSize(300,300); labelEno = new Label("Employee No:"); labelEname = new Label("Employee Name:"); labelSalary = new Label(Employee Salary:); textEno = new TextField(20); textEname = new TextField(20); textSalary = new TextField(20); btnAdd = new Button("Add"); btnAdd.addAction

Write simulation program for demand paging and show the page scheduling and total number of page faults according to LFU page replacement algorithm. Assume the memory of n frames.

Write simulation program for demand paging and show the page scheduling and total number of page faults according to LFU page replacement algorithm. Assume the memory of n frames. Program: #include <stdio.h> #include <stdlib.h> void main(){ setbuf(stdout,NULL); int f, tp ,al[50][50]={-1, -1}, i,j,pg[50],pf,x,queue[50]; printf("\nEnter total number of frames:"); scanf("%d",&f); printf("\nEnter total number of pages:"); scanf("%d",&tp); printf("\nEnter page string:"); for(i=0;i<tp;i++){ scanf("%d",&pg[i]); } pf=0; for(i=0;i<tp;i++){ for(j=0;j<f;j++){ if(al[j][i]==pg[i]){ break; } } if(f==j){ for(j=0;j<f;j++){ if(al[j][i]==-1){ al[j][i]=pg[i]; queue[++x]=pg[i]; pf++; break; } } if(f==j){ for(j=0;j<f;j++){ if(al[j][i]==queue[x]){ al[j][i]=pg[i]; pf++; x--; } } } } else{ queue[++