99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

代做159.342 、代寫Operating Systems 編程設(shè)計(jì)
代做159.342 、代寫Operating Systems 編程設(shè)計(jì)

時(shí)間:2025-06-04  來源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



159.342 - Operating Systems and Networks
Assignment #3 (due on 6/Jun)
Memory Management Using the Buddy System Strategy
OBJECTIVE:
The main objective in this assignment is to implement the Buddy System memory management 
strategy by writing two functions that implement the same functionalities as the C Standard library’s 
malloc() and free(). You should apply your knowledge of memory management concepts, so the 
functions are as efficient as possible. The buddy system will be characterised and compared against 
the existing C Standard library functions based on ACTUAL RUNNING TIME and MEMORY USAGE. 
Given a large block of contiguous memory to manage, your functions should be able to fulfil a series 
of memory allocation and deallocation requests. In your implementation, you are not allowed to 
use the built-in malloc, free, new, delete or any other memory allocators that come from other 
third-party libraries. 
START-UP CODES:
The start-up codes provide a test routine that makes successive calls for memory allocations and 
deallocations, involving a replaceable implementation of MALLOC and FREE. Functions for 
measuring the actual running time and total memory usage of the memory management strategy
are also provided.
///////////////////////////////
// TEST ROUTINE
///////////////////////////////
#ifdef RUN_COMPLETE_TEST 
 cout << "\n\n executing " << NO_OF_ITERATIONS << " rounds of combinations of memory allocation and deallocation..." <<
endl;
 
 for(i=0;i<NO_OF_ITERATIONS;i++) {
 k=myrand() % NO_OF_POINTERS; // pick a pointer
 if(n[k]) { // if it was allocated then free it
 // check that the stuff we wrote has not changed
 if ( (n[k][0]) != (unsigned char) k)//(n[k]+s[k]+k) )
 printf("Error when checking first byte! in block %d \n",k);
 if(s[k]>1 && (n[k][s[k]-1])!=(unsigned char) k )//(n[k]-s[k]-k))
 printf("Error when checking last byte! in block %d \n",k);
 FREE(n[k]); 
 }
 size=randomsize(); // pick a random size
 #ifdef DEBUG_MODE
 cout << "\tPick random size to allocate: " << size << endl;
 #endif
 
 n[k]=(unsigned char *)MALLOC(size); // do the allocation
 if(n[k] != NULL){
 #ifdef DEBUG_MODE
 cout << "\tallocated memory of size: " << size << endl; 
 #endif 
 s[k]=size; // remember the size
 n[k][0]=(unsigned char) k; // put some data in the first and 
 if(s[k]>1) n[k][s[k]-1]=(unsigned char) k; // last byte
 } else {
 cout << "\tFailed to allocate memory of size: " << size << endl; 
 } 
 }
#endif
n.h.reyes@massey.ac.nz
Selecting a memory management strategy to test
You can switch between different memory management strategies by changing the definition of 
MALLOC and FREE, as defined inside main.cpp (see below). The first two options are already 
provided, but the third option corresponds to the Buddy System and therefore, needs to be 
implemented in this assignment:
//---------------------------------------
// WHICH MEMORY MANAGEMENT STRATEGY?
//---------------------------------------
// enable the following compiler directives to test the real malloc and free
//(1) use built-in C functions
const string strategy = "malloc";
#define MALLOC malloc
#define FREE free
//---------------------------------------
//enable the following compiler directives to test a simple implementation of malloc and free
//(2) use user-defined functions
//const string strategy = "mymalloc";
// #define MALLOC mymalloc
// #define FREE myfree
//---------------------------------------
//enable the following compiler directives to test your implementation of the Buddy system strategy
//(3) use Buddy System
// const string strategy = "Buddy System";
// #define USE_BUDDY_SYSTEM
// #define MALLOC buddyMalloc
// #define FREE buddyFree
//---------------------------------------
CORE FUNCTIONS REQUIRED:
Skeleton functions for buddy system’s malloc and free are already provided inside buddysys.cpp. 
Write your implementation inside them. You are allowed to add any supporting functions, data 
structures and variables in the program. 
void *buddyMalloc(int request_memory){
 //write your buddy system’s memory allocation codes here
 //this function should provide the same functionality as the malloc() function

int buddyFree(void *p){
 //write your buddy system’s memory deallocation codes here
 //this function should provide the same functionality as the free() function
}
AUXILIARY FUNCTIONS PROVIDED:
The Auxiliary functions, constants and data structures declared and implemented inside auxiliary.cpp 
and auxiliary.h should all be kept as is.
MINIMUM CONTIGUOUS MEMORY SIZE
As part of characterising the performance of your implementation, find the minimum contiguous 
memory size that allows the Buddy System strategy to accommodate the succession of memory 
allocation and deallocation requests in the test routine. To accomplish this, you need to experiment 
with different settings for the NUMBEROFPAGES until the test routine could be fully completed. 
Example: 
As an example, if you set NUMBEROFPAGES equal to 1024, then the MEMORYSIZE could be 
computed as follows:
// inside main.cpp
MEMORYSIZE = (long long int) ((long long int)NUMBEROFPAGES * (long long int)PAGESIZE);
Note that in the start-up codes, the PAGESIZE is set to 4096. Therefore, MEMORYSIZE will be equal 
to 4,194,304 bytes (1024 * 4096) or 4.19 MegaBytes. 
Next, with your MEMORYSIZE setting, run the test routines to see if all requests for memory 
allocations and deallocations can be satisfied. 
If the test routine cannot be completed, repeat the following steps until the test routine can be 
completed.
1. increase the MEMORYSIZE by a small amount, then recompile the code
2. run the test routine.
MEASURE OF PERFORMANCE
Download the Excel file, named assignment_documentation.xlsx from our stream website.
Characterise your Buddy System implementation and compare it against the C Standard library’s 
malloc and free to see if its speed of execution is comparable. Fill-up the Excel worksheet to 
document your experiment results. You only need to record the performance of your Buddy System 
implementation.
DEBUGGING:
For debugging purposes, I have created a simple test routine (inside the start-up codes) to assist the 
class. To activate this simple test temporarily, modify the auxillary.h file to enable 
RUN_SIMPLE_TEST as follows:
Before submitting your assignment, you should comment out #define RUN_SIMPLE_TEST and re activate #define RUN_COMPLETE_TEST again.
n.h.reyes@massey.ac.nz
n.h.reyes@massey.ac.nz
Further, inside main.cpp, I have made a provision for this Simple Test already, it will automatically 
switch to using 512 bytes as the MEMORYSIZE, to conduct the test.
For more details on how to debug your codes, please see the file, named 
A3_debugging_tips_2025_v1.docx. This is downloadable from our stream website.
SUBMISSION INSTRUCTIONS:
1. Submit your complete C/C++ program electronically via Stream. 
2. Use the following filename for your main program (as set in the start-up codes): main.cpp
3. Submit the makefile for building your codes. The makefile should suffice to build your 
codes.
4. As a backup, if you developed your program using an IDE, such as VSCODE or Clion, also 
submit the complete support files (e.g. CMakeLists.txt, project file, *.sln, *.JSON, etc.), for 
building your codes. 
5. Assignment documentation file: Download and fill out the Excel file, named 
assignment_documentation.xlsx to provide important information about your work. 
Rename the file using your ID_number (e.g. 87654321.xlsx). This will help facilitate 
accurate marking of your assignment. Deductions will be made if you do not submit the 
completed Excel file.
6. Snapshots file: Create a document containing snapshots of the simulation results. Show the 
results of executing RUN_COMPLETE_TEST. If this cannot be achieved, for partial marks, show 
the results of executing RUN_SIMPLE_TEST.
Label and briefly describe each image. You may create a Word document or a pdf file to 
accomplish this task.
7. Create a zip file containing the following files:
o Complete set of codes (including *.cpp, *.h, makefile, other supporting files)
o Snapshots file
8. Submit the zip file containing your complete program and snapshots electronically via 
Stream. You will find a button with the following label.
9. Submit the assignment documentation Excel file via Stream website. You will find a 
separate button with the following label.
10. Lastly, submit the Gen AI Usage documentation file via Stream website. You will find a 
separate button with the following label.
Distribution of marks:
The assignment will be marked based on functionality, design and correctness. 
The marks are distributed as follows:
• 5 marks: for correct implementation of buddyMalloc.
• 5 marks: for correct implementation of buddyFree.
• 3 marks: for memory efficiency (Note: this is based on the minimum contiguous memory 
size that allows the Buddy System strategy to accommodate the succession of memory 
allocation and deallocation requests in the RUN_COMPLETE_TEST routine)
• 2 marks: for documentation (i.e. accurate documentation of performance and other 
important assignment details - Excel assignment documentation, snapshots).
Other Notes
• This assignment is worth 15 marks. 
• Marks will be subtracted for obvious copying and/or for delays without justification.

請(qǐng)加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp


 

掃一掃在手機(jī)打開當(dāng)前頁
  • 上一篇:BISM3206代做、代寫Python編程語言
  • 下一篇:COMP4233代做、代寫Python/Java程序
  • 無相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評(píng)軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)/客戶要求/設(shè)計(jì)優(yōu)化
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    出評(píng) 開團(tuán)工具
    出評(píng) 開團(tuán)工具
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
    海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
    合肥機(jī)場(chǎng)巴士4號(hào)線
    合肥機(jī)場(chǎng)巴士4號(hào)線
    合肥機(jī)場(chǎng)巴士3號(hào)線
    合肥機(jī)場(chǎng)巴士3號(hào)線
  • 短信驗(yàn)證碼 trae 豆包網(wǎng)頁版入口 目錄網(wǎng) 排行網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                日韩av一区二区三区| av激情综合网| 国产精品影视在线观看| 色爱区综合激月婷婷| 欧美成人免费网站| 一区二区三区在线免费| 精彩视频一区二区三区| 欧洲精品中文字幕| 国产欧美日本一区视频| 免费高清在线一区| 在线日韩国产精品| 国产三级欧美三级日产三级99| 亚洲高清不卡在线观看| av亚洲精华国产精华精| 久久综合九色综合欧美就去吻| 亚洲一区二区三区中文字幕在线| 成人一区二区三区在线观看| 欧美变态口味重另类| 亚洲高清三级视频| 色94色欧美sute亚洲线路一久| 欧美国产日韩亚洲一区| 国产精品一区二区黑丝| 欧美一区二区三区播放老司机| 亚洲综合久久久久| 色老汉一区二区三区| 国产精品国产三级国产普通话99 | 丁香天五香天堂综合| 欧美一区二区啪啪| 天使萌一区二区三区免费观看| 欧美综合欧美视频| 亚洲视频在线一区观看| 粉嫩aⅴ一区二区三区四区五区| 久久亚洲精品国产精品紫薇| 精品一区二区三区免费播放| 精品福利在线导航| 国产大片一区二区| 国产日韩欧美精品一区| 国产精品888| 中文字幕巨乱亚洲| jvid福利写真一区二区三区| 成人欧美一区二区三区小说| 99国产精品国产精品久久| 国产精品成人免费精品自在线观看| 成人性视频免费网站| 国产精品无人区| 97精品电影院| 亚洲成av人综合在线观看| 777午夜精品视频在线播放| 日韩二区三区在线观看| 欧美电视剧免费观看| 国产成人免费视| 亚洲美女屁股眼交3| 欧美日韩高清一区| 美国一区二区三区在线播放| 国产欧美日韩久久| 一本久久精品一区二区| 亚洲线精品一区二区三区八戒| 欧美日本高清视频在线观看| 另类小说综合欧美亚洲| 国产精品网站在线| 欧洲在线/亚洲| 麻豆国产欧美日韩综合精品二区 | 成人国产精品免费观看视频| 亚洲人被黑人高潮完整版| 欧美日韩在线电影| 麻豆精品一二三| 国产精品欧美经典| 欧美精品v日韩精品v韩国精品v| 久久福利视频一区二区| 一区在线观看视频| 欧美电影一区二区三区| 国产成人aaaa| 丝袜国产日韩另类美女| 中文字幕精品一区二区精品绿巨人 | 中文字幕高清不卡| 欧美日韩国产电影| 国产精品夜夜嗨| 亚洲成人一区二区| 亚洲国产成人私人影院tom| 欧美日本一区二区三区四区| 高清av一区二区| 日韩黄色片在线观看| 国产精品欧美久久久久无广告 | 欧美精品日韩一本| 国产.精品.日韩.另类.中文.在线.播放| 一级日本不卡的影视| 国产人妖乱国产精品人妖| 欧美日韩高清一区| 91女人视频在线观看| 国产一区二区久久| 午夜免费欧美电影| 亚洲色图欧美偷拍| 国产午夜久久久久| 日韩欧美中文字幕制服| 欧美视频第二页| 色综合久久天天| 国产盗摄一区二区三区| 免费在线观看成人| 一级做a爱片久久| 91丨九色丨国产丨porny| 精品影视av免费| 国产一区在线不卡| 91精品国产综合久久国产大片 | 国产欧美日韩在线观看| 欧美精品日韩精品| 91福利国产成人精品照片| 国产福利一区二区三区视频| 麻豆freexxxx性91精品| 亚洲综合色成人| 亚洲精品国产a| 亚洲天堂a在线| 中文字幕二三区不卡| 久久久久久久综合日本| 欧美精品1区2区| 欧美日韩视频在线一区二区| 91网站在线播放| 成人网男人的天堂| 北岛玲一区二区三区四区| 国产又黄又大久久| 国产一区二区不卡| 国产一区二区在线免费观看| 久久国产精品露脸对白| 激情文学综合网| 国产伦精一区二区三区| 国产在线观看免费一区| 国产一区二区三区免费播放| 国产乱人伦偷精品视频免下载| 精品一区二区精品| 国产suv精品一区二区6| av中文字幕一区| 欧美色图免费看| 欧美一区二区三区婷婷月色| 精品久久五月天| 欧美激情一区二区三区不卡| 国产精品第五页| 亚洲第一会所有码转帖| 麻豆精品视频在线观看| 国产精品69毛片高清亚洲| 99国产精品久久久久久久久久久 | 欧美精品粉嫩高潮一区二区| 欧美一级国产精品| 蜜臀av一区二区三区| 丰满亚洲少妇av| 成人avav影音| av中文字幕不卡| 91国偷自产一区二区三区观看 | 天天亚洲美女在线视频| 婷婷久久综合九色综合伊人色| 成人动漫一区二区在线| 日韩精彩视频在线观看| 亚洲一级在线观看| 亚洲影视在线观看| 一区二区在线观看视频| 亚洲欧洲精品一区二区精品久久久| 国产亚洲福利社区一区| 欧美一区二区女人| 欧美一区二区三区婷婷月色| 欧美日韩精品一区二区在线播放| 色吊一区二区三区| 色偷偷久久人人79超碰人人澡| 99久久精品99国产精品| 岛国精品在线播放| 国产成人一区在线| 国产91在线观看| 成人app在线观看| 99精品国产热久久91蜜凸| heyzo一本久久综合| 成人av免费观看| 欧洲视频一区二区| 欧美精选午夜久久久乱码6080| 欧美精品在欧美一区二区少妇| 日韩一区二区免费电影| 久久久久久毛片| 中文字幕在线不卡一区| 亚洲国产欧美在线| 免费在线欧美视频| 国产在线精品一区二区| 东方欧美亚洲色图在线| 一本久久综合亚洲鲁鲁五月天| 欧美影片第一页| 精品国产人成亚洲区| 中文一区二区完整视频在线观看| 亚洲视频一区二区在线| 首页国产欧美日韩丝袜| 国产成人自拍高清视频在线免费播放| 国产成人免费视频网站| 91福利国产精品| a4yy欧美一区二区三区| 欧美四级电影网| 亚洲视频一区二区在线| 日韩一区二区视频| 日韩欧美一区二区久久婷婷| 亚洲成人黄色影院| 93久久精品日日躁夜夜躁欧美| 国产亚洲精品aa午夜观看| 国产一区二区三区久久悠悠色av| 91极品美女在线| 在线综合+亚洲+欧美中文字幕| 夜夜操天天操亚洲| a4yy欧美一区二区三区|