Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Динамічне виділення оперативної пам'яті

Реферат Динамічне виділення оперативної пам'яті





процедура стиснення. Так як програми переміщаються по оперативної пам'яті в ході свого виконання, то перетворення адрес з віртуальної форми у фізичну повинно виконуватися динамічним способом.


Рис. 2. Розподіл пам'яті переміщуваними розділами


Хоча процедура стиснення і призводить до більш ефективного використання пам'яті, вона може зажадати значного часу, що часто переважує переваги даного методу.


2. Імітатор динамічного виділення оперативної пам'яті


. Призначення програми.

Дана програма дозволяє імітувати процес динамічного виділення оперативної пам'яті і візуально показує процес заповнення оперативної пам'яті, стиснення і звільнення.

. Принцип роботи програми

Використовується динамічний масив. При натисканні кнопки старт створюється запис. У записі присутні змінні Imya - ім'я процесу, PID -номер процесу, Razmer - розмір процесу, prohoj - змінна, що показує кількість переміщень процесу при дефрагментації, cr, sin, zel - випадкові змінні для завдання кольору процесу. Потім у візуальному представленні малюється прямокутник з кольором процесу, і підписом, розмірність якого розраховується щодо всього вільного простору, розмірність якого взята за 100%. Далі йде процес дефрагментації. Якщо новий процес, що додається після попереднього, не поміщається в залишок оперативної пам'яті, то відбувається дефрагментація, при якій всі процеси заново ставляться в початок один за іншим. Далі йде запис нового процесу в таблицю процесів. Далі йде цикл, який містить перезапис таблиці процесів, видалення процесів і таймер процесів.

Процес перезапису таблиці існує для того щоб при завершенні процесу і видаленні його з таблиці, його місце займалося ще не виконаними процесом. Здійснюється це шляхом перевірки таблиці на наявність порожніх клітинок і, за їх наявності, записи в них процесів, розташованих нижче. Після, йде видалення процесів. При змінної stat належить «процесу», рівний end процес вважається завершеним і видаляється з таблиці процесів, шляхом заповнення осередків «». Якщо ж змінна stat не дорівнює end і процес виконується АБО можливість виконання процесу менше, ніж випадкове число, що генерується перед циклом, то змінна vremya зменшується на 1 (с) і відповідний рядок у таблиці переписується. Далі йде видалення процесу з візуальної області. Видалення відбувається при тих же умовах, що і видалення з таблиці. Прямокутник віддаленого процесу закрашивается таким же прямокутником білого кольору. Далі йде розрахунок параметрів для statusbar який показує кількість вільної та оперативної пам'яті.

У ручному режимі використовуються ті ж процедури, що і в автоматичному, з тією лише різницею, що вони не зациклені.


. Логічна структура програми


Автоматичне завантаження і виконання процесів

:=strtoint (edit1.Text);:=0; .cells [1,0]:= Назва процесу raquo ;;. cells [2,0]:= Pазмер процесу ( Байт) raquo ;;. cells [3,0]:= Bремя виконання raquo ;;. cells [4,0]:= Адреса в ОП raquo ;; (1000); _ 2:=random (2); rand_2= 0 then begin (process, i + 1);:=inttostr (i); [i] .prohoj:=proh; [i] .Imya:= Process # + str; [i] .PID:= i;:=random (26) +4 ;[i].Razmer:=inttostr(j);[i].PID:=i;_2:=inttostr(random(9)+2);[i].Vremya:=str_2;[i].ran:=random(99)+1;:=poz + prcent;:=(j/(razmerpam/100))*5;[i].Adress:=inttostr(round(poz));:=opraz+strtoint(process[i].Razmer);:=Round(prcent) ;:=round (poz); [i] .cr:=random (255) +1; [i] .sin:=random (255) +1; [i] .zel:=random (255) +1; ListBox1.Canvas do.Color:=RGB (0,0,0) ;. Color:=RGB (process [i] .cr, process [i] .sin, process [i] .zel); (Bounds (0, poz1, 400, prcent1)); (10, poz1 + 1, process [i] .Imya) ;; opraz gt; razmerpam then begin:=proh + 1; ListBox1.Canvas do.Color:=clwhite; .Color:=clwhite ; (Bounds (0, 0, 400,500)) ;;:=0;:=0;:=0; h:=1 to i do beginprocess [h] .stat lt; gt; end then begin [h] .prohoj:=proh;:=opraz + strtoint (process [h] .Razmer); opraz lt; razmerpam then begin:=poz + prcent;:=(strtoint (process [h] .Razmer)/( razmerpam/100)) * 5; [h] .Adress:=inttostr (round (poz));:=((strtoint (process [h] .Razmer))/(razmerpam/100)) * 5;:=round (razm); ListBox1.Canvas do.Color:=clblack; .Color:=RGB (process [h] .cr, process [h] .sin, process [h] .zel); (Bounds (0, strtoint (process [h] .adress), 400, razm1)); (10, strtoint (process [h] .adress) +1, process [h] .Imya) ;;. cells [4, process [h] .pid]: =process [h] .adress; else begin MessageDlg ( Пам'ять переповнена. raquo ;, mtWarning, [mbOk], 0) ;. Click ;;. RowCount:=stringgrid1.rowcount+1;.cells[1,i]:=process[i].imya;.cells[2,i]:=process[i].razmer;.cells[3,i]:=process[i].vremya;.cells[4,i]:=process[i].adress;i:=i- 1;:=random (79) +1; h:=1 to i doj1:=1 to i do b...


Назад | сторінка 2 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Intonation system of English in the process of historical development
  • Реферат на тему: Закономірності процесу формування електродів на основі оксиду міді та вплив ...
  • Реферат на тему: Процес реформування бюджетного процесу в Російській Федерації
  • Реферат на тему: Техніко-економічне обгрунтування процесу створення ПП «Согда» і організації ...
  • Реферат на тему: Розробка технологічного процесу одержання смуги методом холодної прокатки і ...