《操作系统原理》
课程设计报告书。
题目:进程控制模块的设计与实现。
专业: 网络工程
学号: 131007111
学生姓名: 李亚豪。
指导教师: 刘双红。
完成日期: 2015-12-05
第1章课题概述 3
1.1 设计要求 3
1.2 设计理论依据 3
第2章设计简介和内容 6
2.1 设计简介 6
2.2 设计内容 6
第3章详细设计
3.1 设计流程图 7
3.2 主要程序** 9
第4章设计结果及分析 10
4.1 运行结果截图 10
总结 15第1章课题描述。
1.1设计要求。
1. 叙述要详细。
2. 要有条理。
3. 各个功能分开阐述。
4. 自己可以增加题目要求的功能模块。
5. 可以增加自己对题目的理解。
1.2设计理论依据。
根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。 短作业优先调度算法,从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。
第2章设计简介和内容。
2.1设计简介。
在多道程序环境下,将系统中的作业组织起来,为每个进入系统的作业建立档案以记录和作业相关的信息,按要求输入作业名、到达时间和服务时间,并为其建立作业控制块(jcb)挂入后备队列。进行作业调度时,在其后计算出各个作业的开始执行时间、完成时间、周转时间和平均周转时间,利用短作业优先算法进行作业调度,并按照由小到大的顺序显示出来。
2.2 设计内容。
1)编写程序完成批处理系统中的作业调度,要求采用短作业优先的作业调度算法。实验具体包括:首先确定作业控制块的内容,作业控制块的组成方式;然后完成作业调度;最后编写主函数对所作工作进程测试。
2)创建作业控制块jcb,定义为结构体,为进入系统的作业建立档案,其中定义了作业名,作业到达时间,作业服务时间,作业开始执行时间,作业完成时间,作业周转时间,作业平均周转时间。
3)首先按各个作业完成时间由小到大排序。再用输入的到达时间与服务时间按一定算法算出各个作业的开始执行时间、完成时间、周转时间和作业平均周转时间。
第3章详细设计。
3.1 设计流程图。是。否。
否。是。
3.2主要**。
/ :defines the entry point for the console application.
#include ""
#include<>
#include<>
#include<>
#define max 100 //最多能管理的作业数目
struct jcb //作业控制块jcb,定义为结构体
char name[10]; 作业名
float arrivetime; /作业到达时间
float servicetime;//作业服务时间
float starttime; /作业开始执行时间
float finishtime; /作业完成时间
float zztime; /作业周转时间
float **ezztime; /作业平均周转时间
jcb a[max];
void input(jcb *p,int n)
int i;
printf("请分别输入:\t作业名,到达时间,服务时间(如:job1 5 10)");
for(i=0;i<=n-1;i++)
printf("请输入第%d个作业信息:",i+1
scanf("%s%f%f",&p[i].name,&p[i].arrivetime,&p[i].servicetime
printf("");
void print(jcb *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float **ezztime,int n)
int k;
printf("调度顺序:")
printf("%s",p[0].name);
for(k=1;k
printf("-s",p[k].name);
printf("");
printf("\t\t\t作业信息:");
printf("name\tarrive\tservice\tstart\tfinish\tzz\t**ezz");
for(k=0;k<=n-1;k++)
void sort(jcb *p,int n)
for(int i=0;i<=n-1;i
for(int j=0;j<=i;j
if(p[i].arrivetime
jcb temp
temp=p[i]; p[i]=p[j
p[j]=temp
void deal(jcb *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float &**ezztime,int n)
int k;
for(k=0;k<=n-1;k++)
if(k==0)
p[k].starttime=p[k].arrivetime
p[k].finishtime=p[k].arrivetime+p[k].servicetime;
else p[k].starttime=p[k-1].finishtime
p[k].finishtime=p[k-1].finishtime+p[k].servicetime
for(k=0;k<=n-1;k++)
p[k].zztime=p[k].finishtime-p[k].arrivetime;
《操作系统原理》课程设计报告
姓名。学号。指导老师。起始时间 2010年3月4日。起止时间 2010年6月 22 日。为了提高同学们的自学能力,老师决定给予一项我们没有接触过的课程设计,也是我们很不熟悉,但是在it界却是很重要的一门技艺,我觉得老师的目的就是为了锻炼我们的自学力,而不是课程设计的能力,课程设计的能力是通过自学能力...
操作系统原理 课程设计报告
掌握linux操作系统的使用方法 了解linux系统内核 结构 掌握实例操作系统的实现方法 本次课程设计采用的操作系统环境是windows10 ubuntu双系统,ubuntu系统版本号为16.04,内核版本号为linux 4.4.4 前两个实验在当前ubuntu环境下完成,后两个实验在win10下...
操作系统原理课程设计
操作系统原理 课程设计。课题名称 进程调度算法。姓名 班级 学号 课程设计起止时间 2005年1月2日 2005年1月7日。指导教师成绩 课程设计任务书。进程调度算法。一 设计说明。该程序实现了进程的创建,且对该进程队列进行动态优先权抢占式和时间片轮转算法的调度。二 详细设计。1.流程图。2.程序运...