国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

代做159.342 、代寫Operating Systems 編程設計
代做159.342 、代寫Operating Systems 編程設計

時間:2025-06-04  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



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.

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp


 

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

    合肥圖文信息
    流體仿真外包多少錢_專業CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務 管路
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真技術服務
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲勞振動
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲
    流體cfd仿真分析服務 7類仿真分析代做服務40個行業
    流體cfd仿真分析服務 7類仿真分析代做服務4
    超全面的拼多多電商運營技巧,多多開團助手,多多出評軟件徽y1698861
    超全面的拼多多電商運營技巧,多多開團助手
    CAE有限元仿真分析團隊,2026仿真代做咨詢服務平臺
    CAE有限元仿真分析團隊,2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗證碼 豆包網頁版入口 破天一劍 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    亚洲欧美久久久久一区二区三区| 国产欧美自拍视频| 91精品国产91久久久久久久久 | 美女精品国产| 国产精品久久久久久久久久| 国产在线视频在线| 欧美激情亚洲视频| 国产日本欧美一区| 亚洲在线色站| 久久精品国产精品国产精品污| 人妻无码视频一区二区三区| 国产精品老牛影院在线观看| 国产精品一区二区三区毛片淫片| 亚洲综合色激情五月| 久久久最新网址| 蜜桃av噜噜一区二区三区| 一本久久a久久精品vr综合| 久久久免费观看视频| 欧美日韩亚洲在线| 亚洲一卡二卡区| 色婷婷av一区二区三区在线观看| 国内精品久久久久久中文字幕| 国产精品乱子乱xxxx| 国产精品一色哟哟| 日韩人妻无码精品久久久不卡| 国产精品网红福利| 国产乱码精品一区二区三区日韩精品 | 精品国产二区在线| 国产中文字幕乱人伦在线观看| 欧美专区日韩视频| 久久成人免费观看| 国产日韩精品在线播放| 日韩一区不卡| 国产精品高潮呻吟视频| 国产精品 欧美在线| 欧美又大粗又爽又黄大片视频| 蜜臀久久99精品久久久久久宅男| 久久久一二三四| 狠狠色综合一区二区| 一道精品一区二区三区| 日韩视频永久免费观看| 国产精选在线观看91| 人妻久久久一区二区三区| 久久国产精品偷| 久99久视频| 成人国产精品日本在线| 欧美中文字幕视频在线观看| 综合国产精品久久久| 按摩亚洲人久久| 91精品视频免费看| 欧美 日韩 亚洲 一区| 亚洲欧洲一区二区| 国产精品吊钟奶在线| 久久久噜噜噜www成人网| 国产天堂在线播放| 欧美在线一区二区三区四区| 亚洲人成无码www久久久| 国产精品久久久久久久久婷婷 | 日韩欧美一级在线| 色综合久综合久久综合久鬼88| 久久免费精品视频| 国产综合在线看| 日本a视频在线观看| 亚洲中文字幕无码不卡电影| 国产精品久久久久久久久 | 99视频日韩| 国产做受69高潮| 欧美日本韩国国产| 日韩午夜视频在线观看| 亚洲色精品三区二区一区| 国产精品久久久一区二区三区| 久久久久高清| 成人av.网址在线网站| 蜜桃视频一区二区在线观看| 日韩黄色片在线| 成人做爰www免费看视频网站| 色综合天天综合网国产成人网| 国产精品看片资源| 视频在线观看99| 国产成人一区二区三区别| 97久久国产精品| www.欧美黄色| 国产精品一 二 三| 国产片侵犯亲女视频播放| 女女同性女同一区二区三区91 | 人体精品一二三区| 日本精品一区| 日本www在线播放| 日本高清不卡三区| 日韩亚洲欧美视频| 日韩国产一级片| 日本毛片在线免费观看| 欧美一级片中文字幕| 午夜精品视频在线观看一区二区| 亚洲精品欧美日韩专区| 一级特黄录像免费播放全99| 久久久久久成人| 欧美激情一区二区三级高清视频| 国产精品高潮视频| 国产精品久久久久高潮| 国产精品久久久久久久久久免费 | 国产精品普通话| 国产精品视频免费在线| 国产精品嫩草视频| 国产精品美女久久久久久免费| 国产精品我不卡| 国产精品美女免费视频| 国产精品久久亚洲| 国产精品乱码| 精品国产aⅴ麻豆| 国产999精品视频| 欧美激情一二区| 亚洲精品无人区| 日韩中文字幕在线免费| 青青草国产精品视频| 欧美少妇一级片| 精品一区久久久| 国产男女在线观看| 99国内精品久久久久久久软件| 7777精品久久久久久| 久久精品国产精品亚洲色婷婷| 精品国产欧美一区二区五十路| 国产成人鲁鲁免费视频a| 日韩综合中文字幕| 国产精品久久久久久亚洲影视| 九九热精品视频| 在线日韩av永久免费观看| 欧美一区二区三区艳史| 欧美激情视频一区二区三区| 国产欧美一区二区三区不卡高清| 97精品国产97久久久久久| 国产不卡一区二区在线观看| 久久精品成人一区二区三区| 国产精品久久久久9999| 一区二区三区四区国产| 五月天国产一区| 欧美日韩一区二区在线免费观看| 国产色一区二区三区| 国产精品一 二 三| 国产福利一区二区三区在线观看| 久久久精品国产一区二区| 中文字幕乱码人妻综合二区三区| 日产精品久久久一区二区 | 国产成人免费高清视频| 色综合久综合久久综合久鬼88| 午夜精品免费视频| 激情成人开心网| 91精品国产综合久久久久久久久| 久久久久久久久久久视频| 欧美乱大交xxxxx| 视频一区视频二区视频| 青青在线视频免费观看| 国产美女主播一区| 久久久久久久久久久福利| 欧美成人全部免费| 色播五月综合| 国产免费裸体视频| 神马国产精品影院av| 在线视频91| 精品欧美一区二区精品久久| av一本久道久久波多野结衣| 国产精品无码免费专区午夜| 欧美一区二区三区四区在线 | 久久婷婷国产综合尤物精品| 国产精品成av人在线视午夜片| 日韩一级在线免费观看| 国产三级精品网站| 视频在线观看99| 亚洲国产精品毛片| 免费高清在线观看免费| 久久99国产精品| 在线国产99| 精品亚洲第一| 日韩专区在线播放| 亚洲熟妇av一区二区三区| 黄色国产小视频| 久久久久久久久久久一区| 亚洲国产一区二区精品视频| 国产日韩欧美亚洲一区| zzjj国产精品一区二区| 欧美一级视频一区二区| 国产精品一区二区三| 色老头一区二区三区在线观看| 亚洲一区二区久久久久久| 国产原创欧美精品| 视频一区视频二区国产精品| 亚洲精品一区二区三区樱花| 精品一区二区国产| 北条麻妃一区二区三区中文字幕| 两个人的视频www国产精品| 日韩av日韩在线观看| 精品午夜一区二区三区| 国产成人亚洲精品| 欧美极品在线视频| 欧美国产日韩在线播放| 国产日产亚洲精品| 久久久免费av| 午夜精品免费视频| 国产中文字幕二区| 日韩在线视频观看|