С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mindsurfer
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
#1

Программа, имитирующая память компьютера, как завершить? - C++

27.12.2012, 10:34. Просмотров 455. Ответов 3
Метки нет (Все метки)

Жутко нужна программа, которая имитирует память компьютера, ниже представлен код, ошибок нет, но надо завершить его. Программа имитирует заполнение физической памяти (a[10]), заполняя пустое место (нули), выполняемыми процессами (единицы). Имеется 10 ячеек, и 4 процесса(p[1-4]), которые требуют место по 3 ячейки на каждый(p[i].mem). Первые 3 процесса нормально помещаются в 9 ячеек физической памяти, а вот для четвертого процесса осталась одна ячейка, хотя нужны 3. Следовательно нужно заполнить этот процесс в виртуальную память (отдельный динамический массив *b[10]). Также, у каждого процесса есть время выполнения (p[i].time), и если процесс выполнится, то он должен выгрузиться из памяти, то есть единицы должны заменяться на 0.
Ниже дан код, в котором идет заполнение только физической памяти и без учета времени выполнения процесса.
Пожалуйста дополните его до полноценной описанной выше программы! Крайней степени нужно!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "stdlib.h"
#include "time.h"
 
int a[10];
int *b[10];
int t[5];
 
struct proc
{
    int mem;
    int time;
};
 
void main()
{
    int poz=0;
    int empty=0;
    setlocale(LC_ALL, "rus");
    proc p[4];
    srand(time(NULL));
 
    t[0]=0;
    t[1]=1;
 
    for (int i=0; i<4;i++)
    {
        p[i].mem=3;
        p[i].time=rand()%10+1;
    }
 
    printf("t0 = 0  ");
    for (int i=0; i<10; i++)
    {
        a[i]=0;
        printf("%d ", a[i]);
    }
    printf("\n");
    for (int i=1; i<=4; i++)
    {
        if (i==1) 
        { 
            printf("t%d = %d  ",i,i);
            for (int j=0;j<p[i].mem;j++)
                a[j]=1;
            for (int k=0; k<10; k++)
                printf("%d ", a[k]);
            printf("\n");
            poz=poz+p[i].mem;
        }
        else
        {
            t[i]=t[i-1]+p[i-1].time;
            printf("t%d = %d  ", i, t[i]);
            for (int j=poz;j<p[i].mem+poz;j++)
                a[j]=1;
            for (int k=0; k<10; k++)
                printf("%d ", a[k]);
            printf("\n");
            poz=poz+p[i].mem;
            for (int w=0;w<10;w++)
            {
                if (a[w]==0) empty=empty+1;
            } 
            if (empty<3) i=5;
            }
        }
    
    _getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 10:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа, имитирующая память компьютера, как завершить? (C++):

Программа, имитирующая файловую систему - C++
Создать программу, которая будет имитировать файловую систему. Как это сделать? С чего начать? У кого есть пример такой программы. Сама...

Программа, имитирующая реализацию элементов метода защиты информации RSA - C++
Программеры, выручайте! Нужно разработать программу, имитирующую реализацию элементов метода криптографической защиты информации RSA....

Программа, имитирующая игру в "Кости" - C++
Написать программу, которая имитирует игру в кости. Игроки (2 человека) кидают по 2 кубика (генерировать значения генератором случайных...

Память компьютера - C++
Добрый вечер. Можете ли по подробнее рассказать о памяти компьютера? Как компьютер хранит переменные? Что такое адрес? И почему этот адрес...

Можно ли как-то узнать, что программа была перенесена с одного компьютера на другой - C++
нужно это для того, чтобы программа работала только на доверенных компьютерах. мне предлагали проверять имя компьютера, но его же можно...

Как завершить поток - C++
Как завершить поток, начатый _beginthread( Thread, 0, NULL );

3
Alexandr1966
26 / 26 / 1
Регистрация: 17.12.2012
Сообщений: 438
27.12.2012, 13:22 #2
Друзья, реально очень надо, подскажите...

Добавлено через 1 час 46 минут
программу нужно запустить в VS 2008 в консольном приложении
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,389
Записей в блоге: 2
Завершенные тесты: 1
27.12.2012, 13:50 #3
Парни, у вас ведь даже не просто программерская специальность, а какая-то системная, т.к. на просто программерсой таких вещей не дают (ну нам не давали). Это ведь основы для системщика - язык С и понимание организации памяти, может сами попробуете дописать?
Если будете обращатся с конкретными вопросами, то у вас больше шансов получить помощь, чем просто "допишите за меня".
0
Alexandr1966
26 / 26 / 1
Регистрация: 17.12.2012
Сообщений: 438
27.12.2012, 17:08 #4
Ну здесь в принципе конкретно вопросы заданы, как, скажем, ДОреализовать эту прогу ))

Добавлено через 2 часа 29 минут
и всего лишь то)))
0
27.12.2012, 17:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2012, 17:08
Привет! Вот еще темы с ответами:

Как завершить цикл в OpenMP - C++
Использую OpenMP для параллельных расчетов очень нужно при определенном условии экстренно завершить цикл break; с OpenMP не...

Как корректно завершить COM порт? - C++
Здравствуйте. Пишу программу на С++ CLR для считывания с устройства пакетов данных. Но тут напоролся на проблему, которую не могу...

Как завершить программу из функции? - C++
предположим я объявил функцию void function(char* s) { \\код \\а тут мне надо завершить прогу. return 0; } компилятор...

Как завершить ввод данных с клавиатуры - C++
Всем доброго времени суток. Я изучать С начал недавно.Изучаю при помощи &quot;Язык программирования С++.Вводный курс.&quot; Скажите как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.