- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验报告-存储管理实验
存储管理实验
一.实验目的及要求:
通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法。
通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。
二 . 实验环境:
操作系统:Windows XP
编译环境:Visual C++ 6.0
三.算法描述
由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU时限等因素。
作业调度算法:采用先来先服务(FCFS)调度算法,即按作业提交的先后次序进行调度。总是首先调度在系统中等待时间最长的作业。
每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。
作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。
各个等待的作业按照提交时刻的先后次序排队,总是首先调度等待队列中队首的作业。
每个作业完成后要打印该作业的开始运行时刻、完成时刻、周转时间和带权周转时间,这一组作业完成后要计算并打印这组作业的平均周转时间、带权平均周转时间。
四. 实验步骤:
核心源码:
void acceptment2(RECT *head,RECT *back1)
{
RECT *before,*after;
int insert ;
insert=0;
before=head;
after=head-next;
if(head-next==NULL) /*如果可利用区表为空*/
{
head-size=back1-size;
head-next=back1;
maxblocknum++;
back1-next=NULL;
}
else
{
while(after!=NULL) /*与上一块合并*/
if(back1-address==after-size+after-address)
{
before-next=after-next;
back-size=after-size+back1-size;
free(after);
after=NULL;
}
else
{
after=after-next;
before=before-next;
}
before=head;
after=head-next;
while(after!=NULL)
if(after-address==back1-size+back1-address) /*与下一块合并*/
{
back1-size=back1-size+after-size;
before-next=after-next;
free(after);
after=NULL;
}
else
{
before=before-next;
after=after-next;
}
before=head;/*将回收结点插入到合适的位置*/
after=head-next;
do{
if(after==NULL||(after-sizeback1-size))
{
before-next=back1;
back1-next=after;
insert=1;
}
else
{
before=before-next;
after=after-next;
}
}while(!insert);
if(head-sizeback1-size) /*修改最大块值和最大块数*/
{
head-size=back1-size;
maxblocknum++;
}
else
if(head-size==back1-size)
maxblocknum++;
}
}
/*分配函数*/
RECT *assignment(RECT *head,int application)
{
RECT *after,*before,
文档评论(0)