Professional Documents
Culture Documents
Page | 1
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
APPLICATION OF QUEUE
Page | 2
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
Page | 3
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
INSERT ALGORITHM:
Write OVERFLOW
Goto step 4
[END OF IF]
ELSE
[END OF IF]
Step 4: EXIT
DELETE ALGORITHM:
Page | 4
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
ITEM=QUEUE[FRONT]
FRONT=FRONT+1
Step 4 Exit
EXECUTIVE ALGORITHM:
Algorithm executive()
If choice=2 do delete
Step 4 Exit
COMPLAIN ALGORITHM:
Algorithm complain()
Step 5 Exit
Page | 5
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
DELAY ALGORITHM:
Step 4 Exit
EXPENSIVE_CALL ALGORITHM:
[infinite loop]
Step 4 pthread_cond_signal(&done)
Step 6 Exit
DO_OR_TIMEOUT ALGORITHM:
Page | 6
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
Step 1 pthread_mutex_lock(&calculating)
Step 4 pthread_create(&tid,NULL,expensive_call,NULL)
production code]
if !err
pthread_mutex_unlock(&calculating)
Step 7 Exit
Page | 7
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
#include <conio.h>
#include <pthread.h>
#include <errno.h>
#include <string.h>
#define MAX 20
void executive();
void insert();
void delete();
void returnprev();
void delay(int );
Page | 8
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
int store[MAX];
int rear = - 1;
int front = - 1;
main()
int choice,lang,i;
while (1)
scanf("%d",&lang);
Page | 9
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
scanf("%d", &choice);
if(choice==NULL)
delay(1);
if(i+1>10)
switch (choice)
case 1:
executive();
break;
Page | 10
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
case 2:
complain();
break;
case 3:
returnprev();
break;
case 4:
memset(&max_wait, 0, sizeof(max_wait));
max_wait.tv_sec = 20;
do_or_timeout(&max_wait);
case 5:
exit(1);
default:
Page | 11
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
void executive()
int choice;
do
scanf("%d",&choice);
switch(choice)
case 1:
insert();
break;
case 2:
delete();
break;
}while(choice<3);
Page | 12
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
void insert()
int num;
scanf("%d",&num);
if (rear == MAX - 1)
front=rear=0;
else
rear = rear + 1;
Page | 13
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
store[rear] = num;
void delete()
return ;
else
front = front + 1;
if(front>rear)
front=rear=-1;
Page | 14
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
void complain ()
scanf("%s",number);
scanf("%s", name);
scanf("%s",c);
printf("\n WE ARE SORRY FOR THE INCONVINIENCE.WE WILL TRY TO SOLVE YOUR PROBLEM!");
void returnprev()
int i;
Page | 15
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
scanf("%d",&i);
if(i==1)
insert();
else if(i==2)
complain();
else
printf("INVALID!!");
Page | 16
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
int oldtype;
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype);
* infinitely loop
*/
for (;;) {}
pthread_cond_signal(&done);
return NULL;
Page | 17
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
pthread_t tid;
int err;
pthread_mutex_lock(&calculating);
clock_gettime(CLOCK_REALTIME, &abs_time);
abs_time.tv_sec += max_wait->tv_sec;
abs_time.tv_nsec += max_wait->tv_nsec;
*/
if (err == ETIMEDOUT)
if (!err)
pthread_mutex_unlock(&calculating);
Page | 18
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
return err;
EXECUTION SEQUENCE:
OUTPUT:
Page | 19
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
Enter choice:1
Page | 20
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
Enter choice:1
Enter choice:1
Enter choice:1
Enter choice:1
Page | 21
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
Enter choice:2
Enter choice:2
Enter choice:3
Page | 22
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
WE ARE SORRY FOR THE INCONVINIENCE.WE WILL TRY TO SOLVE YOUR PROBLEM!
Enter choice:3
Page | 23
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
VISUAL REPRESENTATION:
Page | 24
NAME:SOMOJIT DAS DEPT:ECE(SEM 3) ROLL NO:14
Page | 25