Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  Occupy
Language: C/C++
Code:
// OccupyRAMUnix.cpp : Defines the entry point for the console application.
//

#include <unistd.h>
#include <sys/types.h>
#include <sys/param.h>
#include <vector>
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
#include <limits>

using namespace std;

#define DIV 1024

#define WIDTH 7

bool IncreaseRAMMemory(unsigned long , int);
void UserChoice(char , unsigned long , int);

int main(int argc, char* argv[])
{
     unsigned long TotalMem;
     unsigned long AvailMem;
     unsigned long UsedMem;
     int PercentInUse;

     /* FreeBSD, Linux, OpenBSD, and Solaris. -------------------- */
     TotalMem = (size_t)sysconf( _SC_PHYS_PAGES ) *
          (size_t)sysconf( _SC_PAGESIZE );

     AvailMem = (size_t)sysconf( _SC_AVPHYS_PAGES ) *
          (size_t)sysconf( _SC_PAGESIZE );

     UsedMem = TotalMem - AvailMem;

     PercentInUse = (UsedMem/TotalMem)*100;
     
     _tprintf("======Analysing existing system Memory START=========\n\n");
     
     _tprintf (TEXT("There is %*ld percent of memory in use.\n"),
          WIDTH,PercentInUse);
     _tprintf (TEXT("There are %*ld total KB of physical memory.\n"),
          WIDTH, TotalMem/DIV);
     
     _tprintf (TEXT("There are %*ld free  KB of physical memory.\n"),
          WIDTH, AvailMem/DIV);
     
     _tprintf("============Analysing existing system Memory END===============\n\n");
     
     
     
     IncreaseRAMMemory(TotalMem, PercentInUse);
     
     std::cin.ignore();//Ignores previous input, get cin.get working even with new line inputs.
     std::cin.get();
     
     return 0;
}


bool  IncreaseRAMMemory(unsigned long TotalMemory, int PerInUse){
     char choice ;
     int PerToBlock=0;
     vector < unsigned long > v;
     vector <  unsigned long > p;
     vector <unsigned long > k;
     vector <unsigned long > g;
     vector <unsigned long > j;
     vector <unsigned long >t;
     
     v.empty();
     p.empty();
     k.empty();
     g.empty();
     j.empty();
     t.empty();
     
     
     _tprintf("How Much Percentage of  Total Physical memory you want to be block??:  \n");
     
     scanf("%d",&PerToBlock);
     if(PerToBlock >=95){
          _tprintf("Please Enter Percentages value below 95.\n ");
          IncreaseRAMMemory(TotalMemory, PerInUse);
     }
     
     
     _tprintf("******PLEASE WAIT!!!.....ALLOCATING RAM SPACE FOR YOUR REQUIREMENT***********\n\n");
          
     if(PerToBlock < PerInUse){
          _tprintf("Required Memory is less than already used  Memory \n\n");
          _tprintf("*****Program End*****\n\n");
          return false;
     }
     
     
     
     bool flag=false;     
     unsigned int i=0;
     unsigned long updatedUsedMem=0;
     unsigned long updatedAvMem=0;
     int updatedPerInUse=0;
     
     for(;;){
          v.push_back(i);
          p.push_back(i);
          k.push_back(i);
          g.push_back(i);
          j.push_back(i);
          t.push_back(i);
          i++;
          
          updatedAvMem = (size_t)sysconf( _SC_AVPHYS_PAGES ) * (size_t)sysconf( _SC_PAGESIZE );
          updatedUsedMem = TotalMemory - updatedAvMem;
          updatedPerInUse = (updatedUsedMem/TotalMemory) * 100;

          if(updatedPerInUse >= PerToBlock ){
               flag=true;
               break;
          }
          
     }
     
     
     _tprintf("~~~~~~~~~RAM Memory occupying completed~~~~~~~~~~~~~ \n\n\n");
     
     if(flag==true){
          
          _tprintf("============Analysing existing system Memory after RAM MEMORY occupying START===============");
          _tprintf (TEXT("There is %*ld percent of memory in use.\n"),
               WIDTH, updatedPerInUse);
          _tprintf (TEXT("There are %*ld total KB of physical memory.\n"),
               WIDTH, TotalMemory/DIV);
          _tprintf (TEXT("There are %*ld free  KB of physical memory.\n"),
               WIDTH, updatedAvMem/DIV);
          _tprintf("============Analysing existing system Memory after RAM MEMORY occupying START END===============\n");
          _tprintf ("Do you want to continue again ? enter 'Y' or 'N' :\n");
          cin >> choice;
          UserChoice(choice,TotalMemory,updatedPerInUse);
     }
     
     
     return true;
}

void UserChoice(char choice, unsigned long TotalMemory, int PerInUse){
     switch (choice){
          
     case 'Y':
     case 'y':
          IncreaseRAMMemory(TotalMemory, PerInUse);
          break;
          
     case 'N' :
     case 'n':
          _tprintf("Process is trminated \n\n");
          break;
          
     default:
          _tprintf("Sorry!!....Wrong input.\n");
          _tprintf ("Do you want to continue again ? enter 'Y' or 'N' :\n");
          cin >> choice;
          UserChoice(choice,TotalMemory,PerInUse);
          break;
     }
}
Comments: