




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
石 家 庄 经 济 学 院信息工程学院操作系统课程设计(计算机科学与技术专业用)班 级 5040109031 学 号 403010903104 姓 名 指导教师 2006 年 1 月 13 日课程设计任务书班级姓学号 课程设计起止日期 2006 年1 月2 日至2006 年1 月13 日 实习地点 260机房 152机房 课程设计题目 主存储器的分配与回收 课程设计内容与要求内容:模拟实现用同步机构避免发生进程执行时可能出现的与时间有关的错误。模拟PV操作同步机构,且用PV操作解决生产者消费者问题。要求:首先进行软件设计,编写程序,并调试通过。指导教师 200 年 月 日一、课程设计目的了解在不同的存储管理方式下应怎样实现主存空间的分配和回收。二、软硬件环境1. 硬件配置内存512; CPU inter pentinum4 2.80G赫兹。2软件配置windows.xp、visual C+6.0。三、系统设计及开发过程1. 系统具体设计过程(1).模拟PV操作同步机构,PV操作同步机构,有P操作原语和V操作原语组成,他们定义如下:P操作原语P(S):将信号量S减去1,若结果小于0,则执行原语的进程被置成等待信号量S的状态。V 操作原语V(S):将信号量S加1,若结果不大于0,则释放一个等待信号量S的进程。(2).假定有一个生产者和一个消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。消费者每次从缓冲内取出一件产品去消费。禁止生产者将产品放入以满的缓冲器内,禁止消费者从空缓冲器内取走产品。(3).模拟处理器调度程序:每当执行一条模拟的指令后,保护当前进程的现场,让它成为非运行态,由处理器调度程序按随机数再选择一个就绪进程占用处理器运行。(4).模拟处理器指令执行程序:按”指令计数器”PC之值执行指定的指令,且PC加1指向下一条指令。2. 主要数据结构设计 (1)分页式管理方式 为了记录分配作业的个数和作业占用的空闲块号,设计了结构体变量work,包括两项: Int num 块数 /记录分配作业占用的块数int job10 空闲块号 /记录作业占用的空闲块号 私有成员 (1)、整型变量i和j,分别记录位示图的行号和列号; (2)、整型变量n,记录位示图中空闲块数; (3)、函数locate()中整型变量h、k和L,分别记录分配作业占用的块数和作业页数; (4)、函数ret()中的整型变量k和h,分别记录作业号和作业占用的块数; (5)、主函数main()中的字符型变量用来选择操作,当ch=y时分配作业,当ch=n时回收作业; 公有成员 (1)、结构体数组work10,用来记录作业占用的块数和块号; (2)、二维数组a55存放位示图; (3)、整型变量N(2) 最先适应算法为了记录空闲区的情况, 设计了空闲区控制块结构体pcb,pcb包括三项: Int start 起始地址 /记录空闲区的起始地址 int length 长度 / 记录空闲区的长度 struct pcb * next 后继指针 /指向链表的下一个结点私有成员(1)、整型变量S,表示作业的起始地址;(2)、整型变量L,表示作业的长度;(3)、字符型变量ch,用来选择操作,当ch=y时给作业分配空间,ch=n时回收作业;(4)、结构体类型的指针p0,p1,p2用来指向链表中的结点;公有成员(1)、结构体类型指针head,用来指向链表中的第一个结点;(2)、整型变量n用来记录链表中结点个数,也就是空闲区的个数;3. 算法设计 (1)分页式管理方式主要函数说明及其流程图函数名 main() 功能 初始化位示图,调用打印函数print()打印位示图。根据输入的ch值调用分配函数locate()和回收函数ret()可对作业进行重复分配和回收。入口参数 无返回值 无流程图如下所示:YNYNYNYYNN初始化位示图图, 开始Ch=n or ch=yCh=n or ch=y输入chCh=yCh=yLocate(),print(),输入chCh=nRet(),print(),输入ch出错,goto A 主程序流程图 函数名 print() 功能 打印位示图并输出空闲块的个数。入口参数 无返回值 无流程图如下所示:I=0YYYI5 J=0 J5输出aijAij=0 N+ J+I+NNN 结束 图2 print()函数流程图函数名 locate() 如图3流程所示。功能 输入作业的长度,调用locate()函数对作业进行分配,并输出页表。入口参数 无返回值 无流程图如下所示: NYNYNYNYNYNY输入作业长度L 开始 I=0I5 J=0 J5L=0breakAij=0Aij=1,k+,L+,计算块号L=0J+L=0breakI+显示:分配成功显示:分配失败输出作业页表结束 图3 locate()函数流程图函数名 ret() 功能 输入已分配作业号,输出作业所在的全部块号。入口参数 无返回值 无流程图如下所示: YN输出作业占用的块号 H=0H0&ch=yn0&ch=yHead=locate(head,L)Print(head)输入ch出错重新输入Goto ANstartp0-startP1=headP1.startnextP0-next=p1,head=p0P0-next=p1,P2-next=p0,0-next=p1P1-next=p0,p0-next=null返回head结束Head=p0,p0.next=null功能 初始化空闲区表入口参数 无返回值 头指针head Y N Y N N Y N Y N Y 图6 creat()函数流程图函数名 print() 如图7流程所示。功能 打印空闲区表,空闲区说明表中的状态均为未分配,故省略其状态说明入口参数 头指针head返回值 头指针headn+aij=0 ?输出aijj5j=0inextP1.next=p0.nextHead=p0.nextP0=headP1.length=LP0.length-=L,P0.start+=L, breakP1.lengthLP0!=nullP1=p0=head 开始YNNYYNn-,breakP0=nullYN 图8 locate()函数流程图函数名 ret() 如图9流程所示。功能 回收作业释放的空间。 入口参数 头指针head,作业的起址S,长度L。返回值 头指针head上邻区长度加L把下临区登记始址=S,长度=LL=L+下邻区长度按地址顺序调整和紧缩空闲区说明表找空闲区登记始址=S长度=L有下邻区有与归还区下邻的空闲区L=归还区长度,S=归还区起址查空闲区表 开始删掉下临区有上邻区 结束 图9 ret()流程图四、代码五、运行结果 1、分页式管理方式(2) 最先适应算法四、参考资料:C+程序设计 吴乃陵 李海文 编著 高等教育出版社C+程序设计实例教程吴乃陵 况迎挥 李海文 编著 高等教育出版社操作系统 汤子瀛 哲凤屏 汤小丹 编著 西安电子科技大学出版社操作系统原理与实践 林亚平 著 电子科技出版社五、课题设计总结 我们的题目是同步机构,这个题目是有一些挑战性的,它的要求是模拟PV操作同步。我们做了很多知识准备工作,参考了大量的相关书籍资料,对PV操作的原理有了深刻了了解,掌握了同步机构的基本流程和扩展了我的知识面,对计算机的内部工作以及同步的实现有了大致的了解。在对题目深刻了解后我们就开始编程,在编程中我们遇到许多语法错误和语意错误,语法错误有的是粗心,但很多是C+知识点不牢,我们不断的查书,使自己的知识有了进一步的巩固和提高,在这方面我收获很大。而且我在编程是也掌握了不少编程技巧,遇到类似的情况,我会轻松的解决。另外在上机调试过程中我能熟练的利用C+工具进行调试,对自己经常犯的几类语意错误有了认识,增长了自己调试的经验。我们在编写过程中,培养了我们的团结合作精神,我们分工合作,共同讨论,题目在我们的努力下一步一步的浮出水面。在我们这个题中重点解决的是进程的同步的实现,在这里我用了信号量机制来实现,书上的知识在实践中有了验证并解决了相应的问题,对知识的理解更加深刻,更加透彻。实验过程中老师细心认真的指导,使我们的实习进行的更加顺利。感谢老师给
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品营销设备管理制度
- 药品风险自查管理制度
- 药店医疗设备管理制度
- 药店消毒安全管理制度
- 菜园种菜人员管理制度
- 设备人员变更管理制度
- 设备器械使用管理制度
- 设备工艺参数管理制度
- 设备机构维修管理制度
- 设备管理质量管理制度
- 安霸A12-凌度A12行车记录仪使用说明书
- GB/T 41735-2022绿色制造激光表面清洗技术规范
- MT/T 198-1996煤矿用液压凿岩机通用技术条件
- LY/T 1787-2016非结构用集成材
- GB/T 3880.3-2012一般工业用铝及铝合金板、带材第3部分:尺寸偏差
- GB/T 1503-2008铸钢轧辊
- GB/T 12729.1-2008香辛料和调味品名称
- GB/T 1228-2006钢结构用高强度大六角头螺栓
- GB 4404.3-2010粮食作物种子第3部分:荞麦
- 【精品】高三开学励志主题班会课件
- 套管培训大纲课件
评论
0/150
提交评论