1 / 12
文档名称:

最先适应算法.doc

格式:doc   大小:49KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

最先适应算法.doc

上传人:精品小课件 2020/8/8 文件大小:49 KB

下载得到文件列表

最先适应算法.doc

相关文档

文档介绍

文档介绍:#include<>#include<>#include<>#include<>#include<>#include<>#include<>#defineMAX_THREAD3typedefstructfreearea{//表示空闲区域的数据结构 structfreearea*next;//指向下一个结点的指针 intstart_address;//空闲区起始地址 intsize;//空闲区大小}FREEAREA;typedefstructrequire_memory{//记录线程申请内存的数据结构structrequire_memory*next;//指向下一个结点的指针 charthread_name[10];//线程名 intsize;//申请内存大小(以KB为单位) intduration;//在内存的驻留时间(以秒为单位)}REQUIRE_MEMORY;typedefstructthread_residence_memory{//描述线程驻留区的数据结构structthread_residence_memory*next;//指向下一个结点的指针 charthread_name[10];//线程名 intstart_address;//驻留区起始地址 intsize;//驻留区大小}THREAD_RESIDENCE_MEMORY;FREEAREAinit_free_area_table[5]={ {NULL,10,10}, {NULL,40,30}, {NULL,80,5}, {NULL,145,15}, {NULL,180,20}};//测试数据:初始空闲区表REQUIRE_MEMORYinit_thread_require_memory_table[3]={ {NULL,"thread_1",20,4}, {NULL,"thread_2",10,5}, {NULL,"thread_3",5,6}};//测试数据:初始内存申请表THREAD_RESIDENCE_MEMORYinit_thread_residence_memory_table[5]={ {NULL,"a",0,10}, {NULL,"b",20,20}, {NULL,"c",70,10}, {NULL,"d",85,60}, {NULL,"e",160,20}};//测试数据:初始线程驻留区表FREEAREA*p_free_area_list=NULL;//空闲区链首REQUIRE_MEMORY*p_thread_require_memory_queue=NULL;//内存申请队列队首THREAD_RESIDENCE_MEMORY*p_thread_residence_memory_list=NULL;//线程驻留链首THREAD_RESIDENCE_MEMORY*tail_thread_residence_memory_list=NULL;//线程驻留区链尾CRITICAL_SECTIONCS_THREAD_MEMORY_LIST;//保护线程驻留区链表的临界区CRITICAL_SECTIONCS_SCREEN;//保护屏幕的临界区CRITICAL_SECTIONCS_FREEAREA_LIST;//保护空闲区链表的临界区HANDLEh_thread[MAX_THREAD];//线程句柄数组voidprint_space(intnum);//输出若干个空格voiddisplay_thread_residence_memory_list();//显示线程驻留区表voiddisplay_freearea_list();//最先适应分配法的函数FREEAREA*FF_initialize_freearea_list(FREEAREA*init_table,intnum);//初始化空闲区链表voidFF_delete_freearea_list();//删除空闲区链表REQUIRE_MEMORY*FF_initialize_require_memory_list(REQUIRE_MEMORY*init_table,intnum);//初始化内存申请链表voidFF_delete_require_memory_list();//删除内存申请链表THREAD_RESIDENCE_MEMORY*FF_initialize_thread_residence_memory_list(THREAD_RESIDENCE_MEMORY*init_table,intnum);//初始化线程驻留区链表voidFF_delete_thread_residence_memory_l