Написать программу, моделирующую динамическое распределение памяти в операционной системе. в качестве модели оперативной памяти программа должна использовать байтовый массив размера не менее 1024 байт. использование других переменных в программе запрещено (то есть вся информация о свободных/занятых участках должна храниться внутри массива). в программе в обязательном порядке должны присутствовать следующие функции: а) выделить участок заданного размера. в случае успеха вывести начальный адрес выделенного участка. если участка подходящего для выделения не найдено, необходимо вывести диагностическое сообщение о нехватке памяти. б) освободить ранее выделенный участок. в качестве параметра функция должна принимать начальный адрес освобождаемого участка. ранее выделенный участок может быть освобожден только целиком (освобождение части участка не допускается). в) получить информацию о свободных/занятых участках в «оперативной памяти» (количество участков каждого типа, начальные адреса, размеры, общее количество занятой и свободной памяти). варианты . варианты комбинируются из возможных способов хранения информации о свободных занятых блоках и различных алгоритмов, применяемых при выделении участка. примерное соответствие варианта и указанных параметров представлено в следующей таблице: вариант алгоритм выделения способ хранения информации 1 первый подходящий битовая карта 2 наиболее подходящий битовая карта 3 наименее подходящий битовая карта 4 двоичного разбиения битовая карта 5 первый подходящий список блоков 6 наиболее подходящий список блоков 7 наименее подходящий список блоков 8 двоичного разбиения список блоков я 5 вариант)) заранее
203
207
Ответы на вопрос:
Вот подредактируй ввод вывод. или вот #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; }
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Р00000010.05.2021 09:57
-
saparhanaruzhan14.10.2022 06:18
-
Настя1261104.07.2020 01:52
-
proxiv20.06.2023 12:56
-
zlata2514825.11.2020 00:15
-
Face2282112.06.2022 13:21
-
Classica2772522.09.2021 07:14
-
NordTactick15.11.2021 16:09
-
Нонэйм217.06.2020 18:36
-
Манdarinka02.10.2020 02:17
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.