- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统 内存管理 1. 功能介绍 1 - Set memory size (default=1024) 2 - Select memory allocation algorithm 3 - New process 4 - Terminate a process 5 - Display memory usage 0 - Exit 2. 主要数据结构 -1 内存空闲分区的描述 /*描述每一个空闲块的数据结构*/ struct free_block_type{ int size; int start_addr; struct free_block_type *next; }; /*指向内存中空闲块链表的首指针*/ struct free_block_type *free_block; 2. 主要数据结构 - 2 描述已分配的内存块 /*每个进程分配到的内存块的描述*/ 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; 2.主要数据结构 – 3 常量定义 #define PROCESS_NAME_LEN 32 /*进程名长度*/ #define MIN_SLICE 10 /*最小碎片的大小*/ #define DEFAULT_MEM_SIZE 1024 /*内存大小*/ #define DEFAULT_MEM_START 0 /*起始位置*/ /* 内存分配算法 */ #define MA_FF 1 #define MA_BF 2 #define MA_WF 3 int mem_size=DEFAULT_MEM_SIZE; /*内存大小*/ int ma_algorithm = MA_FF; /*当前分配算法*/ static int pid = 0; /*初始pid*/ int flag = 0; /*设置内存大小标志*/ 3. 主要模块介绍 main()函数 main(){ char choice; pid=0; free_block = init_free_block(mem_size); //初始化空闲区 while(1) { display_menu(); //显示菜单 fflush(stdin); choice=getchar(); //获取用户输入 switch(choice){ case ‘1’: set_mem_size(); break; //设置内存大小 case ‘2’: set_algorithm();flag=1; break;//设置算法 case ‘3’: new_process(); flag=1; break;//创建新进程 case ‘4’: kill_process(); flag=1; break;//删除进程 case ‘5’: display_mem_usage(); flag=1; break; //显示内存使用 case ‘0’: do_exit(); exit(0); /释放链表并退出 default: break; } } } init_free_block(int mem_size); /*初始化空闲块,默认为一块,可以指定大小及起始地址*/ 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;
您可能关注的文档
- 全新版大学英语第二版unit1解读.ppt
- 使用D触发器设计一个11001序列检测器解读.doc
- 六年级用字母表示数课件(绝对精华版)解读.ppt
- 使用Nginx+Keepalived组建高可用负载平衡Webserver集群解读.doc
- 使用单位电梯安全管理制度解读.doc
- 使用单位制度汇编2013解读.doc
- 六年级语文上《口语交际习作七》精美课件解读.ppt
- 六年级语文上册第一单元习作课件解读.ppt
- 使用近义词辨析解读.ppt
- 六年级语文上册口语交际习作七解读.ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)