Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.11.2016, 17:44
theonewhocantbecalled theonewhocantbecalled вне форума
Прохожий
 
Регистрация: 05.11.2016
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Распределение памяти. Алгоритм

Написать программу, моделирующую динамическое распределение памяти в операционной системе. В качестве модели оперативной памяти программа должна использовать байтовый массив размера не менее 1024 байт. Использование других глобальных переменных в программе запрещено (то есть вся информация о свободных/занятых участках должна храниться внутри массива). В программе в обязательном порядке должны присутствовать следующие функции:
а) выделить участок заданного размера. В случае успеха вывести начальный адрес выделенного участка. Если участка подходящего для выделения не найдено, необходимо вывести диагностическое сообщение о нехватке памяти.
б) освободить ранее выделенный участок. В качестве параметра функция должна принимать начальный адрес освобождаемого участка. Ранее выделенный участок может быть освобожден только целиком (освобождение части участка не допускается).
в) получить информацию о свободных/занятых участках в «оперативной памяти» (количество участков каждого типа, начальные адреса, размеры, общее количество занятой и свободной памяти).

Условие!!! Алгоритм выделения - наиболее подходящий; способ хранения информации - список блоков !!!

Устно это я понимаю так: потребуется объявить массив типа Byte и размерностью [0..1023]
Потом сделать еще один массив, в котором будут храниться начальные координаты занятых участков памяти и их длина.
Потом сделать функцию, в которую задают необходимый размер памяти, и которая пробегает по массиву в поисках незанятого участка.
Потом сделать процедуру, которая будет высвобождать память.
Потом сделать функцию, которая выводит информацию об участке памяти по его начальному значению
Потом сделать функцию, которая выводит информацию по всем участкам памяти.

Итого, два массива (один из них динамический), три функции и одна процедура.

Необходимо сделать это в среде Delphi 7. Алгоритм,сказали, должен быть создан через консольное приложения. Помогите с кодом, пожалуйста. Заранее спасибо!
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025