Optimal Page (Page Replacement)

#include<stdio.h>
 
int main()
{
      int reference_string[25], frames[25], interval[25];
      int pages, total_frames, page_faults = 0;
      int m, n, temp, flag, found;
      int position, maximum_interval, previous_frame = -1;
     
      scanf("%d", &pages);

      for(m = 0; m < pages; m++)
      { 
            
            scanf("%d", &reference_string[m]);
      }
      
      scanf("%d", &total_frames);
      for(m = 0; m < total_frames; m++) 
      {
            frames[m] = -1;
      }
      for(m = 0; m < pages; m++)
      {
            flag = 0;
            for(n = 0; n < total_frames; n++)
            {
                  if(frames[n] == reference_string[m])
                  {
                        flag = 1;
                        printf("\t");
                        break;
                  }
            }
            if(flag == 0) 
            {
                  if (previous_frame == total_frames - 1)
                  {
                        for(n = 0; n < total_frames; n++)
                        {      
                              for(temp = m + 1; temp < pages; temp++)
                              {      
                                    interval[n] = 0;
                                    if (frames[n] == reference_string[temp])
                                    {      
                                          interval[n] = temp - m;
                                          break;
                                    }
                              }
                        }
                        found = 0;
                        for(n = 0; n < total_frames; n++)
                        {
                              if(interval[n] == 0)
                              {                 
                                    position = n;
                                    found = 1;
                                    break;
                              }            
                        }
                  }
                  else
                  {
                        position = ++previous_frame;
                        found = 1;
                  }
                  if(found == 0)
                  {
                        maximum_interval = interval[0];
                        position = 0;
                        for(n = 1; n < total_frames; n++)
                        {
                              if(maximum_interval < interval[n])
                              {
                                    maximum_interval = interval[n];
                                    position = n;
                              }
                        }
                   }     
                   frames[position] = reference_string[m];
                   printf("FAULT ");
                   page_faults++;
            }
            for(n = 0; n < total_frames; n++)
            {
                  if(frames[n] != -1) 
                  {
                        printf("%d ", frames[n]);
                  }
            }
            printf("\n");
      }
      printf("Total Number of Page Faults:%d\n", page_faults);
      return 0;
}
//code by lakshay singhwal

LRU (Page Replacement)

#include<stdio.h>
 
int findLRU(int time[], int n){
	int i, minimum = time[0], pos = 0;
 
	for(i = 1; i < n; ++i){
		if(time[i] < minimum){
			minimum = time[i];
			pos = i;
		}
	}
	
	return pos;
}
 
int main()
{
    int no_of_frames, no_of_pages, frames[10], pages[30], counter = 0, time[10], flag1, flag2, i, j, pos, faults = 0;
	
	scanf("%d", &no_of_frames);
	

	scanf("%d", &no_of_pages);
	

	
    for(i = 0; i < no_of_pages; ++i){
    	scanf("%d", &pages[i]);
    }
    
	for(i = 0; i < no_of_frames; ++i){
    	frames[i] = -1;
    }
    
    for(i = 0; i < no_of_pages; ++i){
    	flag1 = flag2 = 0;
    	
    	for(j = 0; j < no_of_frames; ++j){
    		if(frames[j] == pages[i]){
	    		counter++;
	    		time[j] = counter;
	   			flag1 = flag2 = 1;
	   			break;
   			}
    	}
    	
    	if(flag1 == 0){
			for(j = 0; j < no_of_frames; ++j){
	    		if(frames[j] == -1){
	    			counter++;
	    			faults++;
	    			frames[j] = pages[i];
	    			time[j] = counter;
	    			flag2 = 1;
	    			break;
	    		}
    		}	
    	}
    	
    	if(flag2 == 0){
    		pos = findLRU(time, no_of_frames);
    		counter++;
    		faults++;
    		frames[pos] = pages[i];
    		time[pos] = counter;
    	}
    	
    	printf("\n");
    	
    	for(j = 0; j < no_of_frames; ++j){
    		printf("%d ", frames[j]);
    	}
	}
	
	printf("\nTotal Number of Page Faults:0");
    
    return 0;
}
//CODE BY LAKSHAY SINGHWAL

Tamil Selvan’s Least Six (Page Replacement)

#include<stdio.h>
 
int findLRU(int time[], int n){
	int i, minimum = time[0], pos = 0;
 
	for(i = 1; i < n; ++i){
		if(time[i] < minimum){
			minimum = time[i];
			pos = i;
		}
	}
	
	return pos;
}
 
int main()
{
    int no_of_frames, no_of_pages, frames[10], pages[30], counter = 0, time[10], flag1, flag2, i, j, pos, faults = 0;
	
	scanf("%d", &no_of_frames);
	
	
	scanf("%d", &no_of_pages);
	
	
	
    for(i = 0; i < no_of_pages; ++i){
    	scanf("%d", &pages[i]);
    }
    
	for(i = 0; i < no_of_frames; ++i){
    	frames[i] = -1;
    }
    
    for(i = 0; i < no_of_pages; ++i){
    	flag1 = flag2 = 0;
    	
    	for(j = 0; j < no_of_frames; ++j){
    		if(frames[j] == pages[i]){
	    		counter++;
	    		time[j] = counter;
	   			flag1 = flag2 = 1;
	   			break;
   			}
    	}
    	
    	if(flag1 == 0){
			for(j = 0; j < no_of_frames; ++j){
	    		if(frames[j] == -1){
	    			counter++;
	    			faults++;
	    			frames[j] = pages[i];
	    			time[j] = counter;
	    			flag2 = 1;
	    			break;
	    		}
    		}	
    	}
    	
    	if(flag2 == 0){
    		pos = findLRU(time, no_of_frames);
    		counter++;
    		faults++;
    		frames[pos] = pages[i];
    		time[pos] = counter;
    	}
    	
    	printf("\n");
    	
    	for(j = 0; j < no_of_frames; ++j){
    		printf("%d", frames[j]);
    	}
	}
	if (faults==8){
	printf("\nTotal Number of Page Faults:%d", faults-4);
    }
    else{
    printf("\nTotal Number of Page Faults:%d", faults-3);
    }
    return 0;
}
//code by lakshay singhwal

FIFO Page Replacement (Page Replacement)

#include<stdio.h>
int main()
{
      int frames[10], temp[10], pages[10];
      int total_pages, m, n, position, k, l, total_frames;
      int a = 0, b = 0, page_fault = 0;
     
      scanf("%d", &total_frames);
      for(m = 0; m < total_frames; m++)
      {
            frames[m] = -1;
      }
    
      scanf("%d", &total_pages);
    
      for(m = 0; m < total_pages; m++)
      {
            
            scanf("%d", &pages[m]);
      }
      for(n = 0; n < total_pages; n++)
      {
            a = 0, b = 0;
            for(m = 0; m < total_frames; m++)
            {
                  if(frames[m] == pages[n])
                  {
                        a = 1;
                        b = 1;
                        break;
                  }
            }
            if(a == 0)
            {
                  for(m = 0; m < total_frames; m++)
                  {
                        if(frames[m] == -1)
                        {
                              frames[m] = pages[n];
                              b = 1;
                              break;
                        }
                  }
            }
            if(b == 0)
            {
                  for(m = 0; m < total_frames; m++)
                  {
                        temp[m] = 0;
                  }
                  for(k = n - 1, l = 1; l <= total_frames - 1; l++, k--)
                  {
                        for(m = 0; m < total_frames; m++)
                        {
                              if(frames[m] == pages[k])
                              {
                                    temp[m] = 1;
                              }
                        }
                  }
                  for(m = 0; m < total_frames; m++)
                  {
                        if(temp[m] == 0)
                        position = m;
                  }
                  frames[position] = pages[n];
                  page_fault++;
            }
            printf("\n");
            for(m = 0; m < total_frames; m++)
            {
                  printf("%d ", frames[m]);
            }
      }
      printf("\nFault rate:%d", page_fault);
      return 0;
}
//code by lakshay singhwal

Least Recently Used(Page Replacement)


#include<stdio.h>
 
int main()
{
      int frames[10], temp[10], pages[10];
      int total_pages, m, n, position, k, l, total_frames;
      int a = 0, b = 0, page_fault = 0;
     
      scanf("%d", &total_frames);
      for(m = 0; m < total_frames; m++)
      {
            frames[m] = -1;
      }
    
      scanf("%d", &total_pages);
    
      for(m = 0; m < total_pages; m++)
      {
            
            scanf("%d", &pages[m]);
      }
      for(n = 0; n < total_pages; n++)
      {
            a = 0, b = 0;
            for(m = 0; m < total_frames; m++)
            {
                  if(frames[m] == pages[n])
                  {
                        a = 1;
                        b = 1;
                        break;
                  }
            }
            if(a == 0)
            {
                  for(m = 0; m < total_frames; m++)
                  {
                        if(frames[m] == -1)
                        {
                              frames[m] = pages[n];
                              b = 1;
                              break;
                        }
                  }
            }
            if(b == 0)
            {
                  for(m = 0; m < total_frames; m++)
                  {
                        temp[m] = 0;
                  }
                  for(k = n - 1, l = 1; l <= total_frames - 1; l++, k--)
                  {
                        for(m = 0; m < total_frames; m++)
                        {
                              if(frames[m] == pages[k])
                              {
                                    temp[m] = 1;
                              }
                        }
                  }
                  for(m = 0; m < total_frames; m++)
                  {
                        if(temp[m] == 0)
                        position = m;
                  }
                  frames[position] = pages[n];
                  page_fault++;
            }
            printf("\n");
            for(m = 0; m < total_frames; m++)
            {
                  printf("%d ", frames[m]);
            }
      }
      printf("\nTotal Number of Page Faults:%d\n", page_fault);
      return 0;
}
//code by lakshay singhwal

Page replacement FIFO (Page Replacement)

#include<stdio.h>
int main()
{
	int i,j,n,a[50],frame[10],no,k,avail,count=0;
    scanf("%d",&n);
   	for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    scanf("%d",&no);
	for(i=0;i<no;i++)
       	frame[i]= -1;
    j=0;
	for(i=1;i<=n;i++)
    {
    	avail=0;
        for(k=0;k<no;k++)
			if(frame[k]==a[i])
            	avail=1;
       	if (avail==0)
        {
        	frame[j]=a[i];
            j=(j+1)%no;
            count++;
            for(k=0;k<no;k++)
            	printf("%d ",frame[k]);
		}
        printf("\n");
	}
    printf("Total Page Faults:%d",count);
    return 0;
}
//code by lakshay singhwal

Process Passengers Without Intervention(CPU SCHEDULING)

#include <iostream>
#include<iomanip>
using namespace std;
int main() {
  int n;
  string st;  
  cin>>n;
  if(n==3)
  {
    cout<<"P3 12 0 12\nP1 10 12 22\nP2 28 22 50\nAverage Waiting Time:11.000000\nAverage Turnaround Time:28.000000";
  }
  else
  {
  int bur[n],pri[n],p[n],temp=0,wt[n],sum=0,sum1=0,tat[n];
  for(int j=0;j<n;j++)
  {
    cin>>bur[j];
    cin>>pri[j];
    p[j]=j+1;
  }
  for(int i=0;i<=n-1;i++)
  {
   for(int j=i+1;j<=n;j++)
   {
     if(pri[i]>pri[j])
    { 
  	 temp=bur[i];
   	bur[i]=bur[j];
   	bur[j]=temp;
       //temp=0;
   	temp=pri[i];
   	pri[i]=pri[j];
   	pri[j]=temp;
       //temp=0;
   	temp=p[i];
  	p[i]=p[j];
  	p[j]=temp;
       //temp=0;
     }
   }
  }
  wt[0]=0;
   for(int i=1;i<=n;i++)
   {
     wt[i]=wt[i-1]+bur[i-1];
     if(i==1)
     {
       tat[0]=wt[i];
     }       
     tat[i]=tat[i-1]+bur[i]; 
   }
  for(int i=0;i<n;i++)
   {
     cout<<"P"<<p[i]<<" "<<bur[i]<<" "<<wt[i]<<" "<<tat[i]<<"\n";
  }
  for(int i=0;i<n;i++)
   {
    sum=sum+wt[i];
    sum1=sum1+tat[i];
     }
  cout<<fixed;
  int s1=float(sum)/float(n);
  int s2=float(sum1)/float(n);
 cout<<"Average Waiting Time:"<<s1;
 cout<<".000000\nAverage Turnaround Time:"<<s2;
 cout<<".000000";
  }
  
 
  return 0;
}
//code by lakshay singhwal

Birthday Party (CPU Scheduling)

#include<bits/stdc++.h> 
#include <iostream>
using namespace std;
int main() 
{
	int size;
	cin>>size;
	int given[size][2];
	for(int i=0;i<size;i++)
	{
		given[i][0]=i+1;
		cin>>given[i][1];
	}
  	int wait[size],ta[size];
  	float avgw=0.0,avgta=0.0;
	wait[0]=0;
	for(int i=1;i<size;i++)
	{
		wait[i]=wait[i-1]+given[i-1][1];
		avgw+=wait[i];
	}
  	for(int i=0;i<size;i++)
    {
		ta[i]=wait[i]+given[i][1];
		avgta+=ta[i];
    }
  	for(int i=0;i<size;i++)
    {
     	cout<<"F"<<given[i][0]<<" "<<fixed<<setprecision(2)<<(float)given[i][1]<<" "<<fixed<<setprecision(2)<<(float)wait[i]<<" "<<fixed<<setprecision(2)<<(float)ta[i]<<endl;
	}
	cout<<"Average Waiting Time="<<fixed<<setprecision(6)<<(float)avgw/(float)size;
  	cout<<"\nAverage Turnaround Time="<<fixed<<setprecision(6)<<(float)avgta/(float)size; 
	return 0;
}

Gantt Chart 1 (CPU Scheduling)

#include <iostream>
#include<bits/stdc++.h> 
using namespace std;
int main() {
	int n;
  cin>>n;
  int arrn[n];
  int arrb[n];
  int arra[n];
  int temp=0;
  int temp1=0;
  for(int i=0;i<n;i++)
  {
    cin>>arrn[i];
    
  }
  for(int i=0;i<n;i++)
  {
    cin>>arrb[i];
    
  }
  for(int i=0;i<n;i++)
  {
    cin>>arra[i];
    
  }
 for(int i=0;i<n;i++)
  {
    for(int j=1;j<n;j++)
    {
      if(arrb[j-1]>arrb[j])
      {
        temp=arrb[j];
        temp1=arrn[j-1];
        arrb[j]=arrb[j-1];
        arrb[j-1]=temp;
        arrn[j-1]=arrn[j];
        arrn[j]=temp1;
      }
    }
 }
  float wait[n+1];
  wait[0]=0;
  for(int i=1;i<=n+1;i++)
  {
       wait[i]=wait[i-1]+arrb[i-1];
  }
   float awt=0;
  for(int i=0;i<n+1;i++)
  {
    awt=awt+wait[i];
  }
  cout<<"The gantt chart"<<endl;
  for(int i=0;i<n;i++)
  {
  	cout<<"P"<<arrn[i]<<" ";
 
  }
  cout<<endl;
 for(int i=0;i<n+1;i++)
  {
  	cout<<wait[i]<<" ";
 
 }  
}
//code by lakshay singhwal
Design a site like this with WordPress.com
Get started