操作系统课程设计-进程调度的模拟实现讲课教案 下载本文

课程设计

题目 进程调度算法模拟编程

学生姓名 学号

专 业 计算机科学与技术 班级 指导教师

完成日期 2012年12月18日

进程调度的模拟实现

摘要:进程管理是操作系统中的重要功能,用来创建进程、撤消进程、实现进程状态转换,它提供了在可运行的进程之间复用CPU的方法。在进程管理中,进程调度是核心,因为在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态,当就绪进程个数大于处理器数目时,就必须依照某种策略决定哪些进程优先占用处理器。本文通过两种算法模拟实现了进程之间的调度。

关键词:进程创建,先来先服务,优先级调度。

一.前言

在操作系统中,调度的实质是一种资源分配,调度算法即指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业有限调度算法;在分时系统中,为保证系统具有合理的响应时间,采用轮转法进行调度。采用算法时,则要考虑多方面因素,以便达到最佳效果。做好这个课程设计,有利于加深对操作系统进程调度知识的理解。

二. 系统总体框架设计

本程序采用两种算法(最高优先级数优先的调度算法和先来先服务算法)对多个进程进行调度,每个进程有三个状态,初始状态为就

绪状态。最高优先级数优先的调度算法中,程序的某进程运行时间以时间片为单位计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由用户给定。在优先级数优先的调度算法中,优先级数的值设计为

100

与运行时间的差值,即

Pro_time-process->needtime。进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1。对于遇到优先数一致的情况,采用先来先服务策略解决。

程序设计组成框图

数据项 作用 pro_name time_submit pro_id time_start time_exe time_end pro_priority 进程名称 进程创建时刻 进程号,当进程有相同名称时,用来区分进程 进程启动时刻 进程要求运行时间 进程结束的时刻 进程优先级 图1-2 进程控制块

CpuModel类成员 Cpurun() CreatePcb() ShowPcb() PriModel() FcfsModel() pcbnum freetime allturn allaver PcbList[] 作用 Cpu模拟运行函数 进程创建函数 进程显示函数 实现优先级调度算法 实现先来先服务算法 进程数量 Cpu空闲时间 总周转时间 总带权周转时间 进程就绪队列的实现 图1-3CpuModel类