Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 16:51   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
Смущение как определить сотавшуюся память?

значит пишу модель менеджера процесов на паскале
Код:
uses crt;
var n:integer;
    m:array [1..1024] of integer;
    k,h,i,j,g,s,y,w:integer;
Begin
clrscr;
N:=1024;

WHILE k<>3 do
begin
clrscr;
writeln('1-zapustit proces');
writeln('2=osvobodit pamjat');
writeln('3-vihod');{меню: запустить процес и освободить память}
readln (k);
case  (k)  of

1:begin
  clrscr;
  writeln ('Vvedite kolichestvo pamjati kotoruy zanimaert proces');
  readln (h);{если выбираем запустить процес, указываем, сколько он занимает}

   for  i:=1 to h do
    begin
     m[i]:=1;
    end;
  writeln ('ostavshejas pamjat =',n-h);{заполняем массив (который в нашей модели представляет память) единицами и вычисляем оставшуюся память}
  writeln ('proces sanimaet=',h);
  INC(g);
  writeln ('proces nomer=',g);{также указываем номер процеса}
  READLN;
  end;
2:begin
  clrscr;
  while w<>2 do
   begin
    writeln('1-ukazat nomer');
    writeln('2-vihod');{если выбираем сторой пункт, выскакивает еще одно меню, где пользователь может выбрать,
 какой процес он хочет закрыть или выйти}
    readln(w);
     case (w) of
     1:begin
        writeln ('kakoy process osvobodit');
        readln (y);{тут и проблема: как можно сделать так, чтобы пользователь указывал номер процеса 
и память освобождалась именно от него, думаю, нужно использовать некую переменную у, но что с ней делать дальше?}
        writeln ('ostavshejas pamjat =',);
       end;
  end;
  end;
  end;
  end;
  end;
  end.
помогите пожалуйста, оосталось доделать совсем немного!

Последний раз редактировалось Stilet; 22.03.2012 в 21:53.
gylayko вне форума Ответить с цитированием
Старый 22.03.2012, 21:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
тут и проблема: как можно сделать так, чтобы пользователь указывал номер процеса
и память освобождалась именно от него
Думаю нужно усложнить программу:
Во-первых, ввести список записей, хранящих описание процесса:
Код:
TProcess=record
 Name:String;
 Size,Offset:Integer;
end;
Где Size - размер занимаемой процессом памяти, Offset - его начало относительно... Ну видимо первого элемента твоего массива (предположим что это модель памяти)

Далее ввести проверки - при создании нового процесса, проход по массиву и выяснение есть ли для процесса подходящая по размеру дырка среди других.
Что еще...
Да пока ты это реализуй, а после уже проще будет контролировать процессы - список то описателей четко будет идентифицировать занимаемую память.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кэш-память машины - как определить? Mixim C# (си шарп) 1 01.03.2012 14:50
Как сэкономить память? Unmanner Общие вопросы C/C++ 11 26.01.2012 23:45
Как не затратить память pray_driver HTML и CSS 4 14.06.2011 21:34
Как улучшить память?:-) Kudryavtsev Свободное общение 38 09.05.2011 20:27
Как чистить память. я - чайник :) delphi-proger Общие вопросы Delphi 0 24.02.2010 14:53