![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Написать программу, моделирующую динамическое распределение памяти в операционной системе. В качестве модели оперативной памяти программа должна использовать байтовый массив размера не менее 1024 байт. Использование других глобальных переменных в программе запрещено (то есть вся информация о свободных/занятых участках должна храниться внутри массива). В программе в обязательном порядке должны присутствовать следующие функции:
а) выделить участок заданного размера. В случае успеха вывести начальный адрес выделенного участка. Если участка подходящего для выделения не найдено, необходимо вывести диагностическое сообщение о нехватке памяти. б) освободить ранее выделенный участок. В качестве параметра функция должна принимать начальный адрес освобождаемого участка. Ранее выделенный участок может быть освобожден только целиком (освобождение части участка не допускается). в) получить информацию о свободных/занятых участках в «оперативной памяти» (количество участков каждого типа, начальные адреса, размеры, общее количество занятой и свободной памяти). Условие!!! Алгоритм выделения - наиболее подходящий; способ хранения информации - список блоков !!! Устно это я понимаю так: потребуется объявить массив типа Byte и размерностью [0..1023] Потом сделать еще один массив, в котором будут храниться начальные координаты занятых участков памяти и их длина. Потом сделать функцию, в которую задают необходимый размер памяти, и которая пробегает по массиву в поисках незанятого участка. Потом сделать процедуру, которая будет высвобождать память. Потом сделать функцию, которая выводит информацию об участке памяти по его начальному значению Потом сделать функцию, которая выводит информацию по всем участкам памяти. Итого, два массива (один из них динамический), три функции и одна процедура. Необходимо сделать это в среде Delphi 7. Алгоритм,сказали, должен быть создан через консольное приложения. Помогите с кодом, пожалуйста. Заранее спасибо! |