最坏适应算法.docx
- 文档编号:28562830
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:13
- 大小:169.49KB
最坏适应算法.docx
《最坏适应算法.docx》由会员分享,可在线阅读,更多相关《最坏适应算法.docx(13页珍藏版)》请在冰豆网上搜索。
最坏适应算法
课程设计(论文)
题目:
最坏适应算法
院(系):
机械电子工程系
专业班级:
c运算机2020
姓名:
xx
学号:
000x
指导教师:
xx
2021年12月18日
西安建筑科技大学华清学院课程设计(论文)任务书
专业班级:
运算机1101学生姓名:
xx指导教师(签名):
一、课程设计(论文)题目
动态分区分配-最坏适应算法:
编写一个进程调度程序,采用最坏适应算法对内存块进行分配和回收,同时显示内存块分配和回收后空闲内存分区链的情况。
二、本次课程设计(论文)应达到的目的
操作系统课程实践性比较强。
课程设计是加强学生实践能力的一个强有力手段。
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
本题目要达到目的:
了解动态分区分配中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)
最坏适应分配算法要扫描整个空闲分区或链表,总是挑选一个最大的空闲分区分割给作业使用。
该算法要求将所有的空闲分区按其容量从大到小的顺序形成一空闲区链,查找时只要看第一个分区能否满足作业要求。
实现采用最坏适应算法的动态分区分配过程alloc()和回收过程free()。
其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。
四、应收集的资料及主要参考文献:
操作系统经典算法的编程实现资料非常丰富,可以在图书馆找书籍或在因特网上找资料,都很容易找到,但是大部分代码是不全的,不能直接运行,希望大家只是把它当参考,编码还是自己做。
参考文献:
【1】汤小丹、梁红兵、哲凤屏、汤子瀛编著.计算机操作系统(第三版).西安:
西安电子科技大学出版社,
【2】史美林编.计算机操作系统教程.北京:
清华大学出版社,
【3】徐甲同编著.操作系统教程.西安:
西安电子科技大学出版社,
【4】Clifford,编著.数决结构与算法分析(C++版).北京:
电子工业出版社,
【5】蒋立翔编著.C++程序设计技能百练.北京:
中国铁道出版社,
五、审核批准意见
教研室主任(签字)
0
《操作系统》课程设计
动态分区分派-最坏适应算法
1.设计目的
“操作系统”是运算机专业的核心专业课,“操作系统课程设计”是明白得和巩固操作系统大体理论、原理和方式的重要的实践环节。
操作系统课程要紧讲述的内容是多道操作系统的原理与技术,与其它运算机原理、编译原理、汇编语言、运算机网络、程序设计等专业课程关系十分紧密。
本课程设计的目的综合应用学生所学知识,成立系统和完整的运算机系统概念,明白得和巩固操作系统大体理论、原理和方式,把握操作系统大体理论与治理方式。
在算法基础上,解决实际的治理功能的问题,提高学生实际应用、编程的能力。
课程设计要求学生在完成程序设计的同时能够撰写比较标准的设计报告。
严格实施课程设计这一环节,关于学生大体程序设计素养的培育和软件工作者工作作风的训练,将起到显著的增进作用。
2.问题描述
课设目的:
了解动态分区分派中利用的数据结构和分派算法,并进一步加深对动态分区存储治理方式及其实现进程的明白得。
设计要求:
最坏适应分派算法要扫描整个空闲分区或链表,老是挑选一个最大的空闲分区分割给作业利用。
该算法要求将所有的空闲分区按其容量从大到小的顺序形成一空闲区链,查找时只要看第一个分区可否知足作业要求。
实现采纳最坏适应算法的动态分区分派进程alloc()和回收进程free()。
其中,空闲分区通过空闲分区链表来治理,在进行内存分派时,系统优先利用空闲区低端的空间。
假设初始状态如下,可用的内存空间为640KB,并有以下的请求序列;
作业1申请130KB
作业2申请60KB
作业3申请100KB
作业2释放60KB
作业4申请200KB
作业3释放100KB
作业1释放130KB
作业5申请140KB
作业6申请60KB
作业7申请50KB
作业6释放60KB
请采纳最坏适应算法进行内存块的分派和回收,同时显示内存块分派和回收后空闲内存分区链的情形。
3.需求分析
数据需求
大体功能需求
用户能够设置进程的大体信息进程名、所需主存空间查看有关空闲区和内存中进程的相关信息选择性地终止当前运行的进程并进行请主存回收。
对进程和空闲区的治理都采纳链表结构如此对进程的添加和删除和对空闲区的相关操作都比较方便。
非功能性需求
用户界面需求:
简练、易用、易懂、友好的用户界面。
硬件要求:
装有VisualC++的运算机。
靠得住性需求:
保证用户在正常利用本系统时,用户的操作或误操作可不能产生数据的丢失。
4.概要设计
数据结构
typedefstructPCB
{
charname[6];
intlength;
intaddress;
structPCB*next;
}PCB,*PCBList;
typedefstructFBC
{
intaddress;
intlength;
structFBC*next;
}FBC,*FBCList;
}FBC,*
系统包括的函数
voidhandle_choice(intchoice)
StatusInitPCBList(PCBList&pl)
StatusInitFBCList(FBCList&fbl)
voidFBCInsert(FBCList&L,FBC*s)
StatusProcessSubmit(FBCList&L1,PCBList&L2)
StatusPCBTraverse(PCBListL)
StatusFBCTraverse(FBCListL)
StatusEndProcess(PCBList&L,inti)
StatusDestroyPCBList(PCBList&L)
StatusDestroyFCBList(FBCList&L)
voidhandle_choice(intchoice)
Statusmain()
函数间的关系
系统功能模块图
图4-1
图4-2
5.详细设计
进程提交:
用户输入进程所需的空间大小,系统判定最大的空闲区可否寄存得下该进程。
假设知足条件,那么分割该空闲区给该进程利用,并将该进程的信息插入到进程信息表中,然后对,空闲区表中的信息进行修改。
假设不知足条件就提示无法寄存该进程最后返回。
主存回收:
遍历进程信息表,看看要终止的进程是不是合理,假设合理,那么在进程信息表中删除该结点,然后将其所占的用的内存空间放到空闲区表中并按大小降序排列,最后释放删除结点。
假设不合理,那么返回。
6.调试分析
(1)测试数据:
7.利用说明
图7-1
进入主菜单后依照自己的需求进行选择,提交进程选择1以后再依照提示输入和选择,需要查询空闲区或是已分派的选择2或3进行查看,需终止即释放哪个进程选择4,以后能够选择5退出。
8.设计总结
通过这次课设进一步的学习了操作系统的有关知识,锻炼了结构化程序,模块化程序的设计和调试程序的技术。
提高了分析问题解决问题。
在已度过的大学时刻里,咱们大多数接触的是专业课。
咱们在课堂上把握的仅仅是专业课的理论知识,如何去锻炼咱们的实践能力?
如何把咱们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为咱们提供了良好的实践平台。
9.参考文献
【1】汤小丹、梁红兵、哲凤屏、汤子瀛编著.运算机操作系统(第三版).西安:
西安电子科技大学出版社,
【2】史美林编.运算机操作系统教程.北京:
清华大学出版社,
【3】徐甲同编著.操作系统教程.西安:
西安电子科技大学出版社,
【4】Clifford,编著.数决结构与算法分析(C++版).北京:
电子工业出版社,
【5】蒋立翔编著.C++程序设计技术百练.北京:
中国铁道出版社,
10.程序源代码
#include"iostream"
usingnamespacestd;
#defineFALSE0
#defineOK1
#defineERROR0
#defineINFEASIBLE-1
#defineOVERFLOW-3
typedefintStatus;
typedefintBoolean;
voidexit(int);
typedefstructPCB
{
charname[6];构造一个空的进程链表
pl=new(PCB);初始化空闲区
FBC*p;
fbl=new(FBC);只有一个空闲区
if(!
fbl||!
p)大小为640。
p->length=640;
returnOK;
}
voidFBCInsert(FBCList&L,FBC*s)
{
FBC*p;
p=L;
while(p->next&&p->next->length>=s->length)
该进程不能提交"< returnERROR; } 分派内存 q=new(PCB);输入作业名"< (10,'\n'); (q->name,6); q->address=s->address; q->length=len; q->next=pl->next;回收内存空间 PCBListr,p; FBCListq; intj=0; 线性表L已存在。 销毁线性表L PCBListq; while(L) {q=L->next; delete(L); L=q;} returnOK; } StatusDestroyFCBList(FBCList&L) {线性表L已存在。 销毁线性表L FBCListq; while(L) {q=L->next; delete(L); L=q; } returnOK; }清屏 进行主存分派 ProcessSubmit(fbl,pl); (pause); system("pause"); break; case2: 进行主存回收 cout<<"正在运行的进程有.."< PCBTraverse(pl); cout<<"输入需停止运行作业的序号: "; cin>>i; EndProcess(pl,i); (pause); system("pause"); break; case5: //退出 DestroyPCBList(pl); DestroyFCBList(fbl); break; "Invalidchoice\n"; break; } }//endoffunctionhandle_choice
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最坏 适应 算法