- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2015广工操作系统课程设计报告(文档最后含源码下载地址)剖析
操作系统课程设计
学生学院____ 计算机学院______
专业班级 13级计科
学 号
学生姓名
指导教师 李敏
2015 年 12 月 29 日
一、课程设计介绍
设计模拟一个实现多道批处理系统的两级调度。通过具体的作业调度、进程调度、内存分配等功能的实现,加深对多道批处理系统的两级调度模型和实现过程的理解。
作业从进入系统到最后完成,要经历两级调度:作业调度和进程调度。作业调度是高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。进程调度是低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
在本次课程设计中假定系统可供用户使用的主存空间共100KB,并有4台磁带机。主存分配采用可变分区分配方式且主存中信息不允许移动,对磁带机采用静态分配策略,作业调度分别采用先来先服务算法和最小作业优先算法,进程调度则采用先来先服务和最短进程优先算法。
二、课程设计环境
计算机及操作系统:PC机,WindowsXP系统
程序设计使用工具:Microsoft VisualC++ 6.0
程序设计语言:C语言
课程设计思想
假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。
测试数据如下:?
作业 到达时间 估计运行时间 内存需要 磁带机需要
JOB1 10:00 25分钟 15K 2台
JOB2 10:20 30分钟 60K 1台
JOB3 10:30 10分钟 50K 3台
JOB4 10:35 20分钟 10K 2台
JOB5 10:40 15分钟 30K 2台
本次课程设计采用的是两个作业调度算法:先来先服务算法和短作业优先算法,两个进程调度算法:先来先服务算法,短进程优先算法。系统根据所选算法组合对输入系统的作业进行两级调度(作业调度,进程调度)。分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况,输出不同算法作业的选中次序及作业平均周转时间。作业的数据初始化输入通过读取文件这种方式进行导入。系统运行是通过设置指针来循环运作。
系统结构说明
系统的各个模块之间的关系如下:
struct time
{
int hour; //时
int min; //分
};
struct jcb
{
char name[10]; //进程名
struct time arr_time; //到达时间
struct time ent_time; //进入内存时间
struct time sta_time; //开始时间
struct time fin_time; //结束时间
int run_time; //估计运行时间
int tr_time; //周转时间
int men; //主存需要
int mac; //磁带机
int sta; //状态位
struct jcb* next;
};typedef struct jcb JCB;
struct link
{
char name[10]; //进程名
struct time arr_time; //到达时间
struct time ent_time; //进入内存时间
struct time sta_time; //开始时间
struct time fin_time; //结束时间
int run_time; //估计运行时间
int tr_time; //周转时间
int addr; //起始地址
int len; //分区大小
int mac; //磁带机
int state; //状态位,0为空闲,1
文档评论(0)