日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内存管理实验malloc,linux内存管理实验报告.doc

發布時間:2024/9/19 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内存管理实验malloc,linux内存管理实验报告.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux內存管理實驗報告

操作系統實驗報告

院別:XXXXXX

班級:XXXXXX

學號:XXXXXX

姓名:稻草人

實驗題目:內存管理實驗

實驗目的

通過本次試驗體會操作系統中內存的分配模式;

掌握內存分配的方法(FF,BF,WF);

學會進程的建立,當一個進程被終止時內存是如何處理被釋放塊,并當內存不滿足進程申請時是如何使用內存緊湊;

掌握內存回收過程及實現方法;

學會進行內存的申請釋放和管理;

實驗內容

附源代碼:

/*宏定義*/

/* 內存分配算法 */

#define MA_FF 1

#define MA_BF 2

#define MA_WF 3

int mem_size=DEFAULT_MEM_SIZE; /*內存大小*/

int ma_algorithm = MA_FF; /*當前分配算法*/

int flag = 0; /*設置內存大小標志*/

static int pid = 0; /*初始pid*/

int algorithm;

/*描述每一個空閑塊的數據結構*/

struct free_block_type{

int size;

int start_addr;

struct free_block_type *next;

};

/*指向內存中空閑塊鏈表的首指針*/

struct free_block_type *free_block;

/*每個進程分配到的內存塊的描述*/

struct allocated_block{

int pid;

int size;

int start_addr;

char process_name[PROCESS_NAME_LEN];

struct allocated_block *next;

};

/*進程分配內存塊鏈表的首指針*/

struct allocated_block *allocated_block_head = NULL;

struct allocated_block *find_process(int id)

{

struct allocated_block *p;

p=allocated_block_head;

while(p!=NULL)

{

if (p->pid==id)

return p;

}

return NULL;

}

void swap(int *p,int *q)

{

int temp;

temp = *p;

*p = *q;

*q = temp;

return;

}

void do_exit()

{

exit(0);

}

/*初始化空閑塊,默認為一塊,可以指定大小及起始地址*/

struct free_block_type* init_free_block(int mem_size){

struct free_block_type *fb;

fb=(struct free_block_type *)malloc(sizeof(struct free_block_type));

if(fb==NULL){

printf("No mem\n");

return NULL;

}

fb->size = mem_size;

fb->start_addr = DEFAULT_MEM_START;

fb->next = NULL;

return fb;

}

/*顯示菜單*/

display_menu(){

printf("\n");

printf("1 - Set memory size (default=%d)\n", DEFAULT_MEM_SIZE);

printf("2 - Select memory allocation algorithm\n");

printf("3 - New process \n");

printf("4 - Terminate a process \n");

printf("5 - Display memory usage \n");

printf("0 - Exit\n");

}

/*設置內存的大小*/

set_mem_size(){

int size;

if(flag!=0){ //防止重復設置

總結

以上是生活随笔為你收集整理的linux内存管理实验malloc,linux内存管理实验报告.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。