- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?
?
《操作系统上机》
课程报告
???
?
姓 名: 姜 瑞 班号: 193151
学 号:_20151003756 指导教师: 张求明
院(系): 计算机学院 专业: 网络工程
?
2016 年 11 月
独立工作成果声明
本人声明所呈交的《操作系统上机》报告,是我个人在导师指导下进行的程序编制工作及取得的成果。
尽我所知,除文中已经标明的引用内容,和已经标明的他人工作外,本报告未包含任何抄袭自他人的工作成果。对本报告的工作做出贡献的个人,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。
报告作者签名:
日期: 年 月 日
实验一?多级队列调度算法
(1)课程设计题目:多级队列调度算法
(2)程序功能及设计思路
程序功能:模拟CPU在处理程序时的进程调度,使用循环轮转法和短进程优先调度的算法来完成一组请求。
设计思路:
首先使用一个cpp文件将运行所需要的数据写入一个文件名为”1.txt”的文本文件,格式是 “Pi need turn”,每组数据之间换行隔开,则可以在运行的cpp文件中得到所需要运行的内容。
在程序实现的过程中,按照题目所给要求从文件中读取数据,前五项按照已等待时间排序成一个循环队列(已等待时间长的放在队伍的靠前的地方),后五项按照需要运行的时间排成一个队列(运行时间短的放在队伍靠前的地方)。然后按照实现的描述来进行数据的处理。最后输出每一个进程运行所需要的时间。
(3)数据结构及算法设计
数据结构:①结构体struct tag_pcb②队列③循环队列④文件流数据
算法设计:
①对于循环队列RQ1,从文件中依次读取进程的信息,根据要求形成循环队列,然后从队首开始循环,每次使用一个时间片q的长度,看该进程是否运行完成,如果在时间片以内的时间运行完成,则仅耗费所需时间,然后将该进程的运行时间存入数组中,将该进程从队列中移除,并将队列连接完好,然后使用delete删除该进程所占用的内存空间,接下来从下一个进程继续,依次循环往复,直到所有的进程均运行完成。
②对于队列RQ2中形成队列时,按照要求形成单向队列,然后从需要时间短的开始运行,运行完之后将时间存入数组,然后将该进程使用delete删除,然后将当前指针移到下一位置,进行下一个进程的处理。直到所有进程均运行完成,即队列为空的状态。
③在使用数组存放的时候a[i]对应相应的进程运行时耗费的时间,然后从a[0]输出到a[9],即可输出对应时间。
(4)程序运行情况
(5)编程中遇到的困难及解决方法、实习心得或良好建议
困难和解决方法:
1.对于C++文件的写入和读取不是很熟练,在网上查找相关写法之后按照格式试验完成了文件的操作。
2.对于链表形式的队列原本不是很熟悉,在写代码的过程中遇到了很多的麻烦,可以处理一次的队列操作,但是在写成循环时时常出现队列断链或者连错的情况,这个问题是经过自己多次调试,反思原理之后改错完成的。
3.在字符型char和整型int的转化中之前对于P10进程的判断有一些错误,之后经过调试发现问题,然后对字符串长度进行判断解决了这个问题。
源代码贴在下方:
/****写入数据.cpp****/
#includeiostream
#includefstream
using namespace std;
struct tag_pcb
{
char name[8];
int need; //需运行时间
int turn; //周转时间
struct tag_pcb *next;
}PCB[10];
int main()
{
int i;
for(i=0;i10;++i)
{
PCB[i].name[0]=P;
PCB[i].name[1]=i+49;
}
PCB[9].name[1]=1,PCB[9].name[2]=0,PCB[9].name[3]=\0;
PCB[0].need=16;PCB[1].need=11;PCB[2].need=14;
PCB[3].need=13;PCB[4].need=15;PCB[5].need=21;
PCB[6].need=18;PCB[7].need=10;PCB[8].need=7;
PCB[9].need=14;
文档评论(0)