tag:blogger.com,1999:blog-49708646958690306942024-03-13T20:16:19.500-07:00Operating System EncyclopediaAnonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-4970864695869030694.post-11364136107554195112013-07-19T01:41:00.001-07:002013-07-19T01:41:38.678-07:00Character functions in SQL<a href="http://www.javaquestionbank.com/character-functions-in-sql/#.Uej7tyL_hXs.blogger">Character functions in SQL</a>Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-61068366303610283352013-07-19T00:52:00.001-07:002013-07-19T00:52:35.451-07:00c program that make a copy of a file using System calls<a href="http://www.javaquestionbank.com/c-program-that-make-a-copy-of-a-file-using-system-calls-2/#.UejwMuiuw3c.blogger">c program that make a copy of a file using System calls</a>Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-25036326127608397392013-07-18T19:27:00.001-07:002013-07-18T19:27:53.205-07:00To Simulate a CPU scheduling algorithm in Round Robin method<a href="http://www.javaquestionbank.com/to-simulate-a-cpu-scheduling-algorithm-in-round-robin-method/#.UeikHXhkL80.blogger">To Simulate a CPU scheduling algorithm in Round Robin method</a>Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-32629787010514373932013-07-18T19:22:00.001-07:002013-07-18T19:22:53.998-07:00To stimulate the file allocate strategy using Link method<a href="http://www.javaquestionbank.com/to-stimulate-the-file-allocate-strategy-using-link-method/#.Ueii6_IEh1s.blogger">To stimulate the file allocate strategy using Link method</a>Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-9744826058066041182012-11-26T00:11:00.001-08:002012-11-26T00:11:10.152-08:00CPU Scheduling Algorithms.--- First come First serve(fcfs) /* Simulate the following cpu scheduling algorithms.<br /> C. First come First serve(fcfs) */<br /><br />#include<stdio.h><br />#include<conio.h><br />void main()<br />{<br /> int i,bt[10],n,twt=0,z[20];<br /> int wt[10],sum=0,sum1=0;<br /> float avgt=0.00;<br /> clrscr();<br /> printf("\n Enter no. of Processes ::");<br /> scanf("%d",&n);<br /> printf("\n Enter the %d burst times::",n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n\n Enter time for process%d::",i+1);<br /> scanf("%d",&bt[i]);<br /> }<br /> for(i=0;i<n;i++)<br /> {<br /> if(i==0)<br /> {<br /> wt[i]=0;<br /> sum=sum+bt[i];<br /> }<br /> else<br /> {<br /> wt[i]=sum;<br /> sum=sum+bt[i];<br /> }<br /> sum1=sum1+bt[i];<br /> z[i]=sum1;<br /> }<br /> printf("\n\n----------------------------------------------\n");<br /> printf("\n\tPNo\tbt\twt\n");<br /> printf("\n----------------------------------------------\n");<br /> for(i=0;i<n;i++)<br /> {<br /> twt+=wt[i];<br /> printf("\n\n\tP%d\t%d\t%d\n",i+1,bt[i],wt[i]);<br /> }<br /> printf("\n----------------------------------------------\n");<br /> avgt=(float)twt/(float)n;<br /> printf("\n\nGannt Chart ::\n\n");<br /> printf("\t0");<br /> for(i=0;i<n-1;i++)<br /> printf("%4d",z[i]);<br /> printf("\n\n Total waiting time is ::%d",twt);<br /> printf("\n\n Average waiting time is ::%f",avgt);<br /> getch();<br />}<br /> /*Input and OutPut:-<br /><br /> Enter no. of Processes ::3<br /> Enter the 3 burst times::<br /> Enter time for process1::24<br /> Enter time for process2::3<br /> Enter time for process3::3<br />----------------------------------------------<br /> PNo bt wt<br />----------------------------------------------<br /> P1 24 0<br /> P2 3 24<br /> P3 3 27<br /><br />----------------------------------------------<br />Gannt Chart ::<br /><br /> 0 24 27<br /><br /> Total waiting time is ::51<br /> Average waiting time is ::17.000000 */<br /><br /><br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-70820337638813183622012-11-26T00:08:00.003-08:002012-11-26T00:09:49.489-08:00CPU Scheduling Algorithms. --- First come First serve(fcfs)/* Simulate the following cpu scheduling algorithms.<br />
C. First come First serve(fcfs) when the arrival times are given */<br />
<br />
#include<stdio.h><br />
#include<conio.h><br />
void main()<br />
{<br />
int i,bt[10],n,twt=0,z[20],at[10];<br />
int wt[10],sum=0,sum1=0;<br />
float avgt=0.00;<br />
clrscr();<br />
printf("\n Enter no. of Processes ::");<br />
scanf("%d",&n);<br />
printf("\n Enter the %d burst times::",n);<br />
for(i=0;i<n;i++)<br />
{<br />
printf("\n\n Enter burst and arrival times for process%d::",i+1);<br />
scanf("%d%d",&bt[i],&at[i]);<br />
}<br />
for(i=0;i<n;i++)<br />
{<br />
if(i==0)<br />
{<br />
wt[i]=0;<br />
sum=sum+bt[i];<br />
}<br />
else<br />
{<br />
wt[i]=sum-at[i];<br />
sum=sum+bt[i];<br />
}<br />
sum1=sum1+bt[i];<br />
z[i]=sum1;<br />
}<br />
printf("\n\n----------------------------------------------\n");<br />
printf("\n\tPNo\tbt\tat\twt\n");<br />
printf("\n----------------------------------------------\n");<br />
for(i=0;i<n;i++)<br />
{<br />
twt+=wt[i];<br />
printf("\n\n\tP%d\t%d\t%d\t%d\n",i+1,bt[i],at[i],wt[i]);<br />
}<br />
printf("\n----------------------------------------------\n");<br />
avgt=(float)twt/(float)n;<br />
printf("\n\nGannt Chart ::\n\n");<br />
printf("\t0");<br />
for(i=0;i<n-1;i++)<br />
printf("%4d",z[i]);<br />
printf("\n\n Total waiting time is ::%d",twt);<br />
printf("\n\n Average waiting time is ::%f",avgt);<br />
getch();<br />
}<br />
/*Input and OutPut:-<br />
Enter no. of Processes ::4<br />
Enter the 4 burst times::<br />
Enter burst and arrival times for process1::10 0<br />
Enter burst and arrival times for process2::4 1<br />
Enter burst and arrival times for process3::6 2<br />
Enter burst and arrival times for process4::3 4<br />
----------------------------------------------<br />
PNo bt at wt<br />
----------------------------------------------<br />
P1 10 0 0<br />
P2 4 1 9<br />
P3 6 2 12<br />
P4 3 4 16<br />
----------------------------------------------<br />
Gannt Chart ::<br />
0 10 14 20<br />
<br />
Total waiting time is ::37<br />
Average waiting time is ::9.250000*/<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-30710487607343303282012-11-26T00:07:00.002-08:002012-11-26T00:07:28.377-08:00Page Replacement algorithm using FIFO. /* Simulate the page replacement algorith using FIFO. */<br /><br />#include<stdio.h><br />#include<conio.h><br />void main()<br />{<br /> int ref[50],i,j,fault=0,count=0,frame[5],n;<br /> int temp;<br /> clrscr();<br /> printf("\n Enter the no. of Frames :;");<br /> scanf("%d",&n);<br /> printf("\nEnter the reference string and end with -1 ::");<br /> scanf("%d",&temp);<br /> while(temp!=-1)<br /> {<br /> ref[count++]=temp;<br /> scanf("%d",&temp);<br /> }<br /> for(i=0;i<n;i++)<br /> frame[i]=-1;<br /> for(i=0;i<count;i++)<br /> {<br /> for(j=0;j<n;j++)<br /> if(frame[j]==ref[i])<br /> break;<br /> if(j==n)<br /> {<br /> frame[fault%n]=ref[i];<br /> fault++;<br /> }<br /> printf("\n\n After inserting %2d the Frame status is ::",ref[i]);<br /> for(j=0;j<n;j++)<br /> printf("%4d",frame[j]);<br /> }<br /> printf("\n\n\t Total no. of page faults ::%d",fault);<br /> getch();<br />}<br />/* Input and Output :-<br /><br /> Enter the no. of Frames :;3<br /><br /> Enter the reference string and end with -1 ::1 2 3 4 1 2 5 1 2 3 4 5 -1<br /><br /> After inserting 1 the Frame status is :: 1 -1 -1<br /><br /> After inserting 2 the Frame status is :: 1 2 -1<br /><br /> After inserting 3 the Frame status is :: 1 2 3<br /><br /> After inserting 4 the Frame status is :: 4 2 3<br /><br /> After inserting 1 the Frame status is :: 4 1 3<br /><br /> After inserting 2 the Frame status is :: 4 1 2<br /><br /> After inserting 5 the Frame status is :: 5 1 2<br /><br /> After inserting 1 the Frame status is :: 5 1 2<br /><br /> After inserting 2 the Frame status is :: 5 1 2<br /><br /> After inserting 3 the Frame status is :: 5 3 2<br /><br /> After inserting 4 the Frame status is :: 5 3 4<br /><br /> After inserting 5 the Frame status is :: 5 3 4<br /><br /> Total no. of page faults ::9 */<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /><br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-87106500085758451382012-11-26T00:06:00.000-08:002012-11-26T00:06:14.662-08:00File allocation strategies --- Index file Allocation Method /* 2.simulate all File allocation strategies<br /> a. Index file Allocation Method */<br /><br /><br />#include<stdio.h><br />#include<conio.h><br />#include<string.h><br />int n;<br />void main()<br />{<br /> int b[20],b1[20],i,j,blocks[20][20],sz[20];<br /> char F[20][20],S[20],ch;<br /> clrscr();<br /> printf("\n Enter no. of Files ::");<br /> scanf("%d",&n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n Enter file %d name ::",i+1);<br /> scanf("%s",&F[i]);<br /> printf("\n Enter file%d size(in kb)::",i+1);<br /> scanf("%d",&sz[i]);<br /> printf("\n Enter blocksize of File%d(in bytes)::",i+1);<br /> scanf("%d",&b[i]);<br /> }<br /> for(i=0;i<n;i++)<br /> {<br /> b1[i]=(sz[i]*1024)/b[i];<br /> printf("\n\nEnter blocks for file%d",i+1);<br /> for(j=0;j<b1[i];j++)<br /> {<br /> printf("\n Enter the %dblock ::",j+1);<br /> scanf("%d",&blocks[i][j]);<br /> }<br /> }<br /> do<br /> {<br /> printf("\nEnter the Filename ::");<br /> scanf("%s",&S);<br /> for(i=0;i<n;i++)<br /> {<br /> if(strcmp(F[i],S)==0)<br /> {<br /> printf("\nFname\tFsize\tBsize\tNblocks\tBlocks\n");<br /> printf("\n---------------------------------------------\n");<br /> printf("\n%s\t%d\t%d\t%d\t",F[i],sz[i],b[i],b1[i]);<br /> for(j=0;j<b1[i];j++)<br /> printf("%d->",blocks[i][j]);<br /> }<br /> }<br /> printf("\n---------------------------------------------\n");<br /> printf("\nDo U want to continue ::(Y:n)");<br /> scanf("%d",&ch);<br /> }while(ch!=0);<br />}<br />/*Input and Output;-<br /><br /> Enter no. of Files ::2<br /><br /> Enter file 1 name ::x.c<br /><br /> Enter file1 size(in kb)::1<br /><br /> Enter blocksize of File1(in bytes)::512<br /><br /> Enter file 2 name ::y.c<br /><br /> Enter file2 size(in kb)::1<br /><br /> Enter blocksize of File2(in bytes)::512<br /><br /> Enter blocks for file1<br /><br /> Enter the 1block ::1000<br /><br /> Enter the 2block ::1001<br /><br /> Enter blocks for file2<br /><br /> Enter the 1block ::2000<br /><br /> Enter the 2block ::2001<br /><br /> Enter the Filename ::x.c<br /><br />Fname Fsize Bsize Nblocks Blocks<br />---------------------------------------------<br />x.c 1 512 2 1000->1001-><br />---------------------------------------------<br /><br />Do U want to continue ::(Y:n)1<br /><br />Enter the Filename ::y.c<br /><br />Fname Fsize Bsize Nblocks Blocks<br />---------------------------------------------<br />y.c 1 512 2 2000->2001-><br />---------------------------------------------<br /><br />Do U want to continue ::(Y:n)0<br />*/<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-31103056168399809242012-11-26T00:05:00.000-08:002012-11-26T00:05:06.849-08:00 FIFO PAGE REPLACEMENT ALGORITHM/*A PROGRAM TO SIMULATE FIFO PAGE REPLACEMENT ALGORITHM */<br /><br />#include<stdio.h><br />#include<conio.h><br />void main()<br />{<br /> int rs[30],pf[10],ctr[10]={0};<br /> int n,i,j,k,m,c=0,g,p,pos,count,count1=0,nr;<br /> clrscr();<br /> printf("\nEnter Howmany Frames The Page Have::");<br /> scanf("%d",&n);<br /> printf("\nEnter Howmany Numbers The Reference Strng Have::");<br /> scanf("%d",&nr);<br /> printf("\nEnter Reference String::");<br /> for(i=0;i<nr;i++)<br /> {<br /> scanf("%d",&rs[i]);<br /> for(k=0;k<10;k++)<br /> if(rs[i]==k)<br /> {<br /> ctr[k]++;<br /> break;<br /> }<br /> }<br /> printf("\nSIMULATION OF PAGE REPLACEMENT ALGORITHM::FIFO\n");<br /> printf("\n\nThe Pages Containing Page Faults One By One::\n\n");<br /> //pf[0]=0;<br /> for(i=0;i<n;i++)<br /> {<br /><br /> for(m=0;m<=i&&i!=0;m++)<br /> if(pf[m]==rs[i])<br /> {<br /> i++;<br /> count=1;<br /> break;<br /> }<br /> if(count==1)<br /> continue;<br /> pf[i]=rs[i];<br /> for(k=0;k<=i;k++)<br /><br /> printf("\t%d\n",pf[k]);<br /> c++;<br /><br /><br /> printf("\t-------\n");<br /><br /><br /><br /> }<br /><br /><br /> do<br /> {<br /> count1=0;<br /> for(m=0;m<n;m++)<br /> if(pf[m]==rs[i])<br /> {<br /> count1=1;<br /> break;<br /> }<br /> if(count1==0)<br /> {<br /> g=n;<br /> for(p=0;p<n-1;p++)<br /> {<br /> if(ctr[pf[p]]==ctr[pf[p+1]]&&g>ctr[pf[p]])<br /><br /> for(m=0;m<n;m++)<br /> if(pf[m]==rs[i-n])<br /> pos=m;<br /> if(ctr[pf[p]]<ctr[pf[p+1]])<br /> { pos=p;<br /> g=ctr[pf[p]];<br /> }<br /> else if(ctr[pf[p]]>ctr[pf[p+1]])<br /> {<br /> pos=p+1;<br /> g=ctr[pf[p+1]];<br /> }<br /> }<br /><br /> pf[pos]=rs[i];<br /> for(k=0;k<n;k++)<br /> printf("\t%d\n",pf[k]);<br /> printf("\t--------\n");<br /><br /> c++;<br /> }<br /> i++;<br /> }while(i!=nr)<br /> printf("\nNumber Of Page Faults::%d",c);<br /> getch();<br />}<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-66148337616552897802012-11-26T00:03:00.004-08:002012-11-26T00:03:54.687-08:00File allocation strategies----- Linked file Allocation Method /* 2.simulate all File allocation strategies<br /> a. Linked file Allocation Method */<br /><br /><br />#include<stdio.h><br />#include<conio.h><br />#include<string.h><br />int n;<br />void main()<br />{<br /> int b[20],b1[20],i,j,blocks[20][20],sz[20];<br /> char F[20][20],S[20],ch;<br /> int sb[20],eb[20],x;<br /> clrscr();<br /> printf("\n Enter no. of Files ::");<br /> scanf("%d",&n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n Enter file %d name ::",i+1);<br /> scanf("%s",&F[i]);<br /> printf("\n Enter file%d size(in kb)::",i+1);<br /> scanf("%d",&sz[i]);<br /> printf("\n Enter blocksize of File%d(in bytes)::",i+1);<br /> scanf("%d",&b[i]);<br /> }<br /> for(i=0;i<n;i++)<br /> {<br /> b1[i]=(sz[i]*1024)/b[i];<br /> printf("\n Enter Starting block of file%d::",i+1);<br /> scanf("%d",&sb[i]);<br /> printf("\n Enter Ending block of file%d::",i+1);<br /> scanf("%d",&eb[i]);<br /> printf("\nEnter blocks for file%d::\n",i+1);<br /> for(j=0;j<b1[i]-2;)<br /> {<br /> printf("\n Enter the %dblock ::",j+1);<br /> scanf("%d",&x);<br /> if(x>sb[i]&&x<eb[i])<br /> {<br /> blocks[i][j]=x;<br /> j++;<br /> }<br /> else<br /> printf("\n Invalid block::");<br /> }<br /> }<br /> do<br /> {<br /> printf("\nEnter the Filename ::");<br /> scanf("%s",&S);<br /> for(i=0;i<n;i++)<br /> {<br /> if(strcmp(F[i],S)==0)<br /> {<br /> printf("\nFname\tFsize\tBsize\tNblocks\tBlocks\n");<br /> printf("\n---------------------------------------------\n");<br /> printf("\n%s\t%d\t%d\t%d\t",F[i],sz[i],b[i],b1[i]);<br /> printf("%d->",sb[i]);<br /> for(j=0;j<b1[i]-2;j++)<br /> printf("%d->",blocks[i][j]);<br /> printf("%d->",eb[i]);<br /> }<br /> }<br /> printf("\n---------------------------------------------\n");<br /> printf("\nDo U want to continue (Y:n)::");<br /> scanf("%d",&ch);<br /> }while(ch!=0);<br />}<br />/*Input and Output;-<br /><br /> Enter file1 size(in kb)::1<br /><br /> Enter blocksize of File1(in bytes)::512<br /><br /> Enter file 2 name ::sudee<br /><br /> Enter file2 size(in kb)::1<br /><br /> Enter blocksize of File2(in bytes)::1024<br /><br /> Enter Starting block of file::1100<br /><br /> Enter Ending block of file::1600<br /><br /> Enter blocks for file1::<br /><br /> Enter the 1block ::102<br /><br /> Enter the 2block ::104<br /><br /> Enter Starting block of file::2200<br /><br /> Enter Ending block of file::2500<br /><br /> Enter blocks for file2::<br /><br /> Enter the 1block ::201<br /><br /> Enter the Filename ::daya<br /><br />Fname Fsize Bsize Nblocks Blocks<br />---------------------------------------------<br />daya 1 512 2 100->102->104->600-><br />---------------------------------------------<br /><br />Do U want to continue ::(Y:n)1<br /><br />Enter the Filename ::sudee<br /><br />Fname Fsize Bsize Nblocks Blocks<br />---------------------------------------------<br />sudee 1 1024 1 200->201->500-><br />---------------------------------------------<br />Do U want to continue ::(Y:n)0<br />*/<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-35346601969698880802012-11-26T00:02:00.001-08:002012-11-26T00:02:08.144-08:00Page Replacement algorithm using LRU. /* Simulate the page replacement algorithm using LRU. */<br /><br />#include<stdio.h><br />#include<conio.h><br />void main()<br />{<br /> int ref[50],i,j,k,fault=0,count=0,frame[5],n;<br /> int temp,m;<br /> clrscr();<br /> printf("\n Enter the no. of Frames :;");<br /> scanf("%d",&n);<br /> printf("\nEnter the reference string and end with -1 ::");<br /> scanf("%d",&temp);<br /> while(temp!=-1)<br /> {<br /> ref[count++]=temp;<br /> scanf("%d",&temp);<br /> }<br /> for(i=0;i<n;i++)<br /> {<br /> frame[i]=ref[i];<br /> fault++;<br /> printf("\n\n After inserting %2d the frame status is ::",ref[i]);<br /> for(j=0;j<=i;j++)<br /> printf("%4d",frame[j]);<br /> }<br /> for(i=n;i<count;i++)<br /> {<br /> for(j=0;j<n;j++)<br /> {<br /> if(frame[j]==ref[i])<br /> break;<br /> else<br /> {<br /> if(frame[j]==ref[i-n])<br /> {<br /> frame[j]=ref[i];<br /> fault++;<br /> }<br /> }<br /> }<br /> printf("\n\n After inserting %2d the frame status is ::",ref[i]);<br /> for(k=0;k<n;k++)<br /> printf("%4d",frame[k]);<br /> }<br /> printf("\n\n Total no. of page faults ::%d",fault);<br /> getch();<br />}<br />/* Input and Output :-<br /><br /> Enter the no. of Frames :;3<br /><br /> Enter the reference string and end with -1 ::1 2 3 4 1 2 5 1 2 3 4 5 -1<br /><br /> After inserting 1 the frame status is :: 1<br /><br /> After inserting 2 the frame status is :: 1 2<br /><br /> After inserting 3 the frame status is :: 1 2 3<br /><br /> After inserting 4 the frame status is :: 4 2 3<br /><br /> After inserting 1 the frame status is :: 4 1 3<br /><br /> After inserting 2 the frame status is :: 4 1 2<br /><br /> After inserting 5 the frame status is :: 5 1 2<br /><br /> After inserting 1 the frame status is :: 5 1 2<br /><br /> After inserting 2 the frame status is :: 5 1 2<br /><br /> After inserting 3 the frame status is :: 3 1 2<br /><br /> After inserting 4 the frame status is :: 3 4 2<br /><br /> After inserting 5 the frame status is :: 3 4 5<br /><br /> Total no. of page faults ::10 */<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /><br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-35959806677194448492012-11-25T23:57:00.000-08:002012-11-25T23:57:01.368-08:00Multiprogramming with variable Task --- MVT/* simulate the mvt(multiprogramming with variable Task)*/<br /><br /><br />#include<stdio.h><br />#include<conio.h><br />#include<string.h><br />int i=0;<br />void main()<br />{<br /> int tot,sz,b[20],ch,size[20];<br /> char p[20][20],pro[10];<br /> int j,k,status[10],tot1;<br /> clrscr();<br /> printf("\n Enter total Memory ::");<br /> scanf("%d",&tot);<br /> tot1=tot;<br /> printf("\n Enter the size of o.s::");<br /> scanf("%d",&sz);<br /> tot1=tot1-sz;<br /> do<br /> {<br /> printf("\n-----------------------------------------------------\n");<br /> printf("\n\t\tMulti Variable Task(MVT)");<br /> printf("\n-----------------------------------------------------\n");<br /> printf("\n\t\t1.Allocation\n\t\t2.Deletion\n\t\t3.Display\n\t\t4.Exit");<br /> printf("\n-----------------------------------------------------\n");<br /> printf("\n Enter Ur choice ::");<br /> scanf("%d",&ch);<br /> switch(ch)<br /> {<br /> case 1:<br /> printf("\n Enter process %d::",i+1);<br /> scanf("%s",&p[i]);<br /> printf("\n Enter memory size for process%d::",i+1);<br /> scanf("%d",&size[i]);<br /> if(tot1 >=size[i])<br /> {<br /> b[i]=size[i];<br /> tot1=tot1-size[i];<br /> status[i]=1;<br /> i++;<br /> printf("\n Process is allocated ::");<br /> }<br /> else<br /> printf("\n memory size is not Available ::");<br /><br /> break;<br /> case 2:<br /> printf("\n Enter a process U want to delete ::");<br /> scanf("%s",&pro);<br /> j=0;<br /> while(j<i)<br /> {<br /> if(strcmp(p[j],pro)==0)<br /> {<br /> status[j]=0;<br /> tot1+=b[j];<br /> b[j]-=size[j];<br /> }<br /> j++;<br /> }<br /> printf("\n Process is deleted ::");<br /> break;<br /> case 3:<br /> printf("\n\n Total Memory size ::%d",tot);<br /> printf("\n\n Memory size of o.s::%d",sz);<br /> printf("\n\n No.of processes ::%d",i);<br /> printf("\n----------------------------------------------------------------------------\n");<br /> printf("\npname\tAllocated Memory\tStatus\n");<br /> printf("\n----------------------------------------------------------------------------\n");<br /> for(k=0;k<i;k++)<br /> {<br /> if(b[k]!=0)<br /> {<br /> printf("\n%s\t\t%d\t\t",p[k],b[k]);<br /> if(status[k]==1)<br /> printf("Full");<br /> else<br /> printf("Available");<br /> }<br /> }<br /> printf("\n----------------------------------------------------------------------------\n");<br /> printf("\n Total Available Space ::%d",tot1);<br /> break;<br /> case 4:<br /> exit(0);<br /> default:<br /> printf("\n Wrong Choice ::");<br /> }<br /><br /> }while(1);<br />}<br /><br />/* Input and output :-<br /><br /><br /> Enter total Memory ::600<br /><br /> Enter the size of o.s::100<br /><br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::1<br /><br /> Enter process 1::p1<br /><br /> Enter memory size for process1::250<br /><br /> Process is allocated ::<br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::1<br /><br /> Enter process 2::p2<br /><br /> Enter memory size for process2::125<br /><br /> Process is allocated ::<br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::1<br /><br /> Enter process 3::p3<br /><br /> Enter memory size for process3::25<br /><br /> Process is allocated ::<br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::1<br /><br /> Enter process 3::p4<br /><br /> Enter memory size for process4::200<br /><br /> Memory size is not Available::<br /><br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::3<br /><br /> Total memory size is::600<br /><br /> Memory size for o.s::100<br /><br /> No.of processes ::3<br />----------------------------------------------------------------------------<br /><br />pname Allocated Memory Status<br /><br />----------------------------------------------------------------------------<br /><br />p1 250 Full<br />p2 125 Full<br />p3 25 Full<br />----------------------------------------------------------------------------<br /><br /> Total Available Space ::100<br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::<br /><br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::1<br /><br /> Enter process 4::p4<br /><br /> Enter memory size for process4::100<br /><br /> Process is allocated ::<br /><br /> -----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::2<br /><br /> Enter a process U want to delete ::p3<br /><br /> Process is deleted ::<br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::3<br /><br /> Total memory size is::600<br /><br /> Memory size for o.s::100<br /><br /> No.of processes ::3<br />----------------------------------------------------------------------------<br /><br />pname Allocated Memory Status<br /><br />----------------------------------------------------------------------------<br /><br />p1 250 Full<br />p2 125 Full<br />p4 100 Full<br />p3 0 Available<br />----------------------------------------------------------------------------<br /><br /> Total Available Space ::25<br />-----------------------------------------------------<br /><br /> Multi Variable Task(MVT)<br />-----------------------------------------------------<br /><br /> 1.Allocation<br /> 2.Deletion<br /> 3.Display<br /> 4.Exit<br />-----------------------------------------------------<br /><br /> Enter Ur choice ::4*/<br /><br /><br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-36449816979458051002012-11-25T23:55:00.001-08:002012-11-25T23:55:12.108-08:00Paging Program in OS with C language#include"stdio.h"<br />#include"conio.h"<br />void main()<br />{<br /> int lmem,psize,pmem,i,j,k,c[10],str;<br /> int a[20],b[35],ch,page,index,abs,frame;<br /> clrscr();<br /> printf("\n enter page size::");<br /> scanf("%d",&psize);<br /> printf("\nenter logical memory size::");<br /> scanf("%d",&lmem);<br /> printf("\n%d",lmem);<br /> printf("\nenter phisical memory size::");<br /> scanf("%d",&pmem);<br /> printf("\n enter data::");<br /> for(i=0;i<lmem;i++)<br /> scanf("%d",&a[i]);<br /> for(i=0;i<32;i++)<br /> b[i]=-1;<br /> for(i=0;i<lmem/psize;i++)<br /> {<br /> printf("\nenter starting location for page::%d",i);<br /> scanf("%d",&str);<br /> if(str%4==0)<br /> {<br /><br /> c[i]=str/psize;<br /> for(j=str,k=i*4;j<j+psize,k<i*4+psize;j++,k++)<br /> {<br /> b[j]=a[k];<br /> }<br /> }<br /> else<br /> printf("\n wrong entry for page the page address shud be multiples of 4");<br /> }<br /> printf("\n the page table is::");<br /> printf("\n page \t\t frame");<br /><br /> for(i=0;i<lmem/psize;i++)<br /> printf("\n %d\t %d",i,c[i]);<br /> printf("\n enter for which data the mapping address to be found::");<br /> scanf("%d",&ch);<br /> for(i=0;i<lmem;i++)<br /> {<br /> if(ch==a[i])<br /> {<br /> index=i;<br /> page=index/4;<br /> frame=c[page];<br /> abs=(frame*psize)+(index%psize);<br /> }<br /><br /> }<br /><br /> printf("\n the physical address for %d is::%d",ch,abs);<br /> getch();<br />}<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com1tag:blogger.com,1999:blog-4970864695869030694.post-22248899931573053692012-11-25T23:53:00.003-08:002012-11-25T23:53:36.869-08:00CPU scheduling algorithms.--- Priority./* Simulate the following cpu scheduling algorithms.<br /> d. Priority. */<br /><br />#include<stdio.h><br />#include<conio.h><br />void main()<br />{<br /> int i,sum=0,bt[20],wt[20],p[20];<br /> int twt=0,p1[20],n,j,temp,sum1=0,z[20];<br /> float avgt=0.00;<br /> clrscr();<br /> printf("\n Enter no. of Processes ::");<br /> scanf("%d",&n);<br /> printf("\n Enter the %d burst times::",n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n\n Enter burst time and priority for process%d::",i+1);<br /> scanf("%d%d",&bt[i],&p[i]);<br /> p1[i]=i+1;<br /> }<br /> for(i=0;i<n-1;i++)<br /> {<br /> for(j=i+1;j<n;j++)<br /> {<br /> if(p[i]>p[j])<br /> {<br /> temp=bt[i];<br /> bt[i]=bt[j];<br /> bt[j]=temp;<br /> temp=p1[i];<br /> p1[i]=p1[j];<br /> p1[j]=temp;<br /> }<br /> }<br /> }<br /> for(i=0;i<n;i++)<br /> {<br /> if(i==0)<br /> {<br /> wt[i]=0;<br /> sum=sum+bt[i];<br /> }<br /> else<br /> {<br /> wt[i]=sum;<br /> sum=sum+bt[i];<br /> }<br /> sum1=sum1+bt[i];<br /> z[i]=sum1;<br /> }<br /> printf("\n\n----------------------------------------------\n");<br /> printf("\n\tPNo\tbt\tprt\twt\n");<br /> printf("\n----------------------------------------------\n");<br /> for(i=0;i<n;i++)<br /> {<br /> twt+=wt[i];<br /> printf("\n\n\tP%d\t%d\t%d\t%d\n",p1[i],bt[i],i+1,wt[i]);<br /> }<br /> printf("\n----------------------------------------------\n");<br /> avgt=(float)twt/(float)n;<br /> printf("\n\nGannt Chart ::\n\n");<br /> printf("\t0");<br /> for(i=0;i<j-1;i++)<br /> printf("%4d",z[i]);<br /> printf("\n\n Total waiting time is ::%d",twt);<br /> printf("\n\n Average waiting time is ::%f",avgt);<br /> getch();<br />}<br /><br />/* Input and Output :-<br /> Enter no. of Processes ::3<br /> Enter the 3 burst times::<br /> Enter burst time and priority for process1::10 2<br /> Enter burst time and priority for process2::12 3<br /> Enter burst time and priority for process3::9 1<br />----------------------------------------------<br /> PNo bt prt wt<br />----------------------------------------------<br /> P3 9 1 0<br /> P1 10 2 9<br /> P2 12 3 19<br />----------------------------------------------<br />Gannt Chart ::<br /><br /> 0 9 19<br /><br /> Total waiting time is ::28<br /> Average waiting time is ::9.333333 */<br /><br /><br /><br /> Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-57562548126034049392012-11-25T23:51:00.004-08:002012-11-25T23:51:51.986-08:00CPU scheduling algorithms. --- Round Robin /* Simulate the following cpu scheduling algorithms.<br /> A. Round Robin */<br /><br />#include<stdio.h><br />#include<conio.h><br />void main()<br />{<br /> int bt[30],wt[30],temp[10],p[20],i,t;<br /> int n,x=0,sum=0,twt=0,z[30],j=0;<br /> float avgt=0.00;<br /> clrscr();<br /> printf("\n Enter no. of Processes ::");<br /> scanf("%d",&n);<br /> printf("\n Enter time slice ::");<br /> scanf("%d",&t);<br /> printf("\n Enter the %d burst times::",n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n\n Enter time for process%d::",i+1);<br /> scanf("%d",&bt[i]);<br /> p[i]=0;<br /> temp[i]=bt[i];<br /> sum=sum+bt[i];<br /> }<br /> while(sum!=x)<br /> {<br /> for(i=0;i<n;i++)<br /> {<br /> if(bt[i]!=0)<br /> {<br /> if(bt[i]>t)<br /> {<br /> bt[i]=bt[i]-t;<br /> x=x+t;<br /> z[j]=x;<br /> j++;<br /> p[i]++;<br /> }<br /> else<br /> {<br /> wt[i]=x-(p[i]*t);<br /> x=x+bt[i];<br /> z[j]=x;<br /> j++;<br /> bt[i]=0;<br /> }<br /> }<br /> }<br /> }<br /> printf("\n\n----------------------------------------------\n");<br /> printf("\n\tPNo\tbt\twt\n");<br /> printf("\n----------------------------------------------\n");<br /> for(i=0;i<n;i++)<br /> {<br /> twt+=wt[i];<br /> printf("\n\n\tP%d\t%d\t%d\n",i+1,temp[i],wt[i]);<br /> }<br /> printf("\n----------------------------------------------\n");<br /> avgt=(float)twt/(float)n;<br /> printf("\n\nGannt Chart ::\n\n");<br /> printf("\t0");<br /> for(i=0;i<j-1;i++)<br /> printf("%4d",z[i]);<br /> printf("\n\n Total waiting time is ::%d",twt);<br /> printf("\n\n Average waiting time is ::%f",avgt);<br /> getch();<br />}<br /><br />/* Input and Output :-<br /> Enter no. of Processes ::3<br /> Enter time slice ::2<br /> Enter the 3 burst times::<br /> Enter time for process1::24<br /> Enter time for process2::3<br /> Enter time for process3::3<br />----------------------------------------------<br /> PNo bt wt<br />----------------------------------------------<br /> P1 24 6<br /> P2 3 6<br /> P3 3 7<br />----------------------------------------------<br />Gannt Chart ::<br /><br /> 0 2 4 6 8 9 10 12 14 16 18 20 22 24 26 28<br /><br /> Total waiting time is ::19<br /> Average waiting time is ::6.333333 */<br /><br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-61028003876466716462012-11-25T23:49:00.002-08:002012-11-25T23:49:46.849-08:00File allocation strategies ---- Sequential file Allocation /* 2.simulate all File allocation strategies<br /> a. Sequential file Allocation */<br /><br /><br />#include<stdio.h><br />#include<conio.h><br />#include<string.h><br />void main()<br />{<br /> int st[20],b[20],b1[20],ch,i,j,n,blocks[20][20],sz[20];<br /> char F[20][20],S[20];<br /> clrscr();<br /> printf("\n Enter no. of Files ::");<br /> scanf("%d",&n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n Enter file %d name ::",i+1);<br /><br /> scanf("%s",&F[i]);<br /> printf("\n Enter file%d size(in kb)::",i+1);<br /> scanf("%d",&sz[i]);<br /> printf("\n Enter Starting block of %d::",i+1);<br /> scanf("%d",&st[i]);<br /> printf("\n Enter blocksize of File%d(in bytes)::",i+1);<br /> scanf("%d",&b[i]);<br /> }<br /> for(i=0;i<n;i++)<br /> b1[i]=(sz[i]*1024)/b[i];<br /> for(i=0;i<n;i++)<br /> {<br /> for(j=0;j<b1[i];j++)<br /> blocks[i][j]=st[i]+j;<br /> }<br /> do<br /> {<br /> printf("\nEnter the Filename ::");<br /> scanf("%s",S);<br /> for(i=0;i<n;i++)<br /> {<br /> if(strcmp(S,F[i])==0)<br /> {<br /> printf("\nFname\tStart\tNblocks\tBlocks\n");<br /> printf("\n---------------------------------------------\n");<br /> printf("\n%s\t%d\t%d\t",F[i],st[i],b1[i]);<br /> for(j=0;j<b1[i];j++)<br /> printf("%d->",blocks[i][j]);<br /> }<br /><br /> }<br /> printf("\n---------------------------------------------\n");<br /> printf("\nDo U want to continue ::(Y:n)");<br /> scanf("%d",&ch);<br /> if(ch!=1)<br /> break;<br /> }while(1);<br />}<br />/*Input and Output;-<br /><br /> Enter no. of Files ::2<br /> Enter file 1 name ::x.c<br /> Enter file1 size(in kb)::4<br /> Enter Starting block of 1::100<br /> Enter blocksize of File1(in bytes)::512<br /> Enter file 2 name ::y.c<br /> Enter file2 size(in kb)::2<br /> Enter Starting block of 2::500<br /> Enter blocksize of File2(in bytes)::256<br /> Enter the Filename ::y.c<br /><br />Fname Start Nblocks Blocks<br />---------------------------------------------<br />y.c 500 8 500->501->502->503->504->505->506->507-><br />---------------------------------------------<br />Do U want to continue ::(Y:n) n */<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-33905746374388924452012-11-25T10:57:00.001-08:002012-11-25T10:57:30.772-08:00CPU scheduling algorithms. -- Short Job First(sjf) /* Simulate the following cpu scheduling algorithms.<br /> B. Short Job First(sjf) */<br />#include<stdio.h><br />#include<conio.h><br />void main()<br />{<br /> int i,j,bt[10],n,twt=0,temp1,z[20],p[10];<br /> int wt[10],sum=0,sum1=0;<br /> float avgt=0.00;<br /> clrscr();<br /> printf("\n Enter no. of Processes ::");<br /> scanf("%d",&n);<br /> printf("\n Enter the %d burst times::",n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n\n Enter time for process%d::",i+1);<br /> scanf("%d",&bt[i]);<br /> p[i]=i+1;<br /> }<br /> for(i=0;i<n-1;i++)<br /> {<br /> for(j=i+1;j<n;j++)<br /> {<br /> if(bt[i]>bt[j])<br /> {<br /> temp1=bt[i];<br /> bt[i]=bt[j];<br /> bt[j]=temp1;<br /> temp1=p[i];<br /> p[i]=p[j];<br /> p[j]=temp1;<br /> }<br /> }<br /> }<br /> for(i=0;i<n;i++)<br /> {<br /> if(i==0)<br /> {<br /> wt[i]=0;<br /> sum=sum+bt[i];<br /> }<br /> else<br /> {<br /> wt[i]=sum;<br /> sum=sum+bt[i];<br /> }<br /> sum1=sum1+bt[i];<br /> z[i]=sum1;<br /> }<br /> for(i=0;i<n;i++)<br /> printf("%d",p[i]);<br /> printf("\n\n----------------------------------------------\n");<br /> printf("\n\tPNo\tbt\twt\n");<br /> printf("\n----------------------------------------------\n");<br /> for(i=0;i<n;i++)<br /> {<br /> twt+=wt[i];<br /> printf("\n\n\tP%d\t%d\t%d\n",p[i],bt[i],wt[i]);<br /> }<br /> printf("\n----------------------------------------------\n");<br /> avgt=(float)twt/(float)n;<br /> printf("\n\nGannt Chart ::\n\n");<br /> printf("\t0");<br /> for(i=0;i<j-1;i++)<br /> printf("%4d",z[i]);<br /> printf("\n\n Total waiting time is ::%d",twt);<br /> printf("\n\n Average waiting time is ::%f",avgt);<br /> getch();<br />}<br /><br />/* Input and Output :-<br /><br /><br /> Enter no. of Processes ::3<br /> Enter the 3 burst times::<br /> Enter time for process1::24<br /> Enter time for process2::3<br /> Enter time for process3::3<br /> 231<br />----------------------------------------------<br /> PNo bt wt<br />----------------------------------------------<br /> P2 3 0<br /> P3 3 3<br /> P1 24 6<br />----------------------------------------------<br /><br />Gannt Chart ::<br /><br /> 0 3 6<br /><br /> Total waiting time is ::9<br /> Average waiting time is ::3.000000 */<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-77478622061058018522012-11-25T10:50:00.000-08:002012-11-25T10:50:03.125-08:00Short Job First(sjf) based on arrival time(non-preemptive)<br />
/* Simulate the following cpu scheduling algorithms. '<br /> B. Short Job First(sjf) based on arrival time(non-preemptive). */<br /><br />#include<stdio.h><br />#include<conio.h><br />void swap(int *x,int *y)<br />{<br /> int *temp;<br /> *temp=*x;<br /> *x=*y;<br /> *y=*temp;<br />}<br />void main()<br />{<br /> int i,j,bt[10],bt1[10],n,twt=0,temp1,z[20],p[10];<br /> int wt[10],sum=0,sum1=0,at[10],k,l;<br /> float avgt=0.00;<br /> clrscr();<br /> printf("\n Enter no. of Processes ::");<br /> scanf("%d",&n);<br /> printf("\n Enter the %d burst times::",n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n\n Enter burst and arrival times for process%d::",i+1);<br /> scanf("%d%d",&bt[i],&at[i]);<br /> p[i]=i+1;<br /> }<br /> i=j=0;<br /> while(at[j+1]<bt[i])<br /> j++;<br /><br /> for(k=0;k<j;k++)<br /> bt1[k]=bt[k+1];<br /> /*for(i=0;i<j;i++)<br /> printf("%6d",bt1[i]);*/<br /> for(i=1;i<j-1;i++)<br /> {<br /> for(k=i+1;k<j;k++)<br /> {<br /> if(bt[i]>bt[k])<br /> swap(&bt[i],&bt[k]);<br /> }<br /> }<br />/* for(i=0;i<j;i++)<br /> printf("\n%4d",bt1[i]); */<br /> for(i=0;i<n;i++)<br /> {<br /> if(i==0)<br /> {<br /> wt[i]=0;<br /> sum=sum+bt[i];<br /> sum1=sum1+bt[i];<br /> }<br /> else<br /> {<br /> sum=sum+bt[i];<br /> wt[i]=sum-at[i];<br /><br /> }<br /> sum1=sum1+bt[i];<br /> z[i]=sum1;<br /><br /> }<br /> /*for(i=0;i<n;i++)<br /> printf("%d",p[i]); */<br /> printf("\n\n----------------------------------------------\n");<br /> printf("\n\tPNo\tbt\tat\twt\n");<br /> printf("\n----------------------------------------------\n");<br /> for(i=0;i<n;i++)<br /> {<br /> twt+=wt[i];<br /> printf("\n\n\tP%d\t%d\t%d\t%d\n",p[i],bt[i],at[i],wt[i]);<br /> }<br /> printf("\n----------------------------------------------\n");<br /> avgt=(float)twt/(float)n;<br /> printf("\n\nGannt Chart ::\n\n");<br /> printf("\t0");<br /> for(i=1;i<n;i++)<br /> printf("%4d",z[i]);<br /> printf("\n\n Total waiting time is ::%d",twt);<br /> printf("\n\n Average waiting time is ::%f",avgt);<br /> getch();<br />}<br /><br />/* Input and Output :-<br /><br /><br /> Enter no. of Processes ::3<br /> Enter the 3 burst times::<br /> Enter time for process1::24<br /> Enter time for process2::3<br /> Enter time for process3::3<br /> 231<br />----------------------------------------------<br /> PNo bt wt<br />----------------------------------------------<br /> P2 3 0<br /> P3 3 3<br /> P1 24 6<br />----------------------------------------------<br /><br />Gannt Chart ::<br /><br /> 0 3 6<br /><br /> Total waiting time is ::9<br /> Average waiting time is ::3.000000 */<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-85911273848429209912012-11-25T10:46:00.000-08:002012-11-25T10:46:01.397-08:00Shortest Job First (Non-preemptive) SJF in OS/* 2.simulate Shortest Job First (Non-preemptive) */<br /><br /><br />#include<stdio.h><br />#include<conio.h><br />#include<string.h><br />void main()<br />{<br /> int i,j,n,Bt[10],wt[10],At[10],Tt=0;<br /> char c[10][10],pn[10][10],s[10];<br /> int z[50];<br /> float Twt=0.0,Awt;<br /> int w=0,temp,t;<br /> clrscr();<br /> printf("\n Enter no. of processes ::");<br /> scanf("%d",&n);<br /> for(i=0;i<n;i++)<br /> {<br /> printf("\n Enter the processname ::");<br /> scanf("%s",&pn[i]);<br /> printf("\n Enter the Burst time for process P%d::",i+1);<br /> scanf("%d",&Bt[i]);<br /> printf("\n Enter the Arrival time for process P%d::",i+1);<br /> scanf("%d",&At[i]);<br /> s[i]='T';<br /> Tt+=Bt[i];<br /> }<br /> for(i=0;i<n;i++)<br /> {<br /> for(j=2;j<n;j++)<br /> {<br /> if(Bt[j-1]>Bt[j])<br /> {<br /> temp=Bt[j];<br /> Bt[j]=Bt[j-1];<br /> Bt[j-1]=temp;<br /> temp=At[j];<br /> At[j]=At[j-1];<br /> At[j-1]=temp;<br /> strcpy(c[j-1],pn[j-1]);<br /> strcpy(pn[j-1],pn[j]);<br /> strcpy(pn[j],c[j-1]);<br /> }<br /> }<br /> }<br /> wt[0]=0;<br /> z[0]=0;<br /> w+=Bt[0];<br /> t=w;<br /> s[0]='F';<br /> while(w<Tt)<br /> {<br /> i=1;<br /> while(i<=n)<br /> {<br /> if(s[i]=='T' && At[i]<=t)<br /> {<br /> z[i]=w;<br /> wt[i]=w-At[i];<br /> s[i]='F';<br /> w+=Bt[i];<br /> t=w;<br /> i=1;<br /> }<br /> else<br /> i++;<br /> }<br /> }<br /> printf("\n..............................................\n");<br /> printf("\nPname\tBt\tAt\tWt");<br /> printf("\n..............................................\n");<br /> for(i=0;i<n;i++)<br /> printf("\n%s\t%d\t%d\t%d",pn[i],Bt[i],At[i],wt[i]);<br /> printf("\n..............................................\n");<br /> printf("\n\n Gannt Chart ::\n");<br /> for(i=0;i<n;i++)<br /> printf("%4d",z[i]);<br /> for(i=0;i<n;i++)<br /> Twt+=wt[i];<br /> printf("\n\n Total waiting Time ::%f",Twt);<br /> Awt=Twt/n;<br /> printf("\n\n Average waiting Time ::%f",Awt);<br /> getch();<br />}<br /><br />/* Input and Output :-<br /><br /> Enter no. of processes ::3<br /> Enter the processname ::dsk<br /> Enter the Burst time for process P1::24<br /> Enter the Arrival time for process P1::0<br /> Enter the processname ::pdn<br /> Enter the Burst time for process P2::3<br /> Enter the Arrival time for process P2::4<br /> Enter the processname ::mkk<br /> Enter the Burst time for process P3::3<br /> Enter the Arrival time for process P3::10<br />..............................................<br />Pname Bt At Wt<br />..............................................<br /><br />dsk 24 0 0<br />pdn 3 4 20<br />mkk 3 10 17<br />..............................................<br /><br /> Gannt Chart ::<br /><br /> 0 24 27<br /><br /> Total waiting Time ::37.000000<br /><br /> Average waiting Time ::12.333333 */<br />Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0tag:blogger.com,1999:blog-4970864695869030694.post-39154976301181016622012-11-25T10:43:00.002-08:002012-11-25T10:43:11.380-08:00Shortest Job First (preemptive) SJF in OS/* 2.simulate Shortest Job First (preemptive) */<br /><br /><br />#include<stdio.h><br />#include<conio.h><br />#include<string.h><br />void main()<br />{<br /> int i,j,k,n,Bt[10],wt[10],B[10],A[10],Tt=0;<br /> char s[20],start[20];<br /> int max=0,min,Time=0,z[50];<br /> float Twt=0.0,Awt;<br /> int w=0,flag=0,t=0;<br /> clrscr();<br /> printf("\n Enter no. of processes ::");<br /> scanf("%d",&n);<br /> for(i=1;i<=n;i++)<br /> {<br /> printf("\n Enter the Burst time for process P%d::",i);<br /> scanf("%d",&Bt[i]);<br /> printf("\n Enter the Arrival time for process P%d::",i);<br /> scanf("%d",&A[i]);<br /> B[i]=Bt[i];<br /> if(B[i]>max)<br /> max=B[i];<br /> if(A[i]>Time)<br /> Time=A[i];<br /> wt[i]=0;<br /> s[i]='T';<br /> start[i]='F';<br /> Tt+=B[i];<br /> }<br /> i=1;k=0;<br /> z[k]=0;<br /> k++;<br /> while(t<Time)<br /> {<br /> if(A[i]<=t && B[i]!=0)<br /> {<br /> if(flag==0)<br /> wt[i]=wt[i]+w;<br /> B[i]=B[i]-1;<br /> if(B[i]==0)<br /> s[i]='F';<br /> start[i]='T';<br /> t++;<br /> w=w+1;<br /> if(s[i]!='F')<br /> {<br /> j=1;<br /> flag=1;<br /> while(j<=n&&flag!=0)<br /> {<br /> if(s[j]!='F'&&B[i]>B[j]&&A[i]<=t&&i!=j)<br /> {<br /> flag=0;<br /> z[k]=w;<br /> wt[i]=wt[i]-w;<br /> i=j;<br /> k++;<br /> }<br /> else<br /> flag=1;<br /> j++;<br /> }<br /> }<br /> else<br /> {<br /> i++;<br /> j=1;<br /> while(A[j]<=t && j<=n)<br /> {<br /> if(B[i]>B[j] && s[j]!='F')<br /> {<br /> flag=0;<br /> i=j;<br /> }<br /> j++;<br /> }<br /> }<br /> }<br /> else<br /> {<br /> if(flag==0)<br /> i++;<br /> }<br /> }<br /> while(w<Tt)<br /> {<br /> min=max+1;<br /> i=1;<br /> while(i<=n)<br /> {<br /> if(min>B[i]&&s[i]=='T')<br /> {<br /> min=B[i];<br /> j=i;<br /> }<br /> i++;<br /> }<br /> i=j;<br /> if(w==Time &&start[i]=='T')<br /> {<br /> w+=B[i];<br /> z[k]=w;<br /> k++;<br /> s[i]='F';<br /> }<br /> else<br /> {<br /> wt[i]+=w;<br /> w+=B[i];<br /> z[k]=w;<br /> k++;<br /> s[i]='F';<br /> }<br /> }<br /> printf("\n..............................................\n");<br /> printf("\nPno\tBt\tAt\tWt");<br /> printf("\n..............................................\n");<br /> for(i=1;i<=n;i++)<br /> {<br /> wt[i]=wt[i]-A[i];<br /> printf("\nP%d\t%d\t%d\t%d",i,Bt[i],A[i],wt[i]);<br /> }<br /> printf("\n..............................................\n");<br /> printf("\n\n Gannt Chart ::\n");<br /> for(i=0;i<k;i++)<br /> printf("%4d",z[i]);<br /> for(i=1;i<=n;i++)<br /> Twt+=wt[i];<br /> printf("\n\n Total waiting Time ::%f",Twt);<br /> Awt=Twt/n;<br /> printf("\n\n Average waiting Time ::%f",Awt);<br /> getch();<br />}<br />/* Input and Output :-<br /><br /> Enter no. of processes ::4<br /> Enter the Burst time for process P1::8<br /> Enter the Arrival time for process P1::0<br /> Enter the Burst time for process P2::4<br /> Enter the Arrival time for process P2::1<br /> Enter the Burst time for process P3::9<br /> Enter the Arrival time for process P3::2<br /> Enter the Burst time for process P4::5<br /> Enter the Arrival time for process P4::3<br />..............................................<br />Pno Bt At Wt<br />..............................................<br /><br />P1 8 0 9<br />P2 4 1 0<br />P3 9 2 15<br />P4 5 3 2<br />..............................................<br /><br /> Gannt Chart ::<br /> 0 1 5 10 17 26<br /><br /> Total waiting Time ::26.000000<br /><br /> Average waiting Time ::6.500000<br /> */Anonymoushttp://www.blogger.com/profile/16029318048542536255noreply@blogger.com0