欢迎来到天天文库
浏览记录
ID:47541636
大小:27.55 KB
页数:14页
时间:2020-01-14
《实验四动态分区分配算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.实验内容:存储器管理实验一、 实验目的采用首次适应算法(FF),最佳适应算法(BF),最坏适应算法(WF)三种不同的算法,实现对系统空闲区的动态分区分配。二、实验题目给予顺序搜索的动态分区算法的程序。 三、实验要求读懂给出的核心代码,进行适当的修改,编译通过后,完成实验报告。四、核心代码#include#include#include//常量定义#definePROCESS_NAME_LEN32#defineMIN_SLICE10#defineDEFAULT_MEM_SIZE10
2、24#defineDEFAULT_MEM_START0#defineMA_FF1#defineMA_BF2#defineMA_WF3intmem_size=DEFAULT_MEM_SIZE;intma_algorithm=MA_FF;staticintpid=0;intflag=0;structfree_block_type{intsize;intstart_addr;structfree_block_type*next;};structfree_block_type*free_block;word范文.//描述已分配的内存块structall
3、ocated_block{intpid;intsize;intstart_addr;charprocess_name[PROCESS_NAME_LEN];structallocated_block*next;};structallocated_block*allocated_block_head=NULL;//函数声明structfree_block_type*init_free_block(intmem_size);voiddisplay_menu();intset_mem_size();voidset_algorithm();voidrea
4、rrange(intalgorithm);intrearrange_FF();intrearrange_BF();intrearrange_WF();intnew_process();intallocate_mem(structallocated_block*ab);voidkill_process();intfree_mem(structallocated_block*ab);intdispose(structallocated_block*free_ab);intdisplay_mem_usage();voiddo_exit();struc
5、tallocated_block*find_process(intpid);intmain(){charchoice;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;//设置算法c
6、ase'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;}word范文.}return1;}structfree_block_type*init_free_block(intmem_size){structfree_block_type*fb;
7、fb=(structfree_block_type*)malloc(sizeof(structfree_block_type));if(fb==NULL){printf("Nomem");returnNULL;}fb->size=mem_size;fb->start_addr=DEFAULT_MEM_START;fb->next=NULL;returnfb;}voiddisplay_menu(){printf("");printf("1-Setmemorysize(default=%d)",DEFAULT_MEM_SIZE);pri
8、ntf("2-Selectmemoryallocationalgorithm");printf("3-Newprocess");printf(
此文档下载收益归作者所有