Есть ответ 👍

Написать программу, моделирующую динамическое распределение памяти в операционной системе. в качестве модели оперативной памяти программа должна использовать байтовый массив размера не менее 1024 байт. использование других переменных в программе запрещено (то есть вся информация о свободных/занятых участках должна храниться внутри массива). в программе в обязательном порядке должны присутствовать следующие функции: а) выделить участок заданного размера. в случае успеха вывести начальный адрес выделенного участка. если участка подходящего для выделения не найдено, необходимо вывести диагностическое сообщение о нехватке памяти. б) освободить ранее выделенный участок. в качестве параметра функция должна принимать начальный адрес освобождаемого участка. ранее выделенный участок может быть освобожден только целиком (освобождение части участка не допускается). в) получить информацию о свободных/занятых участках в «оперативной памяти» (количество участков каждого типа, начальные адреса, размеры, общее количество занятой и свободной памяти). варианты . варианты комбинируются из возможных способов хранения информации о свободных занятых блоках и различных алгоритмов, применяемых при выделении участка. примерное соответствие варианта и указанных параметров представлено в следующей таблице: вариант алгоритм выделения способ хранения информации 1 первый подходящий битовая карта 2 наиболее подходящий битовая карта 3 наименее подходящий битовая карта 4 двоичного разбиения битовая карта 5 первый подходящий список блоков 6 наиболее подходящий список блоков 7 наименее подходящий список блоков 8 двоичного разбиения список блоков я 5 вариант)) заранее

203
207
Посмотреть ответы 2

Ответы на вопрос:


Вот  подредактируй ввод вывод. или вот #include< bits/stdc++.h> using namespace std; const int n = 1024+3; //size of "ram"vector< pair< bool, int> > ram(n); //ram int get_area(int n){    for (int i = 0; i < n-n-1 ; i ++)    {        if(ram[i].first == false)        {            int j;             for (j = i; j < i+n ; j ++ )                if(ram[j].first == true)                    break;             if (ram[j].first == true)            {                i = j;                 continue;             }            for(j = i ; j < i+n ; j ++)            {                ram[j].first = true;                 ram[j].second = i;             }            return i;         }    }    return -1; } string del_area(int n){    int j = n;     for(int i = n ; ram[j].second == ram[i].second & & i < n-1; i ++)    {        ram[i].first = false;         ram[i].second = 0;     }    return "success! area deleted! "; } int get_status(){    cout < < endl < < "byte using of 1024 ram: " < < endl;     for(int i = 0 ; i < n-2 ; i ++)    {        if(ram[i].first == false)            cout < < "-" < < ' ';         else            cout < < ram[i].second < < ' ';     }} int main(){    ///code by dmitry kulazhenko (dmitrycpp)    ///ram index begins at 0    ///give area of ram, size n   get_area   enter   n    ///delete area, with start index n   del_area   enter   n    ///give status of using ram   get_status    ///to quit   exit    string s;     while( s ! = "exit" )    {        cin > > s;         if (s == "get_area")        {            int n;             cin > > n;             cout < < get_area(n);             cout < < endl;         }        if (s == "del_area")        {            int n;             cin > > n;             cout < < del_area(n);             cout < < endl;         }        if (s == "get_status")        {            cout < < get_status();             cout < < endl;         }    }    return 0; }

Семь единиц в числе 237

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS