版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一 课程设计的目的和意义目的:1. 根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容。2. 通过调试典型例题或习题积累调试程序的经验。3. 通过完成辅导教材中的编程题,逐渐培养学生的编程能力,用计算机解决实际问题的能力。意义:1. 有助于加深我们对操作系统这门课程的理解,我们在课堂上学的都是基础理论知识,对于如何用程序语言来描述所学知识还是有一定难度。通过课程设计,我们可以真正理解其内涵。2. 有利于我们逻辑思维的锻炼,程序设计能直接有效地训练学生的创新思维、培养分析问题、解决问题能力。即使是一个简单的程序,依然需要学生有条不理的构思。3. 有利于培养严谨认真的学习态度,在程序设计
2、过程里,当我们输入程序代码的时候,如果不够认真或细心,那么可能就导致语法错误,从而无法得出运行结果。那么,这个我们反复调试,反复修改的过程,其实也是对我们认真严谨治学的一个锻炼。二进程调度算法模拟1 .设计目的通过动态优先权算法的模拟加深进程概念和进程调度过程的理解。2 .设计要求写出带有完整标注的程序代码(可以用Java或C/C+实现,要求每个语句都要有标注)。3 .使用动态优先权的进程调度算法的模拟3.1 算法思路分析动态优先权是指在创建进程时所赋予的优先权,可以随进程的推进或随其等 待时间的增加而改变的,以便获得更好的调度性能.若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列
3、的进程 将因其动态优先权变得最高而优先获得处理机,此即FCFSK法.因此,通过c程序模拟动态优先权程序调度算法, 主要思路和方法就是,通 过结构体模拟计算机的控制模块,构造一个PCB吉构体即进程控制块结构体,用 来记录当前进程的的相关状态信息, 包括进程标识符、处理机状态、进程调度信 息、进程控制信息。并通过 C语言模拟计算机的动态优先调度算法,对构建的 PCB!程进行模拟调度和运行,从而实现用计算机对进程的调度过程进行过程模 拟。主要要构建的函数有:进程控制块函数input :输入各进程的基本信息进程优先级排列函数sort :用于对进程的优先级进行排列当前进程显示函数disp :用于显示当前
4、进程进程查看函数check:检查等待队列的进程是否进入就绪队列进程就绪函数running :进程运行时间到,置就绪状态系统将所有就绪队列按优先级高低排成一个队列,每次调度时,将 CPU 分配给优先级最高的进程,并令其执行一个时间片,而后中断,寻找并运行 下一个优先级最高的进程。而所有进程的优先权在随进程的推进或随其等待 时间的增加而增加,而被调度之后的程序则降低一定的优先级,从而使所有进程都有运行的机会,从而保证系统能在给定的时间内响应所有用户的请求。优先权的变化规律可描述为:由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先权又相当于响应比RP即优先权=等待时间+要求服务时间要
5、求服务时间被运行过的进程优先权减一。3.2算法流程图主流程图3.3主要数据结构设计1.包含PCB信息的结构体(1)(2)(3)(4)(5)(6)(8)进程标识数ID。进程优先级PRIORITY,并规定优先级越大的进程,其优先权越高。进程已占用的 CPU寸间CPUTIME进程还需占用的 CPU时间ALLTIME当进程运行完毕时, ALLTIME变为0 进程的阻塞时间STARTBLOC昧示当进程再运行 STARTBLOCK时间片后, 进程将进入阻塞状态。进程被阻塞的时间 BLOCKTIM E表示已阻塞的进程再等待BLOCKTIMEb时间片后,将转换成就绪状态。进程犬态STATE队列指针NEXT用来
6、将PC明E成队列。用算法描述为struct pcb / 定义进程控制块PCBchar name10; / 定义进程名称char state; / 进程状态优先数需要运行的时间已占用的CPU寸间指向进程的下一个进程的指针int super; / int ntime; /int rtime;/struct pcb* link; /*ready=NULL,*p;2. 用队列结构存储进程序列3.4算法代码实现1 .建立对进程进行优先级排列函数void sort() / 建立对进程进行优先级排列函数 PCB *first, *second; /定义指向当前进程和插入进程的指针int insert=0;/
7、各进程按优先数大小从大到小排列if(ready=NULL)|(p->super)>(ready->super) /优先级最大者,插入队首p->link=ready; /p 进程的下一个进程为原队首进程 ready=p; /队首进程为优先级最大者else /进程比较优先级,插入适当的位置中 first=ready;/队首进程不变second=first->link; /第二个进程则在当前进程后面while(second!=NULL)/while 循环,各进程比较优先级 if(p->super)>(second->super) /若插入进程比当前进程
8、优先数大 / 插入到当前进程前面p->link=second; /当前进程赋给插入进程的后面那个进程first->link=p;/插入进程在放在当前进程所在位置second=NULL;/当前进程为空insert=1; /进程的排列与各优先数不对应else /插入进程优先数最低,则插入到队尾 first=first->link; / 将第一个进程的下一进程赋给firstsecond=second->link;/W 第二个进程的下一进程赋给secondif(insert=0) first->link=p; /若插入进程比当前进程优先数小,则插入到当前进程后面 2 .建
9、立进程控制块函数void input() / 建立进程控制块函数 int i,num; /定义进程号以及进程个数 system("cls"); /清屏 printf("n 请输入进程号:"); / 输出输入提示scanf("%d",&num); /输入进程号 for(i=0;i<num;i+) /若进程号不超过进程个数 printf("n 进程号 No.%d:n",i);输出进程号 p=getpch(PCB); p进程的 pcb 结构 printf("n 输入进程名:"); /输出
10、输入进程名提示scanf("%s",p->name); /输入进程名 printf("n 输入进程优先数:");/ 输出输入进程优先数提示scanf("%d",&p->super); /输入进程优先数 printf("n 输入进程运行时间:");/ 输出输入进程运行时间提示scanf("%d",&p->ntime);输入进程运行时间 printf("n");/ 换行 p->rtime=0;已占用cpu时间为0 p->state=&
11、#39;w'/ 进程状态为就绪p->link=NULL;/当前进程的下一个进程为 sort(); / 调用 sort 函数 建立进程显示函数, 用于显示当前进程void disp(PCB * pr) /建立进程显示函数,用于显示当前进程 printf("n qname t state t super t ntime t rtime n"); printf("%st",pr->name);/ 显示进程名 printf("%ct",pr->state); / 显示进程状态 printf("%dt&quo
12、t;,pr->super);/ 显示进程优先级 printf("%dt",pr->ntime); / 显示进程需要运行的时间 printf("%dt",pr->rtime);/ 显示进程占用 CPU时间 printf("n"); / 换行进程查看函数,检查等待队列的进程是否进入就绪队列void check() / 建立进程查看函数,检查等待队列的进程是否进入就绪队列 PCB* pr;printf("n * 当前正在运行的进程是:%s",p->name); / 输出当前正在运行提示disp(p);/显示当前运行进程 pr=ready;printf("n * 当前就绪队列为:n"); / 显示就绪队列状态while(pr!=NULL) disp(pr);/显示就绪进程 pr=pr->link;/进程就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场信息化管理方案
- 高校心理咨询师职业发展方案
- 2024-2025学年新教材高中政治第三单元文化传承与文化创新第8课第1框文化的民族性与多样性课时作业含解析部编版必修4
- 2024-2025学年新教材高中英语Unit4HistoryandTraditionsDiscoveringUsefulStructures课时素养评价含解析新人教版必修2
- 2024-2025学年新教材高中政治第三单元文化传承与文化创新第9课第3框文化强国与文化自信课时作业含解析部编版必修4
- 2024-2025学年八年级历史下册第五单元国防建设与外交成就第15课钢铁长城练习题新人教版
- 2024-2025年新教材高中物理第2章抛体运动1.2小船渡河和关联速度问题课时练习含解析鲁科版必修2
- 2024-2025学年高中数学第一章统计1.5.2估计总体的数字特征课时素养评价含解析北师大版必修3
- 2024年学校家具安装与维护合同
- 目的地与客源地概况-达人带您游世界+学习通超星期末考试答案章节答案2024年
- 广联达BIM土建计量平台GTJ2021使用手册
- 幼儿园班级管理实用技巧智慧树知到课后章节答案2023年下白城职业技术学院
- 说课《景观设计》 课件
- 工业园区科技项目申请书
- 麦尔兹石灰窑介绍及市场前景分析资料
- 2019年新版入团志愿书表格Word版(模板)
- 城市轨道交通概论PPT完整全套教学课件
- 呼吸机相关性肺炎诊断、预防和治疗指南(2023年)
- 《红星照耀中国》PPT只是分享
- 成年人健康自我管理能力测评量表
- 《苏城有南园北园二处》2013年浙江宁波中考文言文阅读真题(含答案与翻译)
评论
0/150
提交评论