2022年操作系统课设 .pdf

上传人:Q****o 文档编号:27178052 上传时间:2022-07-22 格式:PDF 页数:25 大小:439.13KB
返回 下载 相关 举报
2022年操作系统课设 .pdf_第1页
第1页 / 共25页
2022年操作系统课设 .pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《2022年操作系统课设 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统课设 .pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课 程 设 计 报 告课程名称操作系统课题名称作业调度模拟专业班级学号指导教师2010 年12 月 31日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - 课 程 设 计 任 务 书课程名称操作系统课题作业调度模拟专业班级学生姓名学号指导老师审批任务书下达日期2010 年12 月 26 日任 务 完 成 日 期2010 年12 月 31 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -

2、- - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - 1 1设 计 内 容 与 设 计 要 求1.1设计内容作业调度模拟 设计要求:加深对作业概念地理解。掌握短作业优先调度算法。深入了解批处理系统如何组织作业、管理作业和调度作业。了解作业控制块的作用,以及作业控制块的内容和组织方式。 设计技术参数: 利用作业控制块将系统中的作业组织起来;为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名、作业所需要的资源、作业执行的时、作业进入系统的时间、作业信息在存储器中的位置、指向下一个作

3、业控制块的指针等信息。这个记录作业相关信息的数据块称为作业控制块(JCB),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。当一个作业全部信息进入系统后,就为其建立作业控制块,并挂入后备队列中。当一个作业全部进入系统后,就为其建立作业控制块,并挂入后备队列中。当进行作业调度时,从后备队列中查找选择作业。 利用短作业优先算法进行作业调度;在从后备队列中查找选择作业时,先根据作业控制块中的信息,选中一个短作业,也就是执行时间最短的作业,将它们调入内存运行。1.2设计要求:1.2.1 课程设计报告规范(1)系统分析系统功能分析;数学理论分析;输入输出的要求。(2)系统设计名师

4、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - 2 a. 系统由哪些模块(组件 /元件)组成以及模块之间的关系,每个模块的功能;采用C语言设计;画出各函数的调用关系图、主要函数的流程图。(3)调试分析以及设计体会测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。程序调试中遇到的问题以及解决问题的方法。课程设计过程经验教训、心得体会。(4)使用说明用户使用手册:说明如何使用你编写的系统, 详

5、细列出每一步的操作步骤。(5)书写格式设计报告要求用 A4纸打印成册:一级标题用 3号黑体 ,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。(7)附录源程序清单(带注释)1.2.2 考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、 实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:(1)平时出勤(占10%)(2)系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)(3)程序能否完整、 准确地运行, 个人能否独立、 熟练地调试程序 (占40%)(4)设计报告(

6、占 30%)注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。(5)独立完成情况(占 10%)。1.2.3 课程验收要求名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - 3 (1)运行所设计的系统(2)回答有关问题。(3)提交课程设计报告。(4)提交软盘(源程序、设计报告文档)。(5)依内容的创新程度,完善程序情况及对程序讲解情况打分。2 进度安排通信工程 0781班:第 17 周:星期一14:0018:00 上课

7、,讲解课题;星期二8:0012:00 上机;星期五8:0012:00;14:0018:00 上机附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。正文的格式 :一级标题用 3号黑体 ,二级标题用四号宋体加粗,正文用小四号宋体;行距为 22。正文的内容 :一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

8、 - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - 4 作业调度模拟一、系统分析作业可被看做是用户向计算机提交任务的任务实体。作业调度具有各种功能,可以记录系统中各个作业的状况,包括执行阶段的有关情况;从后备队列中挑选出一部分作业投入执行;为被选中作业做好执行前的准备工作;在作业执行结果时做善后处理工作。一个作业从输入初始数据到得到计算结果,要经过若干个步骤的相继执行。例如,编辑、编译、运行等,其中每一个步骤称作一个作业步。用户向系统提出作业加工步骤的方式称作业控制方式,作业控制方式有两种:终端控制方式和批处理控制方式。在批处理控制方式

9、下,用户采用系统提供的作业控制语言写好作业说明书,说明作业加工的步骤。 操作员把一批作业组织成输入流,通过“ 预输入 ”手段使每个作业的信息暂存在辅助存储器的“ 输入井 ” 中。批处理多道操作系统的作业管理有两个任务:作业调度和作业控制。采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。二、系统设计2.1 数据结构设计数据结构设计主要是对作业建立结构体,实现对作业的存储和管理。 设计过

10、程如下:struct Zyb /作业表结构体 char yh; /用户名char zy10; /作业名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 25 页 - - - - - - - - - 5 char zt6; /作业状态 (收容,执行,完成) float sj; /作业的运行时间int zc; /作业占据的主存int cd; /作业所需的磁带int zqz; /作业进入内存后的起始地址; Zyb zybM,z; /M宏定义为 7 struct Kxb /空闲区表

11、 int qz; /空闲区的起址int kzc; /空闲区的长度char kzt10; /空闲区的状态 (未分配,空表目 ) ; Kxb kxbN=0,100, 未分配 ,0,0, 空表目 ,0,0, 空表目 ,0,0, 空表目 ; /N宏定义为 4 全局变量int c=0,m=5;c为内存中的作业数, m 为现有的磁带数2.2 算法设计2.2.1先来先服务算法先来先服务是一种最简单的调度算法,每次调度都从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后进入就绪队列。其算法核心函数是int fcfs()即先来先服务算法:int i,j; for(

12、i=0;iM;i+) if(!strcmp(zybi.zt, 收容) /如找到未被选中的作业, 查询资源,如果有合适的资源则返回 1 else /未找到作业,返回 0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - 6 if(i=M-1) return 0; 2.2.2最短时间优先算法短作业优先调度算法,是指对短作业优先调度的算法。短作业优先的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存。其算法

13、核心函数是int ltf() 即最短时间优先算法: Zyb yM,x; int i,j,k,l,n; for(k=0;kM;k+) 此模块是 /将作业表的信息复制给数组yM 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - 7 2.3 程序流程图图(2)算法总体流程图其中int fcfs();函数功能:按先来先服务的原则选择未被选过的作业,入口参数:无,出口参数:无,返回值:选中作业返回1,否则返回 0; int ltf();

14、函数功能:按最短名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - 8 时间优先的原则选择未被选过的作业返回值:选中作业返回1,否则返回 0。三、程序运行及调试结果3.1.先来先服务算法执行过程请依次输入作业信息 :用户名、作业名、状态、运行时间、主存、磁带A ZYA 收容 0.3 15 2 B ZYB 收容 0.5 60 1 C ZYC 收容 0.1 50 3 D ZYD 收容 0.4 10 2 E ZYE 收容 0.1 30

15、3 图(3)先来先服务算法执行图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - - - - - 9 选择1,即先来先服务算法后界面如下图图( 4)先来先服务算法后界面图3.2.短时间优先算法执行过程请依次输入作业信息 :用户名、作业名、状态、运行时间、主存、磁带数A ZYA 收容 0.3 15 2 B ZYB 收容 0.5 60 1 C ZYC 收容 0.1 50 3 D ZYD 收容 0.4 10 2 E ZYE 收容 0.1 30 3

16、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - 10 图(5) 短时间优先算法执行图选择2,即最短时间优先算法后界面如下:图( 6)最短时间优先算法后界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - 11 四、设计总结操作系统是现代计算机系统中必不可少的

17、基本系统软件,也是计算机专业的必修课程和从事计算机应用人员必不可少的知识。计算机操作系统作为计算机系统的核心,负责控制和管理整个计算机系统的软硬件资源,使之协调工作。本次课程设计的目的就是熟悉一些操作系统常用的算法,用C+语言这个工具来实现。我这次课程设计的课题是作业调度模拟,作业调度主要是完成作业从后备状态到执行状态的转变, 以及从执行状态到完成状态的转变,作业调度具有强大的功能,可以记录系统中各作业的状况,包括执行阶段的有关情况;从后备队列中挑选出一部分作业投入执行;为被选中的作业做好执行前的准备工作;在作业执行结束时做善后处理工作。本次课程设计比较轻松,收获也比较大。由于课程设计实现的工

18、具主要是C+语言,所以让我对 C+的使用更加熟悉,加深了对作业调度算法的理解。课设本身就是一个遇惑解惑的过程,在试验的过程中遇到各种瓶颈是不可避免的,当解决了一个个瓶颈后得到的是收获的喜悦,是一点点的进步。总体来说,本次课程设计是相当成功的。虽然试验中遇到了各种问题,但是最终在自己的努力下还是把问题有效地解决了,让我收获良多。五、附录源程序代码#include iostream.h #include string.h #define M 5 #define N 4 int c=0,m=5,ch; struct Zyb /作业表结构体 char yh; /用户名名师资料总结 - - -精品资料欢

19、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 25 页 - - - - - - - - - 12 char zy10; /作业名char zt6; /作业状态float sj; /作业的运行时间int zc; /作业占据的主存int cd; /作业所需的磁带int zqz; /作业进入内存后的起始地址; Zyb zybM,z; struct Kxb int qz; /空闲区的起址int kzc; /空闲区的长度char kzt10; /空闲区的状态 (f表示未分配, m表示空表目 ) ; Kxb kx

20、bN=0,100, 未分配 ,0,0, 空表目 ,0,0, 空表目 ,0,0, 空表目 ; /函数声明void initzyb(); /作业表的初始化int checkzyb(); /查询作业表void checkzc(); /查询主存void zcgh(int x,int y); /归还主存void jinsuo(); int fcfs(); /先来先服务算法int ltf(); /最短时间优先算法void dispkxb(); /显示空闲表void dispzyb(); /显示作业表void initzyb() /初始化作业表 int i; cout请依次输入作业信息 :用户名、作业名、状

21、态、运行时间、主存、磁带数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 25 页 - - - - - - - - - 13 endl; for(i=0;izybi.yhzybi.zyzybi.ztzybi.sjzybi.zczybi.cd; zybi.zqz=0; dispzyb(); int checkzyb() /查询作业表 int i,j; int a; for(i=0;iM;i+) if(!strcmp(zybi.zt, 收容) /如果有未被选中的作业,则选择

22、所需算法,进行作业调度 if(2=c) /全局变量 c=2,作业满载 cout主存中作业满载。 endl; else /否则选择你所需的算法,实现作业的调度 switch(ch) case 1: a=fcfs(); break; case 2: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 25 页 - - - - - - - - - 14 a=ltf(); break; default: break; if(0=a) /资源不足,等待作业结束归还资源cout等待作业

23、执行结束归还资源.endl; else for(j=0;jM;j+) if(zybj.yh=z.yh & !strcmp(zybj.zy,z.zy) /找到被选中的作业,并显示其用户名和作业名 zybj.zqz=z.zqz; strcpy(zybj.zt, 执行); m-=zybj.cd; coutendl; cout被选中的作业 :endl; cout用户名 :zybj.yht 作业名:zybj.zyendl; c+; dispzyb(); dispkxb(); return 1; else /作业表中无未被选中的作业结束程序名师资料总结 - - -精品资料欢迎下载 - - - - - -

24、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 25 页 - - - - - - - - - 15 if(i=M-1) cout请操作员输入作业! endl; return 0; void checkzc() /查询主存 int i,j; char a; char b10; if(0=c) /c为0主存中无作业cout主存中无作业! endl; else coutendl; cout主存中正在执行的作业:endl; /显示主存中的作业cout用户名 t 作业名 t 状态t 运行时间 t 主存t 磁带t 起址endl; for(i=0;

25、iM;i+) if(!strcmp(zybi.zt, 执行) coutzybi.yhtzybi.zytzybi.zttzybi.sjttzybi.zctzybi.cdtzybi.zqzendl; coutendl; cout结束作业: (输入用户名和作业名)ab; for(j=0;jM;j+) if(zybj.yh=a & !strcmp(zybj.zy,b) strcpy(zybj.zt,完成); /修改作业表中该作业状态为“ 完成”m+=zybj.cd; /归还磁带资源zcgh(zybj.zqz,zybj.zc); / 归还主存zybj.zqz=0; dispzyb(); dispkxb(

26、); c-; /主存中作业数减一 void zcgh(int x,int y) /归还主存 int i,n,t; n=x+y; for(i=0;iN;i+) /归还作业区 if(i=0) if(kxbi.qz=n) kxbi.qz=x; kxbi.kzc+=y; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 25 页 - - - - - - - - - 17 break; else t=kxbi-1.qz+kxbi-1.kzc; if(kxbi.qz=n) y=y+k

27、xbi.kzc; if(t=x) /如果有下邻区, 且有上邻区, 将空闲区登记在上邻区空闲栏,strcpy(kxbi.kzt, 空表目 ); kxbi.kzc=0; kxbi.qz=0; kxbi-1.kzc+=y; else /如果只有下邻区, 则将下邻区内的首址改为要撤消的作业的首址, kxbi.kzc=y; kxbi.qz=x; break; else if(t=x) /如果只有上邻区,则将上邻区长度加作业长度 kxbi-1.kzc+=y; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -

28、- - 第 19 页,共 25 页 - - - - - - - - - 18 break; else if(!strcmp(kxbi.kzt, 空表目 ) /如果既没有上邻区 ,也没有下邻区,则找一个空表目装入空闲区的情况 kxbi.qz=x; kxbi.kzc=y; strcpy(kxbi.kzt, 未分配 ); break; jinsuo(); int fcfs() /先来先服务算法 int i,j; for(i=0;iM;i+) if(!strcmp(zybi.zt, 收容) /如找到未被选中的作业, 查询资源,如果有合适的资源则返回 1 for(j=0;j=zybi.zc & zybi

29、.cd=m) zybi.zqz=kxbj.qz; kxbj.qz+=zybi.zc; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 25 页 - - - - - - - - - 19 kxbj.kzc-=zybi.zc; z=zybi; return 1; else /未找到作业,返回 0 if(i=M-1) return 0; int ltf() /最短时间优先算法 Zyb yM,x; int i,j,k,l,n; for(k=0;kM;k+) /将作业表的信息复制

30、给数组yM yk=zybk; for(l=0;lM;l+) /将数组 yM 按时间升序排列 for(n=l+1;nM;n+) if(yn.sjyl.sj) x=yn; yn=yl; yl=x; for(i=0;iM;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 25 页 - - - - - - - - - 20 if(!strcmp(yi.zt, 收容) /如找到未被选中的作业,查询资源,如果有合适的资源则返回 1 for(j=0;j=yi.zc & yi.c

31、d=m) yi.zqz=kxbj.qz; kxbj.qz+=yi.zc; kxbj.kzc-=yi.zc; z=yi; return 1; else /未找到作业,返回 0 if(i=M-1) return 0; void dispkxb() /显示空闲表和磁带数 int i; coutendl; cout当前空闲分区表情况 :endl; cout起址t 长度t 状态endl; for(i=0;iN;i+) coutkxbi.qztkxbi.kzctkxbi.kztendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师

32、精心整理 - - - - - - - 第 22 页,共 25 页 - - - - - - - - - 21 cout当前磁带数 m=mendl; void dispzyb() /显示作业表 int i; coutendl; cout当前作业表情况: endl; cout用户名 t 作业名 t 状态 t 运行时间 t 主存t 磁带endl; for(i=0;iM;i+) coutzybi.yhtzybi.zytzybi.zttzybi.sjttzyb void main() int p=1; float a; initzyb(); coutendl; cout请选择你想使用的算法 :endl;

33、cout1 先来先服务算法 endl; cout2 最短时间优先算法 ch; while(p) cout1 | a0) cout输入非法! 0.5) /a0.5,查询作业表,选择未被选过的作业p=checkzyb(); else checkzc(); /a=0.5,查询主存,模拟作业的执行和撤消 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 25 页 - - - - - - - - - 23 六、评分表课程名称:作业调度模拟项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 25 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁