Archive for the ‘Computer Organization & Architecture’ Category

import java.util.*;
class lru
{
public static void main(String args[])
{
int n,m,i,j,mn,flag=0,pgfault=0,timestamp=0;
Scanner sc=new Scanner(System.in);
System.out.println(“Enter no of pages”);
n=sc.nextInt();
System.out.println(“enter page nos”);
int a[]=new int[n];
for(i=0;i<n;i++)
a[i]=sc.nextInt();
System.out.println(“Enter no of frames”);
m=sc.nextInt();
int frm[]=new int[m];
int ts[]=new int[m];
for(i=0;i<m;i++)
{
frm[i]=a[i];
ts[i]=timestamp++;
}
for(;i<n;i++)
{
for(j=0;j<m;j++)
{
if(frm[j]==a[i])
{
ts[j]=timestamp++;
flag=1;
break;
}
else
flag=0;
}
if(flag==0)
{
mn=min(ts,m);
frm[mn]=a[i];
ts[mn]=timestamp++;
pgfault++;
}
}
pgfault=pgfault+m;
System.out.println(“least recently used(LRU) algorithm”);
System.out.println(“page fault is:”+pgfault);
System.out.println(“page hits are:”+(n-pgfault));
}
static int min(int ts[],int m)
{
int i,mn=0;
for(i=1;i<m;i++)
if(ts[i]<ts[i-1])
mn=i;
return mn;
}
}

import java.util.*;
class lfu
{
public static void main(String args[])
{
int n,m,i,j,mn,flag=0,pgfault=0,cnt=0;
Scanner sc=new Scanner(System.in);
System.out.println(“Enter no of pages”);
n=sc.nextInt();
System.out.println(“enter page nos”);
int a[]=new int[n];
for(i=0;i<n;i++)
a[i]=sc.nextInt();
System.out.println(“Enter no of frames”);
m=sc.nextInt();
int frm[]=new int[m];
int count[]=new int[m];
int cunt[]=new int[m];
for(i=0;i<m;i++)
{
frm[i]=a[i];
count[i]=1;
cunt[i]=cnt++;
}
for(;i<n;i++)
{
for(j=0;j<m;j++)
{
if (frm[j]==a[i])
{
count[j]++;
flag=1;
break;
}
else
flag=0;
}
if(flag==0)
{
mn=min(count,cunt,m);
frm[mn]=a[i];
cunt[mn]=cnt++;
pgfault++;
}
}
pgfault=pgfault+m;
System.out.println(“least frequently used(LFU) algorithm”);
System.out.println(“page fault is:”+pgfault);
System.out.println(“page hits are:”+(n-pgfault));
}
static int min(int count[],int cunt[],int m)
{
int i,j,mn=0;
for(i=1;i<m;i++)
if(count[i]<count[i-1])
mn=i;
for(i=1;i<m;i++)
{
if(count[i]==count[i-1] && count[mn]==count[i])
for(j=1;j<m;j++)
if(cunt[j]<cunt[j-1])
mn=i;
}
return mn;
}
}

#include<stdio.h>
void binry(int [],int);
int cmplmnt(int [],int[]);
void ars(int [],int[],int *);
int add(int [],int[]);
int decimal(int [],int[]);
void main()
{
int a[]={0,0,0,0},M[]={0,0,0,0},Q[]={0,0,0,0},b[]={0,0,0,0},m,q,q_1=0,i,count=4;
printf(“enter multiplicand:”);
scanf(“%d”,&m);
printf(“enter multiplier:”);
scanf(“%d”,&q);
binry(M,m);
printf(“the binary equivalent of multiplicand is:”);
for(i=0;i<4;i++)
printf(“%d”,M[i]);
printf(“\n”);
binry(Q,q);
printf(“the binary equivalent of multiplier is:”);
for(i=0;i<4;i++)
printf(“%d”,Q[i]);
for(;count!=0;count–)
{
if((Q[3]==1 && q_1==1) || (Q[3]==0 && q_1==0))
ars(a,Q,&q_1);
else if(Q[3]==1 && q_1==0)
{
cmplmnt(M,b);
add(a,b);
ars(a,Q,&q_1);
}
else
{
add(a,M);
ars(a,Q,&q_1);
}
}
printf(“\nthe result is:”);
for(i=0;i<4;i++)
printf(“%d”,a[i]);
for(i=0;i<4;i++)
printf(“%d”,Q[i]);
if((m<0 && q<0) || (m>0 && q>0))
printf(“\nits decimal equivalent is:%d”,decimal(a,Q));
else
printf(“\nits decimal equivalent is:-%d”,decimal(a,Q));
}
void binry(int a[],int n)
{
int i,s=0;
for(i=3;i>=0 && n!=0;i–)
{
a[i]=n%2;
if(a[i]==-1)
{
s=1;
a[i]=1;
}
n=n/2;
}
if(s==1)
cmplmnt(a,a);
}
int add(int a[],int m[])
{
int i,c=0;
for(i=3;i>=0;i–)
{
if(a[i]+m[i]+c==2)
{
a[i]=0;
c=1;
}
else
if(a[i]+m[i]+c==3)
{
a[i]=1;
c=1;
}
else
{
a[i]=a[i]+m[i]+c;
c=0;
}
}
return c;
}
int cmplmnt(int a[],int b[])
{
int i,c[]={0,0,0,1},s;
for(i=0;i<4;i++)
{
if(a[i]==1)
b[i]=0;
else
b[i]=1;
}
s=add(b,c);
return s;
}
void ars(int a[],int q[],int *q1)
{
int i;
*q1=q[3];
for(i=3;i!=0;i–)
q[i]=q[i-1];
q[i]=a[3];
for(i=3;i!=0;i–)
a[i]=a[i-1];
}
int decimal(int p[],int r[])
{
int dec=0,i,pwr=1,s,q[]={0,0,0,1};
if(p[0]==0)
{
for(i=3;i>=0;i–)
{
dec=dec+r[i]*pwr;
pwr=pwr*2;
}
for(i=3;i>=0;i–)
{
dec=dec+p[i]*pwr;
pwr=pwr*2;
}
return dec;
}
else
{
for(i=0;i<4;i++)
{
if(p[i]==1)
p[i]=0;
else
p[i]=1;
}
s=cmplmnt(r,r);
if(s==1)
add(p,q);
decimal(p,r);
}
}

 

OUTPUT:
enter multiplicand:-7
enter multiplier:3
the binary equivalent of multiplicand is:1001
the binary equivalent of multiplier is:0011
the result is:11101011
its decimal equivalent is:-21

import java.util.*;
class fifo
{
public static void main(String args[])
{
int n,m,i,j,mn,flag=0,pgfault=0,cnt=0;
Scanner sc=new Scanner(System.in);
System.out.println(“Enter no of pages”);
n=sc.nextInt();
System.out.println(“enter page nos”);
int a[]=new int[n];
for(i=0;i<n;i++)
a[i]=sc.nextInt();
System.out.println(“Enter no of frames”);
m=sc.nextInt();
int frm[]=new int[m];
int count[]=new int[m];
for(i=0;i<m;i++)
{
frm[i]=a[i];
count[i]=cnt++;
}
for(;i<n;i++)
{
for(j=0;j<m;j++)
{
if(frm[j]==a[i])
{
flag=1;
break;
}
else
flag=0;
}
if(flag==0)
{
mn=min(count,m);
frm[mn]=a[i];
count[mn]=cnt++;
pgfault++;
}
}
pgfault=pgfault+m;
System.out.println(“First in first out(FIFO) algorithm”);
System.out.println(“page fault is:”+pgfault);
System.out.println(“page hits are:”+(n-pgfault));
}
static int min(int count[],int m)
{
int i,mn=0;
for(i=1;i<m;i++)
if(count[i]<count[i-1])
mn=i;
return mn;
}
}