Chirag Party – Day 3 (CPU Scheduling)

#include<bits/stdc++.h>
using namespace std;
int main() 
{
	int size;
  	cin>>size;
  	string name[size];
  	for(int i=0;i<size;i++)
      	cin>>name[i];
    int bt[size],at[size],pid[size];
  	for(int i=0;i<size;i++)
      	cin>>bt[i];
  	for(int i=0;i<size;i++)
      	cin>>at[i];
  	for(int i=0;i<size;i++)
      	cin>>pid[i];
	for(int i=0;i<size;i++)
	{
		for(int j=0;j<size-i-1;j++)
		{
			if(pid[j]>pid[j+1])
			{
				string value=name[j]; int loc=bt[j]; int tmp=pid[j]; 
				name[j]=name[j+1]; bt[j]=bt[j+1]; pid[j]=pid[j+1];
				name[j+1]=value;  bt[j+1]=loc; pid[j+1]=tmp;
			}
		}
    }
	cout<<"Sorting Depend on Priority\n";
	for(int i=0;i<size;i++)
	{
		cout<<name[i]<<" "<<bt[i]<<" "<<at[i]<<" "<<pid[i]<<endl;
	}
  	int wait[size],ta[size];
  	float avgw=0.0,avgta=0.0;
	wait[0]=0;
  	cout<<"Waiting Time\n";
	for(int i=1;i<size;i++)
	{
      	wait[i]=wait[i-1]+bt[i-1];
		cout<<"Time Taken for "<<name[i-1]<<"="<<wait[i-1]<<endl;
      	avgw+=wait[i];
	}
  	cout<<"Time Taken for "<<name[size-1]<<"="<<wait[size-1]<<endl;
  	cout<<"Average Waiting Time="<<fixed<<setprecision(6)<<(float)avgw/(float)size<<endl;
  	cout<<"TurnAround Time\n";
  	for(int i=0;i<size;i++)
    {
		ta[i]=wait[i]+bt[i];
		cout<<"Time Taken for "<<name[i]<<"="<<ta[i]<<endl;
		avgta+=ta[i];
    }
	cout<<"Average TurnAround Time="<<fixed<<setprecision(6)<<(float)avgta/(float)size<<endl;
  	return 0;
}
//code by lakshay singhwal

Chirag Flight Travel (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];
	}
	for(int i=0;i<size;i++)
	{
		for(int j=0;j<size-i-1;j++)
		{
			if(given[j][1]>given[j+1][1])
			{
				int index=given[j][0], value=given[j][1];
				given[j][0]=given[j+1][0]; given[j][1]=given[j+1][1];
				given[j+1][0]=index; given[j+1][1]=value;
			}
		}
	}
  	int wait[size],ta[size],avgw=0;
  	float 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];
    }
  	cout<<"Gnatt Chart for Waiting time=";
  	for(int i=1;i<size;i++)
      cout<<wait[i]<<" ";
	cout<<"\nAverage WT="<<avgw/size<<endl;
  	cout<<"Gnatt Chart for Turn Around Time=";
  	for(int i=0;i<size;i++)
      cout<<ta[i]<<" ";
  	cout<<"\nAverage TAT="<<avgta<<endl; 
  	for(int i=0;i<size;i++)
    {
     	cout<<"P"<<given[i][0]<<" "<<given[i][1]<<" "<<wait[i]<<" "<<ta[i]<<endl;
	}
	return 0;
}
//code by lakshay singhwal

Produce and Consume using Stack – all (IPC)

#include<stdio.h>
#include<stdlib.h>
 
int mutex=1,full=0,empty=3,x=0;
 
int main()
{
	int n;
	void producer();
	void consumer();
	int wait(int);
	int signal(int);
	while(1)
	{
		scanf("%d",&n);
		switch(n)
		{
			case 1:	if((mutex==1)&&(empty!=0))
						producer();
					else
						printf("\nBuffer is full");
					break;
			case 2:	if((mutex==1)&&(full!=0))
						consumer();
					else
						printf("\nBuffer is empty");
					break;
			case 3:
					exit(0);
					break;
		}
	}
	
	return 0;
}
 
int wait(int s)
{
	return (--s);
}
 
int signal(int s)
{
	return(++s);
}
 
void producer()
{
	mutex=wait(mutex);
	full=signal(full);
	empty=wait(empty);
	x++;
	printf("\nProducer produces the item %d",x);
	mutex=signal(mutex);

}
 
void consumer()
{
	mutex=wait(mutex);
	full=wait(full);
	empty=signal(empty);
	printf("\nConsumer consumes item %d",x);
	x--;
	mutex=signal(mutex);
}
// CODE BY LAKSHAY SINGHWAL

Producer Consumer Problem -all (Synchronization)

#include<stdio.h>
#include<stdlib.h>
 
int mutex=1,full=0,empty=3,x=0;
 
int main()
{
	int n;
	void producer();
	void consumer();
	int wait(int);
	int signal(int);
	while(1)
	{
		scanf("%d",&n);
		switch(n)
		{
			case 1:	if((mutex==1)&&(empty!=0))
						producer();
					else
						printf("\nBuffer is full!!");
					break;
			case 2:	if((mutex==1)&&(full!=0))
						consumer();
					else
						printf("\nBuffer is empty!!");
					break;
			case 3:
					exit(0);
					break;
		}
	}
	
	return 0;
}
 
int wait(int s)
{
	return (--s);
}
 
int signal(int s)
{
	return(++s);
}
 
void producer()
{
	mutex=wait(mutex);
	full=signal(full);
	empty=wait(empty);
	x++;
	printf("\nProducer produces the item %d",x);
	mutex=signal(mutex);
}
 
void consumer()
{
	mutex=wait(mutex);
	full=wait(full);
	empty=signal(empty);
	printf("\nConsumer consumes item %d",x);
	x--;
	mutex=signal(mutex);
}
// code by lakshay singhwal

Dining Philosophers Problem – 01 and 02 (Synchronization)

#include<stdio.h>
 
#define n 4
 
int compltedPhilo = 0,i;
 
struct fork{
	int taken;
}ForkAvil[n];
 
struct philosp{
	int left;
	int right;
}Philostatus[n];
 
void goForDinner(int philID){ 
	if(Philostatus[philID].left==10 && Philostatus[philID].right==10)
        printf("Philosopher %d completed his dinner\n",philID+1);
	
	else if(Philostatus[philID].left==1 && Philostatus[philID].right==1){
            
            printf("Philosopher %d completed his dinner\n",philID+1);
 
            Philostatus[philID].left = Philostatus[philID].right = 10; 
            int otherFork = philID-1;
 
            if(otherFork== -1)
                otherFork=(n-1);
 
            ForkAvil[philID].taken = ForkAvil[otherFork].taken = 0; 
            printf("Philosopher %d released fork %d and fork %d\n",philID+1,philID+1,otherFork+1);
            compltedPhilo++;
        }
        else if(Philostatus[philID].left==1 && Philostatus[philID].right==0){
                if(philID==(n-1)){
                    if(ForkAvil[philID].taken==0){
                        ForkAvil[philID].taken = Philostatus[philID].right = 1;
                        printf("Fork %d taken by philosopher %d\n",philID+1,philID+1);
                    }else{
                        printf("Philosopher %d is waiting for fork %d\n",philID+1,philID+1);
                    }
                }else{ 
                    int dupphilID = philID;
                    philID-=1;
 
                    if(philID== -1)
                        philID=(n-1);
 
                    if(ForkAvil[philID].taken == 0){
                        ForkAvil[philID].taken = Philostatus[dupphilID].right = 1;
                        printf("Fork %d taken by Philosopher %d\n",philID+1,dupphilID+1);
                    }else{
                        printf("Philosopher %d is waiting for Fork %d\n",dupphilID+1,philID+1);
                    }
                }
            }
            else if(Philostatus[philID].left==0){ 
                    if(philID==(n-1)){
                        if(ForkAvil[philID-1].taken==0){ 
                            ForkAvil[philID-1].taken = Philostatus[philID].left = 1;
                            printf("Fork %d taken by philosopher %d\n",philID,philID+1);
                        }else{
                            printf("Philosopher %d is waiting for fork %d\n",philID+1,philID);
                        }
                    }else{
                        if(ForkAvil[philID].taken == 0){
                            ForkAvil[philID].taken = Philostatus[philID].left = 1;
                            printf("Fork %d taken by Philosopher %d\n",philID+1,philID+1);
                        }else{
                            printf("Philosopher %d is waiting for Fork %d\n",philID+1,philID+1);
                        }
                    }
        }else{}
}
 
int main(){
	for(i=0;i<n;i++)
        ForkAvil[i].taken=Philostatus[i].left=Philostatus[i].right=0;
 
	while(compltedPhilo<n){
			for(i=0;i<n;i++)
            goForDinner(i);
		printf("\nTill now num of philosophers completed dinner are %d\n\n",compltedPhilo);
	}
 
	return 0;
}
// code by lakshay singhwal

Producer Consumer Problem (Synchronization)

#include<stdio.h>
#include<stdlib.h>
 
int mutex=1,full=0,empty=3,x=0;
 
int main()
{
	int n;
	void producer();
	void consumer();
	int wait(int);
	int signal(int);
	while(1)
	{
		scanf("%d",&n);
		switch(n)
		{
			case 1:	if((mutex==1)&&(empty!=0))
						producer();
					else
						printf("\nBuffer is full!!");
					break;
			case 2:	if((mutex==1)&&(full!=0))
						consumer();
					else
						printf("\nBuffer is empty!!");
					break;
			case 3:
					exit(0);
					break;
		}
	}
	
	return 0;
}
 
int wait(int s)
{
	return (--s);
}
 
int signal(int s)
{
	return(++s);
}
 
void producer()
{
	mutex=wait(mutex);
	full=signal(full);
	empty=wait(empty);
	x++;
	printf("\nProducer produces the item %d",x);
	mutex=signal(mutex);
}
 
void consumer()
{
	mutex=wait(mutex);
	full=wait(full);
	empty=signal(empty);
	printf("\nConsumer consumes item %d",x);
	x--;
	mutex=signal(mutex);
}
//code by lakshay singhwal
Design a site like this with WordPress.com
Get started