Виртуальная Память И Его Реализация.

Статус
Закрыто для дальнейших ответов.

Vunderkind

Active member
26.10.2010
27
0
#1
Дано задание реализации механизма виртуальной памяти на С, но у меня не получается даже начать. Дело в том что до реализации виртуалной памяти надо выделить память для основной памяти используя malloc, и основная память должно состоять из 100 блоков, а каждый блок из 128 байта. Как это реализовать понятии не имею. Не судите строго если я что-то не прав. написал, читайте задание(на англ.) прикрепленао к этой теме. Если можно, поэтапно объясните что надо делать в этом задании!
 

Вложения

G

Guest

#2
Дело в том что до реализации виртуалной памяти надо выделить память для основной памяти используя malloc, и основная память должно состоять из 100 блоков, а каждый блок из 128 байта. Как это реализовать понятии не имею.
Здесь можно прочитать про функции выделения и освобождения памяти malloc, calloc и free.

В твоем случае это будет выглядеть примерно так:
C++:
#include<cstdlib>

void main()
{
const size_t sizeBlock = 128;
const size_t countBlock = 100;

char* masBlock[countBlock];

// Выделение памяти.
for(size_t i = 0; i < countBlock; i++)
{
masBlock[i] = (char *)malloc(sizeBlock);
}

// Освобождение памяти.
for (size_t i = 0; i < countBlock; i++)
{
free(masBlock[i]);
}
}
Нужно только проверить как подключается заголовочный файл stdlib.h в твоем компиляторе.
 

Vunderkind

Active member
26.10.2010
27
0
#4
Огромное вам спасибо! У меня возник еще один вопрос, а как достучатся к определенной памяти определенного блока? Например: по задании надо взять адрес 45-го байта 13-го блока, умею взять адрес блока, а как взять адрес байта(наверное это невозм.) ?
 
Статус
Закрыто для дальнейших ответов.