欢迎来到天天文库
浏览记录
ID:6664209
大小:85.50 KB
页数:22页
时间:2018-01-21
《1423.处理机调度模拟程序-----操作系统课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计书系别:计科系专业:计算机科学与技术班级:题目:处理机调度模拟程序教师:姓名:41一.设计题目处理机调度模拟程序选择一个调度算法,实现处理机调度。二、设计要求编写一个进程调度程序,允许多个进程共行的进程调度程序。进程调度算法采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为输入进程
2、的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。就绪进程获得CPU后都只能运行一个时间片,用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重
3、复以上过程,直到所要进程都完成为止1.进程调度算法包括:时间片轮转法,短作业优先算法,动态优先级算法。2可选择进程数量3本程序包括三种算法,执行时在主界面选择算法(可用函数实现),进入子页面后输入进程数,(运行时间,优先数由随机函数产生),执行,显示结果。三.设计目的41在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占用处理机。要求学生设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。四.设计分析1、实现原
4、理首先,编写一个进程调度类Main_PCB,一个进程信PCB_block可以创建进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。对应成员变量是pcb_Name;pcb_ID;intpcb_Pro;PCB_Begintime();pcb_Needtime;pcb_Spendtime;pcb_Finishtime;Stringpcb_Statue;成员方法是pcb_Work();可以实例化多个包含相同信息的进程,一个线程类Work允许多个进程共行的进程调度创建各自的模拟
5、任务,由process_Create(intProcess_ProcessNum)方法实现创建Process_ProcessNum个进程。接着,编写进程调度算法(1)最高优先数优先的调度算法HIGH_method()(这里采用把处理机分配给优先数最高的进程);(2)先来先服务算法FIFS_method()。以上,两个方法都是Main_PCB的成员方法,由Main_PCB的主调函数main()调用call()方法进行调用。进程的优先数及需要的运行时间这里由由随机数产生。进程的到达时间为创建进程的时间。进程的运行时间以时间片为单位进行计算。每个
6、进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。这里采用线程的睡眠sleep()方法实现,最后通过进程的开始时间、执行时间和结束时间,观察进程的执行过程。2、程序执行过程(1)开始执行Main_PCB主调方法main();41(2)调用方法process_Create(ProcessNum)创建ProcessNum个进程调用call(method)方法;(a)如果method=1执行FIFS_method()先来先服务算法,接着执行创建进程的个子作业线程;(b)如果method=2执行HIGH_m
7、ethod()最高优先数优先的调度算法,接着执行创建进程的个子作业线程(3)输出程序执行的开始,和结束时间。开始创建num 个进程依此命名为process0,process1,等执行类Main_PCB的主调研方法main()调用call(method)方法判断method的值Method=1Method=2输出出错提示信息执行FIFS_method()执行HIGH_method()输出结果结束3、实现原理图414、实现类图Main_PCBVariableprocessIDProcessNumTimePcb_QueexcuteQueuepro
8、cessName……+main()+call()+HIGH_method()+FIFS_method()+process_Create()+printSign()…….PCB_b
此文档下载收益归作者所有