




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计报告学 号: 姓 名: 班 级: 指导教师: 报告日期: 一、课设目的通过对操作系统课程的学习,熟悉进程的概念、进程的管理与存储、进程的调度,通过实践深入理解进程的调度算法。二、课设任务要求编写一个程序,可以创建若干个虚拟进程,并对若干个虚拟进程进行调度,调度策略为时间片轮转法,主要任务包括: 进程的个数,进程的内容(即进程的功能序列)来源于一个进程序列描述文件,另外调度运行结果输出到一个运行日志文件; 设计PCB适用于时间片轮转法; 建立进程队列; 实现时间片轮转调度算法,尽量可视化的展示调度的动态过程。 总结程序设计的开发过程:需求分析、系统设计、系统实现及文档的收集和整理。三、实验方法与设计分析每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为输入进程的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。重复以上过程,直到所要进程都完成为止四、程序流程图开始设置时间片选择增加进程 是结束进程PCB顺序继续增加调度进程结束打印进程PCB顺序循环五、程序源代码#include stdafx.h#include #include #include #include #include #include using namespace std;ofstream myfile(bb.txt,ios:app|ios:trunc);typedef struct node char name10;/*进程名*/ int round; /*进程分配的时间片*/ int cputime; /*进程消耗的CUP时间*/ int needtime; /*进程需要的CUP时间*/ int count; /*进程运行时间*/ char state; /*进程的状态:R:运行,W:等待,F:结束*/ struct node *next;/*指向下一个进程的指针*/ PCB;PCB *finish,*ready,*tail,*run;/*指向三个队列的队首的指针,tail为就绪队列的队尾指针*/ int N;/*定义进程的数目*/ void firstin(void) if(ready!=NULL) run=ready; ready=ready-next; run-state=R; run-next=NULL; else run=NULL; void prt1(char a)coutname cputime needtime count round stateendl;myfilename ;myfile cputime;myfile needtime;myfile count ;myfile round;myfile stateendl; void prt2(char a,PCB *p) coutname cputime needtime count round stateendl;myfilename ;myfilecputime ;myfileneedtime ;myfilecount ;myfileround ;myfilestatenext; p=finish; while(p!=NULL) prt2(algo,p); p=p-next; getchar();void insert(PCB *q) tail-next=q; tail=q; q-next=NULL; void rcreate_task(char algo) PCB *p; int n,time; char na10; ready=NULL; finish=NULL; run=NULL; coutN; for(n=0;nN;n+) p=(PCB*)malloc(sizeof(PCB); coutEnter the name of process:na; coutEnter the time of process:time; strcpy(p-name,na); p-cputime=0; p-needtime=time; p-count=0; p-state=W; p-round=2; if(ready!=NULL) insert(p); else p-next=ready; ready=p; tail=p; run=ready; ready=ready-next; run-state=R; cout创建成功。count=run-round) run-count=0; if(ready!=NULL) run-state=W; insert(run); firstin(); prt(algo);void roundrun(char algo) while(run!=NULL) run-cputime=run-cputime+1; run-needtime=run-needtime-1; run-count=run-count+1; if(run-needtime=0) run-next=finish; finish=run; run-state=F; run=NULL; if(ready!=NULL) firstin(); else if(run-count=run-round) run-count=0; if(ready!=NULL) run-state=W; insert(run); firstin(); prt(algo); void caidan() cout*主页*endl; cout*1.I 创建若干进程*endl; cout*2.C 进程进行查看*endl; cout*3.O 进程进行调度*endl; cout*4.H 结束 *algo;if(algo=i|algo=I) rcreate_task(algo); else if(algo=c|algo=C) chakan(algo); else if(algo=o|algo=O)roundrun(algo);else if(algo=h|algo=H)goto loop2;goto loop1;loop2: myfile.close();return 0;六、运行结果七、问题及解决方法 (1) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优先数就减“1”。由于本实习是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行(2) 进程运行一次后,若要求运行时间0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间=0,则把它的状态修改成“结束”(E),且退出队列。(3) 若“就绪”状态的进程队列不为空,则重复上面(1)和(2)的步骤,直到所有进程都成为“结束”状态。(4) 在所设计的程序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进程队列的变化。(5) 为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。八、心得体会操作系统是计算机系统中必不可少的系统软件。它是计算机系统中各种资源的管理者和各种活动的组织者、指挥者。操作系统采用时间片法调度进程,使系统资源得到充分的利用,用户也可以花更少的时间完成更多的工作,这次模拟系统调度进程,让我明白了系统时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车劳动合同范本2篇
- 瓶式氧气吸入课件
- 安全施工培训内容记录课件
- 农业碳汇项目融资策略与风险管理研究报告
- 农业现代化背景下2025年智能农业种植风险防控与绿色生产方案报告
- 球团厂安全规程培训
- 安全教训培训工作通报课件
- 房屋室内拆除工程方案(3篇)
- 以不变的精神面对变化的时代
- 比较教学法在高中语文课堂中的应用
- 洁净室区甲醛熏蒸消毒标准操作规程
- 4.1 整式(第1课时 单项式) 课件 七年级数学上册 (人教版2024)
- 中国急性缺血性卒中诊治指南(2023)解读
- 常熟理工学院图书馆考试完整题库
- 招聘诚信承诺书
- 装配式混凝土检查井施工及验收规程
- 2024小红书无货源精细化铺货实战课程
- 任正非的创业故事
- 学生实习家长知情同意书(完美版)
- 涉警网络负面舆情应对与处置策略
- 《英国政党制度》课件
评论
0/150
提交评论