Hi, I got problem with queue code how to determined empty and full and problem with while loop
Here is my pseudo code :
Input page Access
Input Pgae Frame
For i =3 to pageframe count by 1
construct queue of size i
set pageFaultCount to 0
while morepages do
page = NextPage
if queue.isINqueue <-- page then
do nothing
else
if queue.isFull then
queue.dequeue <-- page
queue.enqueue <-- pageFaultCount
add 1 to pageFaultCount
endif
endif
end while
output pagefault for i frames
end for
perl code :
#!usr/bin/perl -w
use Thread::Queue;
print "Enter require page";
chomp(my $page = <STDIN>);
my @page = split(' ', $page);
print "Enter upperBound";
chomp(my $bound = <STDIN>);
for ($i1 = 3; $i1<= $bound;$i1++)
{
my $queue = Thread::Queue->new($bound);
my @queue = split(' ', $queue);
$size = @queue;
my $pageFaultCount = 0;
my $nextpage = 0;
while ( $page >= 0 )
if ()
{
do nothing
}
else
{
$page = $page + $nextpage;
if(@queue >= $size)
{
$queue->dequeue(@page);
$queue->enqueue(@page);
$pageFaultCount = $pageFaultCount + 1;
}
print " $pageFaultCount for $i1 Frames\n";
}# end if
} # end while
} # End for
Thank