Welcome! link!
#!/bin/bash
echo "Enter First Number:"
read xecho "Enter Second Number:"
read y
(( sum=x+y ))
echo "Result of addition:$sum"
chezhian@chezhian-desktop:~$ bash ex2.sh
Enter First Number : 25
Enter Second Number : 25
Result of addition : 50
#include
main()
{
int i,j,n,bu[10],wa[10],tat[10],t,ct[10],max;
float awt=0,att=0,temp=0;
printf("Enter the no of processes:"); scanf("%d",&n);
for(i=0;i { printf("\n Enter Burst Time for process %d:", i+1); scanf("%d",&bu[i]); ct[i]=bu[i]; } printf("\n Enter the size of time slice:"); scanf("%d",&t); max=bu[0]; for(i=1;i if(max max=bu[i]; for(j=0;j<(max/t)+1;j++) for(i=0;i if(bu[i]!=0) if(bu[i]<=t) { tat[i]=temp+bu[i]; temp=temp+bu[i]; bu[i]=0; } else {
bu[i]=bu[i]-t; temp=temp+t; } for(i=0;i { wa[i]=tat[i]-ct[i]; att+=tat[i]; awt+=wa[i]; } printf("\n Average Turnaround time is:%f",att/n); printf("\n Average Waiting time is:%f ",awt/n); printf("\n\tPROCESS\t BURST TIME \t WAITING TIME\tTURNAROUND TIME\n"); for(i=0;i printf("\t%d \t %d \t\t %d \t\t %d \n",i+1,ct[i],wa[i],tat[i]); getch(); } Enter the no of processes:3 Enter Burst Time for process 0: 24 Enter Burst Time for process 1: 3 Enter Burst Time for process 2: 3 Enter the size of time slice:3 PROCESS BURST TIME WAITING TIME TURNAROUND P0 24 6 30 P1 3 4 7 P2 3 7 10 Average Turnaround time is : 15.666667 Average Waiting time is : 5.666667 #include int main() { int n,j,temp,temp1,temp2,pr[10],b[10],t[10],w[10],p[10],i; float att=0,awt=0;
for(i=0;i<10;i++) { b[i]=0;w[i]=0; } printf("enter the number of process"); scanf("%d",&n); printf("enter the burst times"); for(i=0;i { scanf("%d",&b[i]); p[i]=i; } for(i=0;i { for(j=i;j { if(b[i]>b[j]) { temp=b[i]; temp1=p[i]; b[i]=b[j]; p[i]=p[j]; b[j]=temp; p[j]=temp1; } } } w[0]=0; for(i=0;i w[i+1]=w[i]+b[i]; for(i=0;i { t[i]=w[i]+b[i]; awt=awt+w[i]; att=att+t[i]; } awt=awt/n; att=att/n; printf("\n\t process \t waiting time \t turn around time \n"); for(i=0;i printf("\t p[%d] \t %d \t\t %d \n",p[i],w[i],t[i]); printf("the average waitingtimeis %f\n",awt); printf("the average turn around time is %f\n",att); return 1; } Enter the number of process:5 Enter the burst times: 2 4 5 6 8 PROCESS WAITING TIME TURNAROUND P[0] 0 2 P[1] 2 6 P[2] 6 11 P[3] 11 17 P[4] 17 25 Average Turnaround time is : 7.200000 Average Waiting time is : 12.200000 #include int main() { int n,a[10],b[10],t[10],w[10],g[10],i,m; float att=0,awt=0; for(i=0;i<10;i++) { a[i]=0; b[i]=0; w[i]=0; g[i]=0; } printf("Enter number of process:") scanf("%d",&n); printf("Enter burst times:"); for(i=0;i scanf("%d",&b[i]); printf("\n Enter arrival times:"); for(i=0;i scanf("%d",&a[i]); g[0]=0; for(i=0;i<10;i++) g[i+1]=g[i]+b[i]; for(i=0;i { w[i]=g[i]-a[i]; t[i]=g[i+1]-a[i]; awt=awt+w[i]; att=att+t[i]; } awt =awt/n; att=att/n; printf("\n\tProcess\tWaiting time\t Turn arround time\n"); for(i=0;i { printf("\tp%d\t\t%d\t\t%d\n",i,w[i],t[i]); } printf("Average waiting time: %f\n",awt); printf("Average turn around time:%f\n",att); } Enter number of process: 4 Enter burst times: 4 9 8 3 Enter arrival times: 0 2 4 3 Process Waiting time Turn arround time p0 0 p1 2 11 p2 9 17 p3 18 21 Average waiting time : 7.250000 Average turn around time : 13.250000 #include int main() { int bt[20],p[20],wt[20],tat[20],pr[20],i,j,n,total=0,pos,temp,avg_wt,av g_tat; printf("Enter Total Number of Process:"); scanf("%d",&n); printf("\nEnter Burst Time and Priority\n"); for(i=0;i { printf("\nP[%d]\n",i+1); printf("Burst Time:"); scanf("%d",&bt[i]); printf("Priority:"); scanf("%d",&pr[i]); p[i]=i+1; } for(i=0;i { pos=i; for(j=i+1;j { if(pr[j] pos=j; } temp=pr[i]; pr[i]=pr[pos]; pr[pos]=temp; temp=bt[i]; bt[i]=bt[pos]; bt[pos]=temp; temp=p[i]; p[i]=p[pos]; p[pos]=temp; } wt[0]=0; for(i=1;i { wt[i]=0; for(j=0;j
wt[i]+=bt[j]; total+=wt[i]; } avg_wt=total/n; total=0; printf("\nProcess\t Burst Time \tWaiting Time\tTurnaround Time"); for(i=0;i { tat[i]=bt[i]+wt[i]; total+=tat[i]; printf("\nP[%d]\t\t%d\t\t%d\t\t\t%d",p[i],bt[i],wt[i],tat[i]); } avg_tat=total/n; //average turnaround time printf("\n\nAverage Waiting Time=%d",avg_wt); return 0; } Enter number of process: 4 Enter burst times: 4 9 8 3 Enter arrival times: 0 2 4 3 Process Waiting time Turn arround time p0 0 4 p1 2 11 p2 9 17 p3 18 21 Average waiting time : 7.250000 Average turn around time : 13.250000 #include int main() { int n,i,j,b[20],sb[20],t[20],x,c[20][20]; printf("Enter no.of files:"); scanf("%d",&n); for(i=0;i { printf("Enter no. of blocks occupied by file%d",i+1); scanf("%d",&b[i]); printf("Enter the starting block of file%d",i+1); scanf("%d",&sb[i]); t[i]=sb[i]; for(j=0;j
c[i][j]=sb[i]++; } printf("Filename\tStart lock\tlength\n"); for(i=0;i printf("%d\t %d \t%d\n",i+1,t[i],b[i]); printf("Enter file name:"); scanf("%d",&x); printf("File name is:%d",x); printf("length is:%d",b[x-1]); printf("blocks occupied:"); for(i=0;i
printf("%4d",c[x-1][i]); return 0; } Enter no.of files: 2 Enter no. of blocks occupied by file1 : 4 Enter the starting block of file1 : 2 Enter no. of blocks occupied by file2 : 10 Enter the starting block of file2 : 5 Filename Start block length 1 2 4 2 5 10 Enter file name: Sai File name is:12803 length is:0 blocks occupied #include int main() { int n,m[20],i,j,ib[20],b[20][20]; printf("Enter no. of files:"); scanf("%d",&n); for(i=0;i { printf("Enter index block :",i+1); scanf("%d",&ib[i]); printf("Enter blocks occupied by file%d:",i+1); scanf("%d",&m[i]); printf("enter blocks of file%d:",i+1); for(j=0;j scanf("%d",&b[i][j]); } printf("\nFile\t index\tlength\n"); for(i=0;i printf("%d\t%d\t%d\n",i+1,ib[i],m[i]); printf("blocks occupiedare:"); for(i=0;i { printf("fileno%d",i+1); for(j=0;j printf("\t%d--->%d\n",ib[i],b[i][j]); printf("\n"); } return 0; } Enter no. of files :2 Enter index block :3 Enter blocks of file1: 9 4 6 7 Enter index block :5 10 8 File index length 1 3 4 2 5 2 blocks occupied are:fileno1 3--->9 3--->4 3--->6 3--->7 Fileno2 5--->10 5--->8 #include struct file { char fname[10]; int start,size,block[10]; }f[10]; int main() { int i,j,n; printf("Enter no. of files:"); scanf("%d",&n); for(i=0;i { printf("Enter file name:"); scanf("%s",&f[i].fname); printf("Enter starting block:"); scanf("%d",&f[i].start); f[i].block[0]=f[i].start; printf("Enter no.of blocks:"); scanf("%d",&f[i].size); printf("Enter block numbers:"); for(j=1;j<=f[i].size;j++) { scanf("%d",&f[i].block[j]); } } printf("File\tstart\tsize\tblock\n"); for(i=0;i { printf("%s\t%d\t%d\t",f[i].fname,f[i].start,f[i].size); for(j=1;j<=f[i].size-1;j++) printf("%d--->",f[i].block[j]); printf("%d",f[i].block[j]); printf("\n"); } return 0; } Enter no. of files:2 Enter file name:venkat Enter starting block:20 Enter no.of blocks:6 Enter block numbers: 4 12 15 45 32 25 Enter file name:rajesh Enter starting block:12 Enter no.of blocks:5 Enter block numbers:6 5 4 3 2 File start size block venkat 20 6 4--- >12--- >15 --- >45--- >32--- >25
rajesh 12 5 6--- >5--- >4--- >3 --->2 #include #include #include #include sem_t mutex; void* thread(void* arg) { //wait sem_wait(&mutex); printf("\nEntered thread\n"); //critical section sleep(4); //signal printf("\n Exit thread\n"); sem_post(&mutex); } int main() { sem_init(&mutex, 0, 1); pthread_t t1,t2; pthread_create(&t1,NULL,thread,NULL); sleep(2); pthread_create(&t2,NULL,thread,NULL); pthread_join(t1,NULL); pthread_join(t2,NULL); sem_destroy(&mutex); return 0; } Output 1: (Have semaphore mean) Entered Thread Exit thread Entered Thread Exit thread Output 2: (Don’t Have semaphore mean) Entered Thread Entered Thread Exit thread Exit thread #include main() { intmaster,s[20]; char f[20][20][20]; char d[20][20]; inti,j; printf("\n Enter number of directories:"); scanf("%d",&master); printf("\n Enter name of directories:"); for(i=0;i scanf("%s",&d[i]); printf("\n Enter the size of directories:"); for(i=0;i scanf("%d",&s[i]); printf("\n Enter the file names:"); for(i=0;i for(j=0;j scanf("%s",&f[i][j]); printf("\n"); printf("\n Directory\tsize\tfilenames"); printf("\n ********************************"); for(i=0;i { printf("\n %s\t\t%d\t",d[i],s[i]); for(j=0;j printf("%s\n\t\t\t",f[i][j]); printf("\n"); } printf("\t\n"); } Enter number of directories : 3 Enter name of directories : 1 2 3 Enter the size of directories : 3 2 1 Enter the file names : 9 8 7 6 5 4 Directory size filenames 1 3 9 8 7 2 2 6 5 3 1 4 #include struct st { char dname[10]; char sdname[10][10]; char fname[10][10][10]; int ds,sds[10]; } dir[10]; int main() { int i,j,k,n; printf("enter number of directories:"); scanf("%d",&n); for(i=0;i { printf("enter directory %d names:",i+1); scanf("%s",&dir[i].dname); printf("enter size of directories:"); scanf("%d",&dir[i].ds); for(j=0;j { printf("enter subdirectory name and size:"); scanf("%s",&dir[i].sdname[j]); scanf("%d",&dir[i].sds[j]); for(k=0;k { printf("enter file name:"); scanf("%s",&dir[i].fname[j][k]); } } } printf("\nDirname\t\tSize\tSubdirname\tSize\tFiles"); printf("\n*\n"); for(i=0;i { printf("%s\t\t%d",dir[i].dname,dir[i].ds); for(j=0;j { printf("\t%s\t\t%d\t",dir[i].sdname[j],dir[i].sds[j]); for(k=0;k printf("%s\t",dir[i].fname[j][k]); printf("\n\t\t"); } printf("\n");
} return 0; } Enter number of directories : 1 Enter directories 1 names : Kavin Enter size of directories : 1 Enter subdirectory name and size : Sai 1
Enter file name : Tamil Dirname Size Subdirname Size Files
****************************************************** Kavin 1 Sai 1 Tamil #include #include struct tree_element { char name[20]; int x, y, ftype, lx, rx, nc, level; struct tree_element *link[5]; }; int main() { int gd=DETECT,gm; node *root; root=NULL; create(&root,0,"root",0,639,320); initgraph(&gd,&gm,"c:\tc\BGI"); display(root); closegraph(); } create(node **root,int lev,char *dname,int lx,int rx,int x) { int i, gap; if(*root==NULL) { (*root)=(node *)malloc(sizeof(node)); printf("Enter name of dir/file(under %s) : ",dname); fflush(stdin); gets((*root)->name); printf("Enter 1 for Dir/2 for file :"); scanf("%d",&(*root)->ftype);
(*root)->level=lev; (*root)->y=50+lev*50; (*root)->x=x; (*root)->lx=lx; (*root)->rx=rx; for(i=0;i<5;i++) (*root)->link[i]=NULL; 37 if((*root)->ftype==1) { printf("No of sub directories/files(for %s):",(*root)->name); scanf("%d",&(*root)>nc); if((*root)->nc==0) gap=rx-lx; else gap=(rx-lx)/(*root)->nc; for(i=0;i<(*root)->nc;i++) create(&((*root)>link[i]),lev+1,(*root)>name,lx+gap*i,lx+gap*i+gap,lx+gap*i+gap/2); } (*root)->nc=0; } } display(node *root) { int i; settextstyle(2,0,4); settextjustify(1,1); setfillstyle(1,BLUE); setcolor(14); if(root !=NULL) { for(i=0;i line(root->x,root->y,root->link[i]->x,root->link[i]->y); if(root->ftype==1) bar3d(root->x-20,root->y-10,root->x+20,root>y+10,0,0); else fillellipse(root->x,root->y,20,20); outtextxy(root->x,root->y,root->name); for(i=0;i } } Enter Name of dir/file(under root) : ROOT Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for ROOT) : 2 Enter Name of dir/file(under ROOT) : USER1 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for USER1) : 1 Enter Name of dir/file(under USER1) : SUBDIR1 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for SUBDIR1): 2 Enter Name of dir/file(under USER1) : JAVA Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for JAVA) : 0 Enter Name of dir/file(under SUBDIR1) : VB Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for VB) : 0 Enter Name of dir/file(under ROOT) : USER2 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for USER2) : 2 Enter Name of dir/file(under ROOT) : A Enter 1 for Dir/2 for File : 2 Enter Name of dir/file(under USER2) : SUBDIR2 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for SUBDIR2): 2 Enter Name of dir/file(under SUBDIR2) : PPL Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for PPL) : 2 Enter Name of dir/file(under PPL) : B Enter 1 for Dir/2 for File : 2 Enter Name of dir/file(under PPL) : C Enter 1 for Dir/2 for File : 2 Enter Name of dir/file(under SUBDIR) : AI Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for AI) : 2 Enter Name of dir/file(under AI) : D Enter 1 for Dir/2 for File : 2 Enter Name of dir/file(under AI) : E Enter 1 for Dir/2 for File : 2 #include #include #include #include struct tree_element { char name[20]; int x,y,ftype,lx,rx,nc,level; struct tree_element *link[5]; }; typedef struct tree_element node; typedef struct { char from[20]; char to[20]; } link; Link L[10]; Int nofl; node * root; void main() { int gd=DETECT,gm; root=NULL; create(&root,0,"root",0,639,320); read_links(); clrscr(); initgraph(&gd,&gm,"c:\\tc\\BGI"); draw_link_lines(); display(root); getch(); closegraph(); } read_links() { int i; printf("how many links"); scanf("%d",&nofl); for(i=0;i { printf("File/dir:"); fflush(stdin); gets(L[i].from); printf("user name:"); fflush(stdin); gets(L[i].to); } } draw_link_lines() 41 { int i,x1,y1,x2,y2; for(i=0;i { search(root,L[i].from,&x1,&y1); search(root,L[i].to,&x2,&y2); setcolor(LIGHTGREEN); setlinestyle(3,0,1); line(x1,y1,x2,y2); setcolor(YELLOW); setlinestyle(0,0,1); } } search(node *root,char *s,int *x,int *y) { int i; if(root!=NULL) { if(strcmpi(root->name,s)==0) { *x=root->x; *y=root->y;
return; } else { for(i=0;i } } } create(node **root,int lev,char * dname,int lx,int rx,int x) { int i,gap; if(*root==NULL) { (*root)=(node *)malloc(sizeof(node)); printf("enter name of dir/file(under %s):",dname); fflush(stdin); gets((*root)->name); printf("enter 1 for dir/ 2 for file:"); scanf("%d",&(*root)- >ftype); (*root)->y=50+lev*50; (*root)->x=x; (*root)->lx=lx; (*root)->rx=rx; for(i=0;i<5;i++) (*root)->link[i]=NULL; if((*root)->ftype==1) 42 { printf("no of sub directories /files (for %s):",(*root)->name); scanf("%d",&(*root)->nc); if((*root)->nc==0) gap=rx-lx; else gap=(rx-lx)/(*root)->nc; for(i=0;i<(*root)->nc;i++) create( & ( (*root)->link[i] ) , lev+1 , (*root)->name,lx+gap*i,lx+gap*i+gap,lx+gap*i+gap/2); } else (*root)->nc=0;
} } display(node *root) { int i; settextstyle(2,0,4); settextjustify(1,1); setfillstyle(1,BLUE); setcolor(14); ot!=NULL) for(i=0;i { line(root->x,root->y,root->link[i]->x,root->link[i]->y); } if(root->ftype==1) bar3d(root->x-20,root->y-10,root->x+20,root->y+10,0,0); else fillellipse(root->x,root->y,20,20); outtextxy(root->x,root->y,root->name); for(i=0;i { display(root->link[i]); } } } Enter Name of dir/file(under root) : ROOT Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for ROOT) : 2 Enter Name of dir/file(under ROOT) : USER1 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for USER1) : 1 Enter Name of dir/file(under USER1) : SUBDIR1 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for SUBDIR1): 2 Enter Name of dir/file(under USER1) : JAVA Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for JAVA) : 0 Enter Name of dir/file(under SUBDIR1) : VB Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for VB) : 0 Enter Name of dir/file(under ROOT) : USER2 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for USER2) : 2 Enter Name of dir/file(under ROOT) : A Enter 1 for Dir/2 for File : 2 Enter Name of dir/file(under USER2) : SUBDIR2 Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for SUBDIR2): 2 Enter Name of dir/file(under SUBDIR2) : PPL Enter 1 for Dir/2 for File : 1 No of subdirectories/files(for PPL) : 2 Enter Name of dir/file(under PPL) : B #include int main() { int n, m, i, j, k; n = 5; m = 3; int alloc[5][3] = { { 0, 1, 0 }, { 2, 0, 0 }, { 3, 0, 2 }, { 2, 1, 1 }, { 0, 0, 2 } }; int max[5][3] = { { 7, 5, 3 }, int avail[3] = { 3, 3, 2 }; int f[n], ans[n], ind = 0; for (k = 0; k < n; k++) { f[k] = 0; } int need[n][m]; for (i = 0; i < n; i++) { for (j = 0; j < m; j++) need[i][j] = max[i][j] - alloc[i][j]; } int y = 0; for (k = 0; k < 5; k++) { for (i = 0; i < n; i++) { if (f[i] == 0) { int flag = 0; for (j = 0; j < m; j++) { if (need[i][j] > avail[j]) { flag = 1; break; } } if (flag == 0) { ans[ind++] = i; for (y = 0; y < m; y++) avail[y] += alloc[i][y]; f[i] = 1; } } 46 } } int flag = 1; for(int i=0;i { if(f[i]==0) { flag=0; printf("The following system is not safe"); break; } } if(flag==1) { printf("Following is the SAFE Sequence\n"); for (i = 0; i < n - 1; i++) printf(" P%d ->", ans[i]); printf(" P%d", ans[n - 1]); } return (0); } Following is the SAFE Sequence P1 -> P3 -> P4 -> P0 -> P2 #include int main() { int found,flag,l,p[4][5],tp,tr,c[4][5],i,j,k=1,m[5],r[5],a[5],temp[5],sum=0; printf("Enter total no of processe scanf("%d",&tp); printf("Enter total no of resources"); scanf("%d",&tr); printf("Enter claim (Max. Need) matrix\n"); for(i=1;i<=tp;i++) { printf("process %d:\n",i); for(j=1;j<=tr;j++) scanf("%d",&c[i][j]); } printf("Enter allocation matrix\n"); for(i=1;i<=tp;i++) { printf("process %d:\n",i); for(j=1;j<=tr;j++)scanf("%d",&p[i][j]); } printf("Enter resource vector (Total resources):\n"); for(i=1;i<=tr;i++) { scanf("%d",&r[i]); } printf("Enter availability vector (available resources):\n"); for(i=1;i<=tr;i++) { scanf("%d",&a[i]); temp[i]=a[i]; } for(i=1;i<=tp;i++) { sum=0; 49 for(j=1;j<=tr;j++) { sum+=p[i][j]; } if(sum==0) { m[k]=i; k++; } } for(i=1;i<=tp;i++) { for(l=1;l if(i!=m[l]) { flag=1; for(j=1;j<=tr;j++) if(c[i][j] { flag=0; break; } } if(flag==1) { m[k]=i; k++; for(j=1;j<=tr;j++) temp[j]+=p[i][j]; } } printf("Deadlock causing processes are:"); for(j=1;j<=tp;j++) { found=0; for(i=1;i { if(j==m[i]) found=1; } if(found==0) printf("%d\t",j); } } Enter total no. of processes : 4 Enter total no. of resources : 5 Enter claim (Max. Need) matrix : 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 Enter allocation matrix : 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 00 0 0 Enter resource vector (Total resources) : 2 1 1 2 1 Enter availability vector (available resources) : 0 00 0 1 deadlock causing processes are : 2 3 #include int fr[3]; void main() { void display(); int i,j,page[12]= {2,3,2,1,5,2,4,5,3,2,5,2}; intflag1=0,flag2=0,pf=0,frsize=3,top=0; for(i=0;i<3;i++) { fr[i]=-1; } for(j=0;j<12;j++) { flag1=0; flag2=0; for(i=0;i<12;i++)<\p>
{ if(fr[i]==page[j]) { flag1=1; flag2=1; break; } } if(flag1==0) { for(i=0;i { if(fr[i]==-1) { fr[i]=page[j]; flag2=1; break; } } } if(flag2==0) { fr[top]=page[j]; top++; pf++; if(top>=frsize) top=0; } display(); } printf("Number of page faults : %d ",pf+frsize); } void display() { int i; printf("\n"); for(i=0;i<3;i++); printf("%d\t",fr[i]); } 2 -1 -1 2 3 -1 2 3 -1 2 3 1 5 3 1 5 2 1 5 2 4 5 2 4 3 2 4 3 2 4 3 5 4 3 5 2 #include int fr[3]; void main() { void display(); int p[12]={2,3,2,1,5,2,4,5,3,2,5,2},i,j,fs[3]; int index,k,l,flag1=0,flag2=0,pf=0,frsize=3; for(i=0;i<3;i++) { fr[i]=-1; } for(j=0;j<12;j++) { flag1=0; flag2=0; for(i=0;i<3;i++) { if(fr[i]==p[j]) { flag1=1; flag2=1; break; } } if(flag1==0) { for(i=0;i<3;i++) { if(fr[i]==-1) { fr[i]=p[j]; flag2=1; break; } } } if(flag2==0) { for(i=0;i<3;i++) fs[i]=0; for(k=j-1,l=1;l<=frsize-1;l++,k--) { for(i=0;i<3;i++) { if(fr[i]==p[k]) fs[i]=1; } } for(i=0;i<3;i++) { if(fs[i]==0) index=i; } fr[index]=p[j]; pf++; } display(); } printf("\n no of page faults :%d",pf+frsize); } void display() { int i; for(i=0;i<3;i++) printf("\t%d",fr[i]); } 2 -1 -1 2 3 -1 2 3 -1 2 3 1 2 5 1 2 5 1 2 5 4 2 5 4 3 5 4 3 5 2 3 5 2 3 5 2 No of page faults: 7 #include int fr[3], n, m; void display(); void main() { int i,j,p ge[20],fs[10]; int max,found=0,lg[3],index,k,l,flag1=0,flag2=0,pf=0; float pr; clrscr(); printf("Enter length of the reference string: "); scanf("%d",&n); printf("Enter the reference string: "); for(i=0;i scanf("%d",&page[i]); printf("Enter no of frames: "); scanf("%d",&m); for(i=0;i pf=m; for(j=0;j { flag1=0; flag2=0; for(i=0;i { if(fr[i]==page[j]) { flag1=1; flag2=1; break; } if(flag1==0) { for(i=0;i { if(fr[i]==-1) { fr[i]=page[j]; flag2=1; break; } } } if(flag2==0) { 59 for(i=0;i for(i=0;i for(k=j+1;k<=n;k++) { if(fr[i]==page[k]) { lg[i]=k-j; } } } found=0; for(i=0;i { if(lg[i]==0) { } } if(found==0) { max=lg[0]; index=0; for(i=0;i { if(max { max=lg[i]; index=i; } } } fr[index]=page[j]; pf++; } display(); } printf("Number of page faults : %d\n",); pr=(float)pf/n*100; rintf("Page fault rate = %f \n", pr);
} void display() int i; for(i=0;i printf("%d\t",fr[i]); } Enter length of the reference string: 12 Enter the reference string: 1 2 3 4 1 2 5 1 2 3 4 5 Enter no of frames: 3 1 -1 -1 1 2 -1 1 2 3 1 2 4 1 2 4 1 2 4 1 2 5 1 2 5 1 2 5 3 2 5 4 2 5 4 2 5 Number of page faults : 7 Page fault rate = 58.333332 #include #include #include #include #include main() { int pid,pfd[2],n,a,b,c; if(pipe(pfd)==-1) { printf("\n Error in pipe onnection\n"); exit(1); } pid=fork(); if(pid>0) { printf("\n Parent Process"); printf("\n\n\t Fibonacci Series"); printf("\n Enter the limit for the series:"); scanf("%d",&n); close(pfd[0]); write(pfd[1],&n,sizeof(n)); close(pfd[1]); exit(0); } else { close(pfd[1]); read(pfd[0],&n,sizeof(n)); printf("\n Child process"); a=0;b=1; close(pfd[0]); printf("\n Fibonacci series is:"); printf("\n\n%d\n%d",a,b); while(n>2) { c=a+b; printf("\n%d",c); a=b;b=c; n--; } } } Parent Process Fibonacci Series Enter the limit for the series : 5 Child Process Fibonacci Series is: 0 1 1 2 3 #include #include int main() { int np,ps,i; int *sa; printf("Enter how many pages\n"); scanf("%d",&np); printf("Enter the page size \n"); scanf("%d",&ps); sa=(int*)malloc(2*np); for(i=0;i { sa[i]=(int)malloc(ps); printf("Page%d\t Address %u\n",i+1,sa[i]); return 0; } Enter how many pages: 5
Enter the page size: 4
Page1 Address: 1894
Page2 Address: 1902
Page3 Address: 1910
Page4 Address: 1918
Page5 Address: 1926
#include #include #include #include #include pthread_t tid[2]; int counter; void* doSomeThing(void *arg) { unsigned long i = 0; counter += 1; printf("\n Job %d started\n", counter); for(i=0; i< (0xFFFFFFFF);i++); printf("\n Job %d finished\n", counter); return NULL; } int main(void) { int i = 0; int err; while(i < 2) { int counter; void* &doSomeThing, NULL); if (err != 0) printf ("\ncan't create thread :[%s]", strerror(err)); i++; } pthread_join(tid[0], NULL); pthread_join(tid[1], NULL); urn 0; } Job 1 started Job 2 started Job 1 finished Job 2 finishedOutput
2.(B)CPU Scheduling:Sortest job first
Output
2.(c)CPU scheduling: First Come First Serve
Output
2.(D)Priority Scheduling
Output
3.(A)Sequential Method
Output
3.(B)Indexed Method
Output
3.(C)Indexed Method
Output
4.Semaphores
Output
5.(A)Single level directory
Output
5.(B)Two level directory
Output
5.(C)Hierarchical directory`
Output
5.(D)DAG
Output
6.Deadlock Avoidance
Output
7.Deadlock detection
Output
8.(A)FIFO
Output
8.(B)LRU
Output
8.(C)LFU
output
9.Shared Memory and IPC
Output
10.Paging Technique
Output
11.Thread
Output