(Solved) : Someone Please Convert C Language C Java Thanks Advance Include Include Define Page Table Q42674931 . . .

Can someone please convert C language into C++ or Java. Thanksin advance.

#include <stdio.h>
#include <stdlib.h>

/* Define page table as dynamic structure containing virtualpage and page frame
and initialize variable as pointer to structure */
struct node{
int virtual_page;
int page_frame;
} *page_table = NULL;
typedef struct node entry;
/* Declare global var’s */

int num_entries, main_memory_size, page_size,replacement_policy;
/**************************************************************/
void set_params() {
  
printf(“nEnter memory size(words): “);
scanf(“%d”, &main_memory_size);
  
printf(“nEnter the page size (words/page): “);
scanf(“%d”, &page_size);
  
printf(“nEnter the replacement policy (0 = LRU, 1 = FIFO):”);
scanf(“%d”, &replacement_policy);
  
num_entries = main_memory_size / page_size;
page_table = (entry*) malloc (num_entries * sizeof(entry));
  
for (int i = 0; i < num_entries; i++) {
page_table[i].virtual_page = -1;
page_table[i].page_frame = i;
}
  
return;
}

void mapping() {
  
int virtual_address, virtual_page, offset, real_address;
int array_index = 0;
  
printf(“n”
“Enter virtual address to access: “);
  
scanf(“%d”, &virtual_address);
  
virtual_page = virtual_address / page_size;
offset = virtual_address % page_size;
  
while ((array_index < num_entries) &&(page_table[array_index].virtual_page != -1) &&(page_table[array_index].virtual_page != virtual_page))
array_index++;
  
if (array_index == num_entries) {
  
int page_frame_original = page_table[0].page_frame;
  
  
for (int i = 0; i < num_entries – 1; i++) {
  
page_table[i].virtual_page = page_table[i + 1].virtual_page;
page_table[i].page_frame = page_table[i + 1].page_frame;
}
  
page_table[num_entries – 1].virtual_page = virtual_page;
page_table[num_entries – 1].page_frame = page_frame_original;
  
printf(“Page Faultn”);
}
  
  
else if (page_table[array_index].virtual_page == -1) {
page_table[array_index].virtual_page = virtual_page;
page_table[array_index].page_frame = array_index;
  
printf(“Page Faultn”);
}
  
  
else {
  
  
if (replacement_policy == 0) {
  
  
int virtual_page_current =page_table[array_index].virtual_page;
int page_frame_current = page_table[array_index].page_frame;
  
int last_valid_entry = 0;
  
for (int i = array_index; i < num_entries – 1; i++) {
  
if (page_table[i + 1].page_frame == -1)
break;
  
page_table[i].virtual_page = page_table[i + 1].virtual_page;
page_table[i].page_frame = page_table[i + 1].page_frame;
  
last_valid_entry++;
}
  
page_table[last_valid_entry].virtual_page =virtual_page_current;
page_table[last_valid_entry].page_frame = page_frame_current;
  
real_address = page_table[last_valid_entry].page_frame * page_size+ offset;
}
  
else real_address = page_table[array_index].page_frame * page_size+ offset;
  
printf(“n”
“Virtual address %d maps to physical address %dn”,virtual_address, real_address);
}
}

void print_table() {
  
printf(“nn———————————n”
“|t” “VP” “t|t” “PF” “t|”);
  
for (int i = 0; i < num_entries; i++)
if(page_table[i].virtual_page != -1)
printf(“n———————————n”
“|t” “%d” “t|t” “%d” “t|”, page_table[i].virtual_page,page_table[i].page_frame);
  
printf(“n———————————n”);
}

/**************************************************************/
int main()
{
/* Declare local var’s */
int input = 0;
/* Until user quits */
   /* print menu of options, prompt for user input, andselect appropriate option */
while(input != 4){
printf(“Virtual memory to Main memorymappingn———————————-n”);
printf(“1) Enter parametersn2) Map virtual address to physicaladdressn3) Print page tablen4) QuitnnEnter selection: “);
scanf(“%d”, &input);
if(input == 1){
set_params();
}
if(input == 2){
mapping();
}
if(input == 3){
print_table();
}
if(input == 4){
printf(“You have successfully quit the programn”);
break;
}
}
return 1;
}

Expert Answer


Answer to Can someone please convert C language into C++ or Java. Thanks in advance. #include #include /* Define page table as dyn…

Leave a Comment

About

We are the best freelance writing portal. Looking for online writing, editing or proofreading jobs? We have plenty of writing assignments to handle.

Quick Links

Browse Solutions

Place Order

About Us