Как я могу принимать логические адресные данные?
Эй Ребята ,
Я закодировал небольшой фрагмент кода, который демонстрирует концепцию подкачки в операционных системах. Я предположил, что размер кадра и страницы составляет 4 байта.
Проблема в том, что я не могу ввести логические значения адресов!
Запросите помощь по тому же вопросу:
#include<iostream> #include<conio.h> #include<time.h> using namespace std; int main() { char* logical[16]; char* physical[33]; int ft[4]; int pg=0; int s[2]; int i,j; int page_move=0; int frame=0; int test[8]={0,4,8,12,16,20,24,28}; //Used for the random selection of frame numbers assuming the frame size to be 4 bytes time_t t; srand((unsigned) time(&t)); s[0]=test[rand()%8]; i=s[0]; // We need two random frames to be occupied to represent a real scenario better ! s[1]=test[rand()%8]; j=s[1]; // 's' contains those two frame numbers which will be made 'Full' later. cout<<"\n"<<s[0]<<" "<<s[1]; for(int i=0;i<32;i++)// initialize all addresses to Empty { physical[i]="Empty"; logical[i]="Empty"; } printf("\nThe Logical Address is Now->\n"); for(int i=0;i<16;i++) { cout<<"\n"<<i<<" "<<logical[i]; } for(int k=0;k<4;k++) // For filling in two random frames { physical[i]="Full"; physical[j]="Full"; ++i; ++j; } cout<<"\nEnter the Logical Address Data->\n"; for(int i=0;i<16;i++) // Entering Logical Data ( Doesn't Work!!!) { if(i%4==0){cout<<"\n---Page "<<page_move++<<"----\n";} cin>>logical[i]; } i=0;page_move=0; while(i<=28) // Constructing The Frame Table { if(physical[i]=="Empty" && page_move!=4) { ft[page_move]=frame; ++page_move; } ++frame; i=i+4; } cout<<"\n::::FRAME TABLE::::\n"; cout<<"\n Page Frame\n"; for(int i=0;i<4;i++) // Display The Frame Table Created Above { cout<<"\n "<<i<<" "<<ft[i]; } printf("\nThe Physical Address is Now->\n"); for(int i=0;i<32;i++) //Display Physical Addresses and their Data { cout<<"\n"<<i<<" "<<physical[i]; } getch(); }
Что я уже пробовал:
Я попытался изменить способ принятия логических адресных данных.
1.) использовал другое слово char* , а затем назначил его логическому[i]...не сработало
2.) использовал char*s= logical; а затем ввел s, за которым следует ++s; не сработало