资源描述:
《操作系统的课程设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、石家庄经济学院信息工程学院操作系统课程设计(计算机科学与技术专业用)班级5040109031学号403010903104姓名指导教师2006年1月13日21课程设计任务书班级姓学号课程设计起止日期2006年1月2日至2006年1月13日实习地点260机房152机房课程设计题目主存储器的分配与回收课程设计内容与要求内容:模拟实现用同步机构避免发生进程执行时可能出现的与时间有关的错误。模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。要求:首先进行软件设计,编写程序,并调试通过。指导教师21200年月日21
2、一、课程设计目的了解在不同的存储管理方式下应怎样实现主存空间的分配和回收。二、软硬件环境1.硬件配置内存512;CPUinterpentinum®42.80G赫兹。2.软件配置windows.xp、visualC++6.0。三、系统设计及开发过程1.系统具体设计过程(1).模拟PV操作同步机构,PV操作同步机构,有P操作原语和V操作原语组成,他们定义如下:P操作原语P(S):将信号量S减去1,若结果小于0,则执行原语的进程被置成等待信号量S的状态。V操作原语V(S):将信号量S加1,若结果不大于0,则释放一个等待
3、信号量S的进程。(2).假定有一个生产者和一个消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。消费者每次从缓冲内取出一件产品去消费。禁止生产者将产品放入以满的缓冲器内,禁止消费者从空缓冲器内取走产品。(3).模拟处理器调度程序:每当执行一条模拟的指令后,保护当前进程的现场,让它成为非运行态,由处理器调度程序按随机数再选择一个就绪进程占用处理器运行。(4).模拟处理器指令执行程序:按”指令计数器”PC之值执行指定的指令,且PC加1指向下一条指令。2.主要数据结构设计(1)分页式管理方
4、式为了记录分配作业的个数和作业占用的空闲块号,设计了结构体变量work,包括两项:Intnum块数//记录分配作业占用的块数intjob[10]空闲块号//记录作业占用的空闲块号<1>私有成员(1)、整型变量i和j,分别记录位示图的行号和列号;(2)、整型变量n,记录位示图中空闲块数;(3)、函数locate()中整型变量h、k和L,分别记录分配作业占用的块数和作业页数;(4)、函数ret()中的整型变量k和h,分别记录作业号和作业占用的块数;(5)、主函数main()中的字符型变量用来选择操作,当ch=y时分配
5、作业,当ch=n时回收作业;<2>公有成员(1)、结构体数组work[10],用来记录作业占用的块数和块号;(2)、二维数组a[5][5]存放位示图;(3)、整型变量N(2)最先适应算法21为了记录空闲区的情况,设计了空闲区控制块结构体pcb,pcb包括三项:Intstart起始地址//记录空闲区的起始地址intlength长度//记录空闲区的长度structpcb*next后继指针//指向链表的下一个结点<1>私有成员(1)、整型变量S,表示作业的起始地址;(2)、整型变量L,表示作业的长度;(3)、字符型变量
6、ch,用来选择操作,当ch=y时给作业分配空间,ch=n时回收作业;(4)、结构体类型的指针p0,p1,p2用来指向链表中的结点;<2>公有成员(1)、结构体类型指针head,用来指向链表中的第一个结点;(2)、整型变量n用来记录链表中结点个数,也就是空闲区的个数;3.算法设计(1)分页式管理方式主要函数说明及其流程图函数名main()功能初始化位示图,调用打印函数print()打印位示图。根据输入的ch值调用分配函数locate()和回收函数ret()可对作业进行重复分配和回收。入口参数无返回值无流程图如下所示
7、:21YNYNYNYYNN初始化位示图图,开始Ch==norch==yCh==norch==y输入chCh==’y’Ch==’y’Locate(),print(),输入chCh==nRet(),print(),输入ch出错,gotoA21主程序流程图函数名print()功能打印位示图并输出空闲块的个数。入口参数无返回值无流程图如下所示:I=0YYYI<5J=0J<5输出a[i][j]A[i][j]==0N++J++I++NNN结束图2print()函数流程图函数名locate()如图3流程所示。功能输入作业的长度
8、,调用locate()函数对作业进行分配,并输出页表。入口参数无返回值无流程图如下所示:21NYNYNYNYNYNY输入作业长度L开始I=0I<5J=0J<5L==0breakA[i][j]==0A[i][j]=1,k++,L++,计算块号L==0J++L==0breakI++显示:分配成功显示:分配失败输出作业页表结束图3locate()函数流程图21函数名ret()功