April 26, 2019

//FCFS

#include<stdio.h>

struct
{
int at,bt,st,et,tat,wt,pname;
}fcfs[20],temp;
void main()
{
int i,n,elt=0;
float avgtat=0,avgwt=0;
printf("Enter the no.of processes: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter the processname: ");
scanf("%d",fcfs[i].pname);
printf("Enter the arrival time: ");
scanf("%d",fcfs[i].at);
printf("Enter the burst time: ");
scanf("%d",fcfs[i].bt);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(fcfs[i].at>fcfs[j].at)
{
temp=fcfs[i];
fcfs[i]=fcfs[j];
fcfs[j]=temp;
}
}
}
fcfs[0].st=fcfs[0].at;
fcfs[0].et=fcfs[0].st+fcfs[0].bt;
fcfs[0].wt=0;
fcfs[0].tat=fcfs[0].et-fcfs[0].at;
elt=fcfs[0].et;
for(i=0;i<n;i++)
{
if(fcfs[i].at<elt)
{
fcfs[i].st=elt;
}
else
{
fcfs[i].st=fcfs[i].at;
fcfs[i].et=fcfs[i].st+fcfs[i].bt;
fcfs[i].wt=fcfs[i].st-fcfs[i].at;
fcfs[i].tat=fcfs[i].et-fcfs[i].at;
elt=fcfs[i].et;
}
}
for(i=0;i<n;i++)
{
avgtat=avtat+fcfs[i].tat;
avgwt=avwt+fcfs[i].wt;
}
printf("\nPName:\tAT:\tBT:\tST:\tCT:\tTAT:\tWT:\n");
for(i=0;i<n;i++)
{
printf("\n%d\t%d\t%d\t%d\t%d\t%d\t%d\n",fcfs[i].pname,fcfs[i].at,fcfs[i].bt,fcfs[i].st,fcfs[i].et,fcfs[i].tat,fcfs[i].wt);
}
printf("Avg tat: %d",avgtat);
printf("Avg wt: %d",avgwt);
}


//SJF

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

struct process
{
    int Pid;
    int AT,BT,ST,ET,WT,TAT;
    int complete;
}sjf[20],temp1,temp2;

void main()
{
    int n,i,j,elt=0;
    float avgtat=0,avgwt=0,tavgtat=0,tavgwt=0;
    printf("Enter the no.of processes: ");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("Enter the Pid: ");
        scanf("%d",&sjf[i].Pid);
        printf("Enter the Arrival time: ");
        scanf("%d",&sjf[i].AT);
        printf("Enter the Burst time: ");
        scanf("%d",&sjf[i].BT);
    }
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;i<n;i++)
        {
            if(sjf[i].AT>sjf[j].AT)
            {
               temp1=sjf[i];
               sjf[i]=sjf[j];
               sjf[j]=temp1;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        sjf[i].complete=0;
    }
    sjf[0].ST=sjf[0].AT;
    sjf[0].ET=sjf[0].ST+sjf[0].BT;
    sjf[0].WT=0;
    sjf[0].TAT=sjf[i].ET-sjf[0].AT;
    elt=sjf[0].ET;
    for(i=1;i<n;i++)
    {
        for(j=i+1;i<n;i++)
        {
            if(sjf[i].BT>sjf[j].BT)
            {
               temp2=sjf[i];
               sjf[i]=sjf[j];
               sjf[j]=temp2;
            }
        }
    }
    for(i=1;i<n;i++)
    {
        if(sjf[i].AT<=elt)
        {
            sjf[i].ST=elt;
            sjf[i].ET=sjf[i].ST+sjf[i].BT;
            sjf[i].WT=sjf[i].ST-sjf[i].AT;
            sjf[i].TAT=sjf[i].ET-sjf[i].AT;
            sjf[i].complete=1;
            elt=sjf[i].ET;
        }
        else
        {
            sjf[i].ST=sjf[i].AT;
            sjf[i].ET=sjf[i].ST+sjf[i].BT;
            sjf[i].WT=sjf[i].ST-sjf[i].AT;
            sjf[i].TAT=sjf[i].ET-sjf[i].AT;
            sjf[i].complete=1;
            elt=sjf[i].ET;
        }
    }
    for(i=0;i<n;i++)
    {
        avgwt=avgwt+sjf[i].WT;
        avgtat=avgtat+sjf[i].TAT;
    }
    tavgtat=avgtat/n;
    tavgwt=avgwt/n;
    printf("\nPid:\tAT:\tBT:\tST:\tCT:\tWT\tTAT\n");
    for(i=0;i<n;i++)
    {
        printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sjf[i].Pid,sjf[i].AT,sjf[i].BT,sjf[i].ST,sjf[i].ET,sjf[i].WT,sjf[i].TAT);
    }
    printf("Average WT: %f\n",tavgwt);
    printf("Average TAT: %f",tavgtat);
}


//Prio

#include<stdio.h>

struct process
{
    int Pid;
    int AT,BT,ST,ET,WT,TAT;
    int prio;
    int complete;
}psc[20],temp1,temp2;

void main()
{
    int i,j,n,elt=0;
    float avgwt,avgtat,tavgwt=0,tavgtat=0;
    printf("Enter the no.of processes: ");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("Enter the process name: ");
        scanf("%d",&psc[i].Pid);
        printf("Enter the Arrival time: ");
        scanf("%d",&psc[i].AT);
        printf("Enter the Burst time: ");
        scanf("%d",&psc[i].BT);
        printf("Enter the Priority: ");
        scanf("%d",&psc[i].prio);
    }
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(psc[i].AT>psc[j].AT)
            {
                temp1=psc[i];
                psc[i]=psc[j];
                psc[j]=temp1;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        psc[i].complete=0;
    }
    psc[0].ST=psc[0].AT;
    psc[0].ET=psc[0].ST+psc[0].BT;
    psc[0].WT=0;
    psc[0].TAT=psc[0].ET-psc[0].AT;
    elt=psc[0].ET;

    for(i=1;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(psc[i].prio>psc[j].prio)
            {
                temp2=psc[i];
                psc[i]=psc[j];
                psc[j]=temp2;
            }
        }
    }

    for(i=1;i<n;i++)
    {
        if(psc[i].AT<=elt)
        {
            psc[i].ST=elt;
            psc[i].ET=psc[i].ST+psc[i].BT;
            psc[i].WT=psc[i].ST-psc[i].AT;
            psc[i].TAT=psc[i].ET-psc[i].AT;
            psc[i].complete=1;
            elt=psc[i].ET;
        }
        else
        {
            psc[i].ST=psc[i].AT;
            psc[i].ET=psc[i].ST+psc[i].BT;
            psc[i].WT=psc[i].ST-psc[i].AT;
            psc[i].TAT=psc[i].ET-psc[i].AT;
            psc[i].complete=1;
            elt=psc[i].ET;
        }
    }
    for(i=0;i<n;i++)
    {
        avgwt=avgwt+psc[i].WT;
        avgtat=avgtat+psc[i].TAT;
    }
    tavgwt=avgwt/n;
    tavgtat=avgtat/n;
    printf("\nPid:\tPrio\tAT:\tBT:\tST:\tCT:\tWT:\tTAT:\n");
    for(i=0;i<n;i++)
    {
        printf("%d\t%d\t%d\t%d\t%d\t%d\t%d%d\n",psc[i].Pid,psc[i].prio,psc[i].AT,psc[i].BT,psc[i].ST,psc[i].ET,psc[i].WT,psc[i].TAT);
    }
    printf("Average WT: %f\n",tavgwt);
    printf("Average TAT: %f",tavgtat);
}


//RR

#include<stdio.h>

struct process
{
    int Pid;
    int AT,BT,ST,ET,WT,TAT;
}p[20],temp,r[20];

void main()
{
    int i,j,n,burst[20],QT,elt=0;
    float avgwt=0,avgtat=0;
    printf("Enter the no.of processes: ");
    scanf("%d",&n);
    printf("Enter the time quantum: ");
    scanf("%d",&QT);
    for(i=0;i<n;i++)
    {
        printf("Enter the Pid: ");
        scanf("%d",&p[i].Pid);
        printf("Enter the Arrival time: ");
        scanf("%d",&p[i].AT);
        printf("Enter the Burst time: ");
        scanf("%d",&p[i].BT);
    }
    for(i=0;i<n;i++)
    {
        r[i].BT=p[i].BT;
    }
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            temp=p[i];
            p[i]=p[j];
            p[j]=temp;
        }
    }
    p[0].ST=p[0].AT;
    for(i=0;i<n;i++)
    {
        if(p[i].BT>QT)
        {
            p[i+1].ST=p[i].ST+QT;
        }
        else
        {
            p[i+1].ST=p[i].ST+p[i].BT;
        }
    }
    elt=p[0].ST;
    for(i=0;i<n;i++)
    {
        burst[i]=p[i].BT;
    }
    for(i=0;i<n;i++)
    {
        if(p[i].BT==0)
        {
            continue;
        }
        if(p[i].BT>=QT)
        {
            p[i].BT=p[i].BT-QT;
            elt=elt+QT;
            p[i].ET=elt;
            continue;
        }
        else if(p[i].BT>=0&&p[i].BT<QT)
        {
            elt=elt+p[i].BT;
            p[i].BT=0;
            p[i].ET=elt;
        }
    }
    for(i=0;i<n;i++)
    {
        p[i].TAT=p[i].ET-p[i].AT;
        p[i].WT=p[i].TAT-burst[i];
        avgtat=avgtat+p[i].TAT;
        avgwt=avgwt+p[i].WT;
    }
    avgtat=avgtat/n;
    avgwt=avgwt/n;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if(p[j].Pid>p[j+1].Pid)
            {
                temp=p[j];
                p[j]=p[j+1];
                p[j+1]=temp;
            }
        }
    }
    printf("\nPid:\tAT:\tBT:\tST:\tCT:\tWT:\tTAT:\n");
    for(i=0;i<n;i++)
    {
        printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n",p[i].Pid,p[i].AT,p[i].BT,p[i].ST,p[i].ET,p[i].WT,p[i].TAT);
    }
    printf("Average WT= %f",avgwt);
    printf("Average TAT= %f",avgtat);
}


//Pipe

#include<stdio.h>
#include<unistd.h>
#include<string.h>

void main()
{
int id,fd1[2],fd2[2],c,cnt;
char s[100],d[100];
pipe(fd1);
pipe(fd2);
id=fork();
if(id==0)
{
printf("\nWithin child\n");
close(fd1[0]);
close(fd2[1]);
printf("\nString: ");
gets(s);
write(fd1[1],s,100);
sleep(2);
read(fd2[0],&cnt,sizeof(int));
printf("\nWithin child\n");
printf("Length= %d",cnt);
}
else
{
printf("\nWithin parent\n");
close(fd1[1]);
close(fd2[0]);
read(fd1[0],d,100);
printf("Message is %s",d);
c=strlen(d);
write(fd2[1],&c,sizeof(int));
wait(id);
}
}

//MsgSender

#include<stdio.h>
#include<string.h>
#include<sys/ipc.h>
#include<sys/msg.h>
#include<sys/types.h>

struct st
{
long mtype;
char text[25];
}new,rvd;

void main()
{
int id,ida;
new.mtype=1;
printf("Enter the msg: ");
gets(new.text);
id=msgget(1230, IPC CREAT | 0666);
int length=strlen(new.text)+1;
msgsnd(id,&new,length,0);
printf("Msg %s sent",new.text);
sleep(20);
ida=msgget(1240, IPC CREAT | 0666);
msgrcv(ida,&rvd,sizeof(rvd),1,0);
printf("Msg %s recieved",rvd.text);
if(strcmp(new.text,rvd.text)==0)
printf("Palindrome");
else
printf("Not palindrome");
}

//MsgRcvr

#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/ipc.h>
#include<sys/msg.h>
#include<sys/types.h>

struct st
{
long mtype;
char text[20];
}new1,new2;

void main()
{
int id;
id=msgget(1230,IPC CREAT | 0666);
msgrcv(id,&new1,sizeof(new1)-sizeof(long),1,0);
printf("Msg recieved %s",new1.text);
int i;
new2.mtype=1;
id=msgget(1240,IPC CREAT | 0666);
int len=strlen(new1.text);
int k=0;
for(i=len-1;i>=0;i--,k++)
new2.text[k]=new2.text[i];
new2.text[k]='\0';
int length=strlen(new2.text)+1;
msgsnd(id,&new2,length,0);
printf("Msg %s sent",new2.text);
}


//ShmSndr

#include<stdio.h>
#include<sys/shm.h>
#include<sys/ipc.h>
#include<sys/types.h>

void main()
{
int id,ida,idb;
char *d,*c,*con;
id=shmget(4890,5,IPC CREAT | 0600);
ida=shmget(4880,5,IPC CREAT | 0600);
c=shmat(id,NULL,0);
printf("Enter the 1st string: ");
scanf("%s",&c);
print("Msg a sent!");
shmdt(c);
d=shmat(id,NULL,0);
printf("Enter the 2nd string: ");
scanf("%s",&d);
printf("Msg b sent!!");
shmdt(d);
sleep(20);
idb=shmget(4860,5,IPC CREAT | 0600);
con=shmat(idb,NULL,0);
printf("The concatenated string is: %s",con);
}

//ShmRcvr

#include<stdio.h>
#include<sys/ipc.h>
#include<sys/shm.h>
#include<sys/types.h>
#include<string.h>

void main()
{
int ida,idb,id;
char *d,*c,*con,cont[50],*te;
id=shmget(4890,5,IPC CREAT | 0600);
c=shmat(id,NULL,0);
printf("1st msg recieved %s",c);
shmctl(id,IPC RMID,NULL);
ida=shmget(4880,5,IPC CREAT | 0600);
d=shmat(ida,NULL,0);
printf("2nd msg recieved %s",d);
shmctl(ida,IPC RMID,NULL);
int i,count=0;
idb=shmget(4860,5,IPC CREAT | 0600);
con=shmat(idb,NULL,0);
while(*c)
{
con[count++]=*c++;
}
while(*d)
{
con[count++]=*d++;
}
con[count]='\0';
printf("Concatenated string sent");
}

//Mutex

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<pthread.h>

struct
{
    pthread_mutex_t m1;
    int data;
}s;

struct
{
    pthread_mutex_t m2;
    pthread_cond_t c;
    int f;
}r;

void *consumer(void *arg);
void *producer(void *arg);
int main()
{
    pthread_t t1,t2;
    pthread_create(&t1,NULL,producer,NULL);
    pthread_create(&t2,NULL,consumer,NULL);
    pthread_join(t1,NULL);
    pthread_join(t2,NULL);
    printf("\n");
}

void *producer(void *arg)
{
    int i;
    for(i=1;i<=10;i++)
    {
        pthread_mutex_lock(&r.m2);
        if(r.f==1)
        {
            pthread_cond_wait(&r.c,&r.m2);
        }
        pthread_mutex_unlock(&r.m2);
        pthread_mutex_lock(&s.m1);
        s.data=i;
        printf("\nProduced item is %d",i);
        pthread_mutex_unlock(&s.m1);
        pthread_mutex_lock(&r.m2);
        r.f=1;
        pthread_cond_signal(&r.c);
        pthread_mutex_unlock(&r.m2);
        sleep(1);
    }
}

void *consumer(void *arg)
{
    int i;
    for(i=1;i<=10;i++)
    {
        pthread_mutex_lock(&r.m2);
        if(r.f==1)
        {
            pthread_cond_wait(&r.c,&r.m2);
        }
        pthread_mutex_unlock(&r.m2);
        pthread_mutex_lock(&s.m1);
        s.data=i;
        printf("\nConsumed item is %d",s.data);
        pthread_mutex_unlock(&s.m1);
        pthread_mutex_lock(&r.m2);
        r.f=0;
        pthread_cond_signal(&r.c);
        pthread_mutex_unlock(&r.m2);
        sleep(1);
    }
}

//Semaphore

#include<stdio.h>
#include<unistd.h>
#include<semaphore.h>
#include<stdlib.h>
#include<pthread.h>

int buf[5],f,r;
sem_t mutex,full,empty;

void *produce(void *arg)
{
    int i;
    for(i=1;i<=10;i++)
    {
        sem_wait(&empty);
        sem_wait(&mutex);
        printf("\nProduced item: %d",i);
        buf[(++r)%5]=i;
        //sleep(1);
        sem_post(&mutex);
        sem_post(&full);
    }
}

void *consume(void *arg)
{
    int item,i;
    for(i=1;i<=10;i++)
    {
        sem_wait(&full);
        sem_wait(&mutex);
        item=buf[(++r)%5];
        printf("\nConsumed item: %d",item);
        //sleep(1);
        sem_post(&mutex);
        sem_post(&empty);
    }
}

main()
{
    pthread_t tid1,tid2;
    sem_init(&mutex,0,1);
    sem_init(&full,0,0);
    pthread_join(tid1,NULL);
    pthread_join(tid2,NULL);
}


//FIFO

#include<stdio.h>

void main()     //pnr fp ffff fp af iai fjcf ppp
{
int count=0,page[20],frame[20],n,f,i,j,k,avail;
printf("Enter the no.of pages: ");
scanf("%d",&n);
printf("Enter the reference strings: ");
for(i=0;i<n;i++)
{
scanf("%d",&page[i]);
}
printf("Enter the no.of frames: ");
scanf("%d",&f);
for(i=0;i<f;i++)
{
frame[i]=-1;
}
printf("\nReference string:\t\tPage frame:\n");
printf("\n                 \t\t           \n");  //pnr fp ffff fp af iai fjcf ppp
for(i=0;i<n;i++)
{
printf("%d",page[i]);
avail=0;
for(k=0;k<f;k++)
{
if(frame[k]==page[i])
avail=1;
if(avail==0)
{
frame[j]=page[i];
j=(j++)%f;
count++;
for(k=0;k<f;k++)
printf("%d",frame[k]);
}
}
printf("\n");
}
printf("\nPage fault: %d",count);
}

//LRU

#include<stdio.h>

void main()
{
    int p[20],page[50],count=0,c1,d,f,i,j,k=0,n,r,t,b[20],c2[20];
    printf("Enter no of pages:");
    scanf("%d",&n);
    printf("Enter the reference string:");
    for(i=0;i<n;i++)
        scanf("%d",&page[i]);
    printf("Enter no of frames:");
    scanf("%d",&f);
    p[k]=page[k];
    printf("\n\t%d\n",p[k]);
    count++;
    k++;
    for(i=1;i<n;i++)
    {
        c1=0;
        for(j=0;j<f;j++)
        {
            if(page[i]!=p[j])
            c1++;
        }
        if(c1==f)
        {
            count++;
            if(k<f)
            {
                p[k]=page[i];
                k++;
                for(j=0;j<k;j++)
                printf("\t%d",p[j]);
                printf("\n");
            }
            else
            {
                for(r=0;r<f;r++)
                {
                    c2[r]=0;
                    for(j=i-1;j<n;j--)
                    {
                        if(p[r]!=page[j])
                        c2[r]++;
                        else
                        break;
                    }
                }
                for(r=0;r<f;r++)
                    b[r]=c2[r];
                for(r=0;r<f;r++)
                {
                    for(j=r;j<f;j++)
                    {
                        if(b[r]<b[j])
                        {
                            t=b[r];
                            b[r]=b[j];
                            b[j]=t;
                        }
                    }
                }
                for(r=0;r<f;r++)
                {
                    if(c2[r]==b[0])
                    p[r]=page[i];
                    printf("\t%d",p[r]);
                }
                printf("\n");
            }
        }
    }
printf("\nThe no of page faults is %d",count);
}


//Banker

#include<stdio.h>

void main()
{
    int n,m,i,j,t=0,q=0;
    int total[20],max[20][20],alloc[20][20],avail[20],need[20][20],work[20],finish[20],req[20],safe[20],flag;
    printf("Enter the no.of processes: ");
    scanf("%d",&n);
    printf("Enter the no.of resources: ");
    scanf("%d",&m);
    printf("Enter the total resource values: ");
    for(i=0;i<m;i++)
    {
        printf("\n\tResource %d: ",i+1);
        scanf("%d",&total[i]);
    }
    printf("\nEnter the maximum resource required: ");
    for(i=0;i<n;i++)
    {
        printf("\nEnter the value for process %d: ",i);
        for(j=0;j<m;j++)
        {
            printf("\n\tResource %d: ",j+1);
            scanf("%d",&max[i][j]);
        }
    }
    printf("\nEnter the allocated resource required: ");
    for(i=0;i<n;i++)
    {
        printf("\nEnter the value for process %d: ",i);
        for(j=0;j<m;j++)
        {
            printf("\n\tResource %d: ",j+1);
            scanf("%d",&alloc[i][j]);
        }
    }
    printf("\nMaximum\n");
    for(i=0;i<n;i++)
    {
        printf("\n");
        for(j=0;j<m;j++)
        {
            printf("\t%d",max[i][j]);
        }
    }
    printf("\nAllocation\n");
    for(i=0;i<n;i++)
    {
        printf("\n");
        for(j=0;j<m;j++)
        {
            printf("\t%d",alloc[i][j]);
        }
    }

    int sum;
    for(j=0;j<m;j++)
    {
        sum=0;
        for(i=0;i<n;i++)
        {
            sum=sum+alloc[i][j];
        }
        avail[j]=total[j]-sum;
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            need[i][j]=max[i][j]-alloc[i][j];
        }
    }
    printf("\n");
    printf("\nAvailable\n");
    for(i=0;i<m;i++)
    {
        printf("\t%d",avail[i]);
    }
    printf("\n");
    printf("\nNeed\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            printf("\t%d",need[i][j]);
        }
    }
    void impwork()
    {
        int c=0;
        for(i=0;i<n;i++)
            work[i]=avail[i];
        for(i=0;i<n;i++)
            finish[i]=0;
        for(q=0;q<n;q++)
        {
            t=0;
            for(i=0;i<n;i++)
            {
                if(finish[i]==0)
                {
                    t=1;
                    for(j=0;j<m;j++)
                    {
                        if(need[i][j]>work[j])
                            t=0;
                    }
                    if(t==1)
                    {
                        for(j=0;j<m;j++)
                            work[j]=work[j]+alloc[i][j];
                        finish[i]=1;
                        safe[c++]=i;
                    }
                }
            }
        }
        flag=0;
        for(i=0;i<n;i++)
        {
            if(finish[i]==0)
            {
                flag=1;
                break;
            }
        }
        if(flag==0)
        {
            printf("\nSafe sequence: ");
            for(i=0;i<c;i++)
                printf("P%d\t",safe[i]);
        }
        else
        {
            printf("\nNo safe sequence obtained");
        }
    }
    impwork();
        printf("\nEnter request for process?? Press 1 to continue: ");
        scanf("%d",&t);
        while(t==1)
        {
            printf("\nEnter the process no for request: ");
            scanf("%d",&q);
            printf("\nEnter the request resources: ");
            j=0;
            for(i=0;i<m;i++)
            {
                printf("\n\tResource %d: ",i+1);
                scanf("%d",&req[i]);
                if(req[i]>avail[i])
                {
                    j=1;
                }
            }
            if(j==1)
            {
                printf("\nRequest cannot be completed, resources are not available");
            }
            else
            {
                for(i=0;i<m;i++)
                {
                    avail[i]=avail[i]-req[i];
                    alloc[q][i]=alloc[q][i]+req[i];
                    need[q][i]=need[q][i]-req[i];
                }
                printf("\nRequest is accepted");
                impwork();
                if(flag==0)
                {
                    printf("\nRequest granted");
                }
                else
                {
                    printf("\nRequest cannot be granted");
                    avail[i]=avail[i]+req[i];
                    alloc[q][i]=alloc[q][i]-req[i];
                    need[q][i]=need[q][i]+req[i];
                }
            }
            printf("\nContinue receiving requests, press 1 to continue: ");\
            scanf("%d",&t);
        }
}