操作系统实验四存储管理

操作系统实验四存储管理

ID:38628983

大小:342.00 KB

页数:10页

时间:2019-06-16

操作系统实验四存储管理_第1页
操作系统实验四存储管理_第2页
操作系统实验四存储管理_第3页
操作系统实验四存储管理_第4页
操作系统实验四存储管理_第5页
资源描述:

《操作系统实验四存储管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、集美大学计算机工程学院实验报告课程名称:操作系统班级:计算1014指导教师:李传目姓名:林升仁实验项目编号:实验四学号:2010810116实验项目名称:存储管理实验成绩:一、目的理解动态异长存储分区资源管理,掌握所需数据结构和管理程序,了解各种存储分配算法的优点和缺点。二、实验内容与设计思想分析UNIX最先适应(FF)存储分配算法,即map数据结构、存储分配函数malloc()和存储释放函数mfree(),找出与算法有关的成分。修改上述与算法有关的成分,使其分别体现BF分配原则和WF分配原则。三、实验使用环境RedHa

2、tEnterpriselinux5四、实验结果源程序:/****************************************************************************Copyright(C)2004byroot**root@simplymepis****Thisprogramisfreesoftware;youcanredistributeitand/ormodify**itunderthetermsoftheGNUGeneralPublicLicenseaspublishedb

3、y**theFreeSoftwareFoundation;eitherversion2oftheLicense,or**(atyouroption)anylaterversion.****Thisprogramisdistributedinthehopethatitwillbeuseful,**butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof**MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe**GNUGen

4、eralPublicLicenseformoredetails.****YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense**alongwiththisprogram;ifnot,writetothe**FreeSoftwareFoundation,Inc.,**59TemplePlace-Suite330,Boston,MA02111-1307,USA.*******************************************************

5、*********************/#ifdefHAVE_CONFIG_H#include#endif#include#include#defineMAPSIZE116structmap//存储资源表结构{/*char*m_size;char*m_addr;*/intm_addr;intm_size;};structmapmap[MAPSIZE];//存储资源表intFF_malloc(structmap*mp,intsize)//存储分配函数{regis

6、terinta,s;registerstructmap*bp,*bpp;for(bp=mp;bp->m_size;bp++){if(bp->m_size>=size){a=bp->m_addr;s=bp->m_size;for(bpp=bp;bpp->m_size;bpp++)//最先适应{if(bpp->m_size>=size&&bpp->m_addr<=a){a=bpp->m_addr;s=bpp->m_size;bp=bpp;}}bp->m_addr+=size;if((bp->m_size-=size)==0)

7、do{bp++;(bp-1)->m_addr=bp->m_addr;}while((bp-1)->m_size=bp->m_size);return(a);}}return(-1);}voidmfree(structmap*mp,intaa,intsize)//存储释放函数{registerstructmap*bp;registerintt;registerinta;a=aa;for(bp=mp;bp->m_addr<=a&&bp->m_size!=0;bp++);if(bp>mp&&(bp-1)->m_addr+(bp

8、-1)->m_size==a){//与前合并(bp-1)->m_size+=size;if(a+size==bp->m_addr){//前后合并(bp-1)->m_size+=bp->m_size;while(bp->m_size){bp++;(bp-1)->m_addr=bp->m_addr;(bp-1)->m_s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。