| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

操作系统实验四主存空间的分配与回收首次适应算法和循环首次适应算法

文***品

贡献于2020-12-03

字数:5891


实验报告

实验名称 首次适应算法循环首次适应算法
实验目
理解连续分区动态存储理方式实现存空间分配回收
实验原理
首次适应(first fitFF)算法
FF算法求空闲分区链址递增次序链接分配存时链首开始序查找直找满足求空闲分区然作业该分区中划出块存空间分配请求者余空闲分区留空闲链中链首直链尾找满足求分区表明系统中已没足够存分配该进程存分配失败返回
循环首次适应(next fitNF)算法
避免低址部分留许空闲分区减少查找空闲分区开销循环首次适应算法进程分配存空间时次链首开始查找次找空闲分区空闲分区开始查找直找满足求空闲分区中划出块玉请求相等存空间分配作业

实验容
实现存空间分配回收:
1 采变式分区理首次适应算法实现存空间分配回收
2 采变式分区理循环首次适应算法实现存空间分配回收
数结构符号说明:
typedef struct PCB进程控制块
{
char ProgressName[10] 进程名称
int Startaddress 进程开始址
int ProgressSize 进程
int ProgressState 0 进程状态
}
typedef struct FREE 空闲区结构体
{
int Free_num 空闲区名称
int Startaddress 空闲区开始址
int Endaddress 空闲区结束址
int Free_Space 空闲区
}

算法流程图:
首次适应算法


循环首次适应算法

程序代码截图:
#include
#include
#include
#include
#define N 1024
typedef struct PCB进程控制块
{
char ProgressName[10] 进程名称
int Startaddress 进程开始址
int ProgressSize 进程
int ProgressState 0 进程状态
}
typedef struct FREE 空闲区结构体
{
int Free_num 空闲区名称
int Startaddress 空闲区开始址
int Endaddress 空闲区结束址
int Free_Space 空闲区
}

int count 0 前存中进程数
bool ROM[N]设置存块
int p 0循环首次需标记前空闲区块
FREE FREE[100]设置空闲区数组100
int FREE_counter 0空闲区数
PCB num[20] 作业队列

void init()初始化操作
{
for(int i0 i ROM[i] 0
}

void showProgress(PCB &a)
{
printf(\n)
printf(进程名\t\t开始址\t\t\t\t结束址\n)输出存信息
printf(\n)
for(int i0 i for(int ji j if(num[j]Startaddress>num[j+1]Startaddress)
{
a num[j]
num[j] num[j+1]
num[j+1] a
}
for(int i0 i if(num[i]ProgressState0)
printf(s\t\td\t\t\td\t\td\t\t\nnum[i]ProgressNamenum[i]Startaddressnum[i]ProgressSizenum[i]ProgressSize+num[i]Startaddress1)
printf(\n)
}

void showFree()印空闲区情况
{
printf(\n)
printf( 空闲区名\t| 开始址\t| \t| 结束址\n)
printf(\n)
for (int i1 i< FREE_counter i++)
{
printf(\t1d\t8d\t11d\t d\nFREE[i]Free_numFREE[i]Startaddress FREE[i]Free_SpaceFREE[i]Endaddress)
printf(\n)
}
}

void find_FREE() 寻找空闲区
{
int ijp 计数值
FREE_counter 0预设空闲区数0
for(i 0 i < N i++)
if(ROM[i] 0)
{
p i
for(j i j < N j++)
{

if(ROM[j]0)未找空闲区j赋值i继续循环
{
i j
continue
}
if(ROM[j]1)找空闲区
{
FREE_counter++空闲区数+1
FREE[FREE_counter]Free_num FREE_counter设置空闲区编号
FREE[FREE_counter]Startaddress p
FREE[FREE_counter]Endaddress j1
FREE[FREE_counter]Free_Space jp
ij+1
break
}
}
if(j N && ROM[j1] 0)存进行特殊操作
{
FREE_counter++
FREE[ FREE_counter]Free_num FREE_counter空闲区进行处理
FREE[ FREE_counter]Startaddress p
FREE[ FREE_counter]Endaddress j1
FREE[ FREE_counter]Free_Space jp
}
}
}


void First_Fit(PCB &a)首次适应算法
{
int ijk
for(i0 i if(ROM[i]0)
{
for(ji j<(i+aProgressSize)&&j if(ROM[j]1)
{
i j + 1
break
}
if(ji+aProgressSize+1)
{
aStartaddress i设置作业开始址
aProgressState 1标记作业存中
for(ki k ROM[k]1
printf(进程s插入成功进程s初始址d结束址d\naProgressNameaProgressNameaStartaddressaStartaddress+aProgressSize1)
return
}
}
if(iN)未查询合适区域
printf(插入失败空间\n)
}

void Next_Fit(PCB &a)循环首次适应算法实现作业调度

{
int ijk
for(ip i {
if(ROM[i]0)
{
for(ji j<(i+aProgressSize)&&j if(ROM[j]1)
{
i j+1
break
}
if(ji+aProgressSize+1)找合适空闲区
{
aStartaddressi
aProgressState1
for(ki k ROM[k]1
printf(插入成功进程s 初始址d结束址d\naProgressNameaStartaddressaStartaddress+aProgressSize1)
pi+aProgressSize
return
}
}
}
for(i0 i

if(ROM[i]0)
{

for(ji j<(i+aProgressSize)&&j

if(ROM[j]1)
{
ij+1
break
}
if(ji+aProgressSize+1)成功找结束标记前P现作业尾部
{
aStartaddressi
aProgressState1
for(ki k ROM[k]1
printf(插入成功进程s 初始址d\naProgressNameaStartaddress)
pi+aProgressSize
break
}
}

if(ip)查询两部分未找合适区域输出插入失败语句
printf(插入失败空间\n)
}

void Delete(PCB &a)删作业修改存信息初始化该作业信息
{
int i
for(iaStartaddress i ROM[i]0
aProgressState0状态标记未
printf(进程s删成功\naProgressName)
}

int main()
{
int choose1choose
char ProgressName[10]
PCB a
init()
printf(\t存空间分配回收\n)
printf(\n)
printf(\t1首次适应算法\n)
printf(\t2循环首次适应算法\n)
printf(\n)
printf(请选择分配算法:)
scanf(d&choose1)
system(cls)
while(1)
{
wsystem(cls)
printf(前分配算法:)
if(choose1 1)
printf(首次适应算法\n)
else
printf(循环首次适应算法\n)
printf(\n)
printf(\t1插入进程\n)
printf(\t2删进程\n)
printf(\t3显示进程信息\n)
printf(\t4显示空闲区\n)
printf(\n)
printf(请输入:)
scanf(d&choose)
system(cls)
switch(choose)
{
case 1
printf(请输入进程名)
scanf(s&aProgressName)
printf(请输入进程:)
scanf(d&aProgressSize)
for(int i 0 i < count i++)
if(strcmp(num[i]ProgressNameaProgressName)0)
{
printf(已存名进程法插入\n)
system(pause)
goto w
}
if(choose11)首次适应算法
First_Fit(a)
else
Next_Fit(a)循环首次适应算法
num[count++]a
break
case 2
if(count 0)
{
printf(前没进程存中法删\n)
system(pause)
goto w
}
printf(输入删进程名字:)
scanf(s&ProgressName)
for(int i0 i if(strcmp(num[i]ProgressNameProgressName))
Delete(num[i])
else
printf(没找应进程请重新输入\n)
break
case 3
showProgress(a)
break
case 4
find_FREE()
showFree()
break
default
printf(\n效输入\n)
}
system(pause)
}
return 0
}



界面:

首次适应算法初始空闲区:

插入进程:

插入3进程:


空闲区信息:
删进程2:

删空闲区状况:

插入进程初始址100:

循环首次适应算法插入3进程


删进程2:

插入进程A发现次找空闲分区空闲分区开始查找初始址750200:

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

首次适应算法最佳适应算法

姓名:学号:实验名称:进程调度模拟实验 实验目的:了解动态分区存储管理方式中的数据结构和分配算法,加深对动态分区存储管理方式及其实现技术的理解。实验内容:#include<iostream.h>#include <malloc.h>typedef struct Spare{ int SA; int size;}spare;void init(spare *S,in

文***享 3年前 上传1630   0

操作系统实验报告C语言实现银行家算法

实 验 报 告题 目名 称C语言实现银行家算法院 系信息科学与工程学院班 级完成时间指导老师本次实验成绩组长联系电话邮件地址组员(姓名,学号)主要任务程序算法的编写、实现、运行调试组员(姓名,学号)主要任务实验报告的完成组员(姓名,学号)主要任务实验报告的完成

文***品 3年前 上传471   0

操作系统实验三磁盘调度算法的实现

XX大学计算机与通信工程学院实验报告2013 至 2014 学年 第 一 学期课程名称操作系统学号 学生姓名 年级 专业 教学班号 实验地点 实验时间 2013年 月 日 第 节 至 月 日 第 节主讲教师 辅导教师 实验( 三 )实验名称磁盘调度算法的

文***享 3年前 上传479   0

实验6FFT算法的应用

实验6 FFT算法的应用实验目的:加深对离散信号的DFT的理解及其FFT算法的运用。实验原理:N点序列的DFT和IDFT变换定义式如下: , 利用旋转因子具有周期性,可以得到快速算法(FFT)。 在MATLAB中,可以用函数X=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。例1 对连续的单一频率周期信号 按采样频率 采样,截取长度N分别选N =20和N

文***享 1年前 上传381   0

实验室资质认定首次评审整改报告

          实验室资质认定首次评审整改报告                          编写人:     审核人:     签发人:             北京铁建工程监理有限公司 2011年 2月   日   根据我公司的申请,按照北京市质量技术监督局行政许可评审通知书的安排,以岳爱敏为评审组长的评审组共五位专家及北京

张***3 10年前 上传9778   0

入党时间和党龄算法

入党时间和党龄算法  党龄是指成为正式党员的年数。对党员而言,党龄记录着自己的政治生命,不仅表示自己在党内生活和工作的实际经历,更蕴含着使命与担当。牢记党龄是一名党员的本分。如何计算党龄?来一同学习!  党员的入党时间和党龄怎么算?  党员的入党时间,就是党支部召开党员大会接收预备党员的时间,可在存入本人档案的《中国共产党入党志愿书》中查找。党章第七条明确规定,“党员的党龄,从预备期满转

s***g 2年前 上传1309   0

图象处理算法实验指导书

 图象处理算法实验指导书 实验一 静态图像采集 一、 实验目的 1. 了解DSK的工作原理。 2. 了解FPGA进行静态图像采集的工作原理。 3. 了解DSP的EDMA技术在静态数据采集中的作用。 4. 了解DSP的中断技术。 5. 了解SDRAM在静态视频数据采集中的作用。 6. 了解DSP

文***享 5年前 上传846   0

粒子群算法(优化算法)毕业设计论文

 毕 业 论 文 题 目 粒子群算法及其参数设置 专 业 信息与计算科学 班 级 学 号 学 生 指导教师

文***品 5年前 上传1472   0

自适应滤波实验报告

自适应滤波实验报告   要求: 1,用LMS、RLS这两种算法求最佳滤波器系数。 (1)LMS算法,画出一次实验的误差平方收敛曲线,训练长度500,给出滤波器系数,进行20次的独立实 验,给出平方收敛曲线,给出3个步长值的比较。 (2)RLS算法,画出一次实验的误差平方收敛曲线,训练长度500,给出滤波器系数,进行20次的独立实验,给出平方收敛曲线,给出3个步长值的比较。 2,LMS

y***7 14年前 上传16733   0

LMS自适应滤波实验报告

LMS自适应滤波实验报告姓名: 学号: 日期:2015实验内容:利用自适应滤波法研究从宽带信号中提取单频信号的方法。设,是宽带信号,,,,,任选(1) 要求提取两个单频信号;(2) 设,要求提取单频信号,研究的大小对提取单频信号的影响。1. 自适应滤波器原理自适应滤波器理论是现代信号处理技术的重要组成部分,它对复杂信号的处理具有独特的功能。自

文***享 2年前 上传772   0

进程调度算法的实现计算机操作系统课程设计

题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,将这些信息输出至文件中; (5)设计基于时间片的多优先级调度算法; (6)动态调度,并把所有调度信息输出至文件中。(7)理解进程调度相关理论;(8)掌握时间片调度原理;(9)掌握高优先级

文***品 3年前 上传586   0

操作系统课程设计银行家算法的模拟实现

操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。

文***品 3年前 上传687   0

操作系统课程设计磁盘调度算法

操作系统课程设计磁盘调度算法目 录1 课程设计目的及要求……………………………………………………12 相关知识…………………………………………………………………13 题目分析…………………………………………………………………24 概要设计…………………………………………………………………2 4.1 先来先服务(FCFS)的设计思想………

文***享 3年前 上传549   0

操作系统课程设计银行家算法报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 专 业:计算机科学与技术 指导教师: 时 间: 2009 XX大学 计

文***品 3年前 上传620   0

操作系统课程设计磁盘调度算法

《计算操作系统》课程设计报告 姓名: 班级:软件 学号: 指导老师:

文***品 3年前 上传462   0

《操作系统 银行家算法》课程设计报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 专 业:计算机科学与技术 XX大学 计算机科学与信息学院目 录1 课程设计目的 ………………………………………

文***品 3年前 上传812   0

合工大页面置换算法操作系统课程设计报告

计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31.最佳(Optimal)置换算法 32.先进先出(FIFO)页面置换算法 43.最近最久未使

文***品 3年前 上传558   0

银行家算法《操作系统》课程设计报告

《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程学院一、实验要求和实验目的实验目的:本课程设计是学生学习完《操作系统原理》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统

文***享 3年前 上传699   0

实验二-独占设备分配与回收

实验二 独占设备分配与回收一、 实验目的:l 加深对设备管理的理解。l 深入了解如何分配和回收独占设备。二、 实验预备知识:ü 设备独立性。ü 独占设备的特性。ü 系统设备表和物理设备表。三、 实验内容:设计一种独占设备分配和回收的方案,要求满足设备独立性。编写程序实现这个方案并进行测试。四、 提示与讲解:为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实

文***品 3年前 上传585   0

操作系统 七次实验报告 常用页面置换算法模拟实验

操作系统课程第七次实验报告姓名学号系计算机任课教师指导教师评阅教师实验地点 综合楼B102 实验时间2012-9-26实验课表现出勤和个人表现Q1(15+15(组长评分)=30分)得分:实验总分(Q1+Q2+Q3+Q4)实验完成情况Q2(45分(组长与教师评分的加权平均))得分:实验编号与实验名称:实验七、常用页面置换算法模拟

文***品 3年前 上传746   0

计算机操作系统实验三页面置换算法模拟实验

计算机工程学院实验报告书课程名:《 操作系统原理A 》 题 目: 虚拟存储器管理 页面置换算法模拟实验 班 级: 学 号: 姓 名:

文***品 3年前 上传645   0

概率统计、算法

1. 统计1. 如图是样本容量为200的频率分布直方图.根据此样本的频率分布直方图估计,样本数据落在[6,10)内的频数为_____ 642. 甲、乙两名同学在五次考试中数学成绩统计用茎叶图表示如图所示,则甲、乙两名同学成绩较稳定(方差较小)的是______.乙3. (等距抽样)某班有学生48人,现用系统抽样的方法,抽取一个容量为4的样本,已知座位号分别为

z***s 10年前 上传810   0

首次股东决定

首次股东决定 公司首次股东决定以下事项:1、通过了公司章程。 2、决定由 担任公司法定代表人。3、决定设立执行董事,由 担任执行董事。4、决定设立 名监事,选举 、 为公司监事(1-2名)。5、决定 任公司经理。6、确认了股东

国开(电大)考试真题! 2年前 上传547   0

在首次工代会上的讲话

在首次工代会上的讲话 尊敬的各位领导、各位代表: 大家下午好! 今天,云南解化清洁能源开发有限公司解化化工分公司工会,在这里隆重举行首届工代会,我代表**市总工会对本次会议的召开表示热烈的祝贺,向各位代表并通过你们向公司广大职工致以亲切的问候。在这里,我还要代表市总工会,向离任的原解化集团公司工会主席黄云生同志表示衷心的感谢,感谢黄云生同志为解化乃至**的工运事业所做出的积极努力和贡献。

晴***尔 10年前 上传10656   0

如何适应地方工作

如何适应地方工作  作为一句军转干部,从选择脱下军装的那一刻起,就应该为自己的人生作一次规划,对将来可能遇到的难题要有心理准备,而不是在困难来临时手忙脚乱、措手不及。从军队到地方,我认为从大的方面来说,至少有两个转变:一个是从一句军人到地方普通老百姓的转变;另一个则是工作环境的转变。这两个转变涉及到的方面很多,并且对于转业军人来讲,既是机遇,又是挑战,而更多的则是考验。因此要把转业作为一个新

w***1 9年前 上传800   0