没有合适的资源?快使用搜索试试~ 我知道了~
操作系统课程设计 处理机调度程序
4星 · 超过85%的资源 需积分: 49 32 下载量 123 浏览量
2011-01-01
17:04:28
上传
评论 1
收藏 160KB DOC 举报
温馨提示
试读
24页
、选择一个调度算法,实现处理机调度。 2、 采用最高优先数优先的调度算法和先来先服务调度算法。 3、每个进程有一个进程控制块( PCB)表示。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 4、采用动态优先数策略选择就绪进程获得 CPU后都只能运行一个时间片,运行完后优先数减1。 5、动态显示每个进程的当前状态及进程的调度情况。 6、重复以上过程,直到所要进程都完成为止。
资源推荐
资源详情
资源评论
计算机科学 专业课程设计任务书
学生姓名 专业班级 学号
题 目
处理机调度程序
课题性质
其它
课题来源
自拟课题
指导教师 同组姓名
主要内容
1、选择一个调度算法,实现处理机调度。
2、 采用最高优先数优先的调度算法和先来先服务调度算法。
3、每个进程有一个进程控制块( PCB)表示。每个进程的状态可以是就绪
W(Wait)、运行 R(Run)、或完成 F(Finish)三种状态之一。
4、采用动态优先数策略选择就绪进程获得 CPU 后都只能运行一个时间片,
运行完后优先数减 1。
5、动态显示每个进程的当前状态及进程的调度情况。
6、重复以上过程,直到所要进程都完成为止。
任务要求
设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。
参考文献
任满杰等《操作系统原理实用教程》 电子工业出版社 2006
汤子瀛 《计算机操作系统》(修订版)西安电子科技大学出版社 2001
张尧学 史美林《计算机操作系统教程》实验指导 清华大学出版社 2000
罗宇等 《操作系统课程设计》机械工业出版社 2005
审查意见
指导教师签字:
教研室主任签字: 年 月 日
0
处理机调度程序---基于优先数调度算法实现
1、 课程设计的目的
理解操作系统进程管理中进行进程调度的过程和编程方法,掌握先
来先服务调度算法和最高优先数优先的调度算法,创建进程控制块
PCB。理解进程的状态及变化,动态显示每个进程的当前状态及进程的
调度情况。
2、 需求分析
进程调度程序选择一个就绪状态的进程,使之在处理器上运行,每
个进程的状态信息用数据结构(进程控制块 PCB)表示,进程的调度采
用最高优先数优先的调度算法和先来先服务调度算法相结合的算法,并
且采用动态优先数策略,选择进程占用处理器后该进程仅能使用一个时
间片,运行完后优先数减 1。
3、 运行环境
Windows 2000/Linux 等操作系统,装有 C、C++等语言工具的环境
4 、开发工具和编程语言
Visual Stdio C++6.0
5、 概要设计
进程控制块:描述进程的状态信息,用结构体定义
typedef struct process
{ char name[10]; //进程名
int priority; //优先数
Time ReachTime; //到达时间
Time NeedTime; //需要运行时间
Time UsedTime; //已用时间
1
char state; //进程状态
}PCB; //进程控制块
图 1.进程调度模拟程序模块图
算法思想:
定义结构体 PCB 描述进程的进程控制块,定义数组 PCB pcb[Max]存放进程
进程调度程序调用 face()函数选择所要进行的操作。输入 1 则增加进程并调度
进程,输入 2 则打印进程,输入 0 则任务结束
增加进程,调用 AddProcess()函数,将输入的进程存放在数组 pcb[Max]中
打印进程,调用 print()函数,在该函数中首先调用 sort()函数对进程按优先级
和先来先服务排序,然后显示输出排序后的进程
进程调度,调用 attemper()函数,调度优先级最高的进程分配给 CPU 使之运
行一个时间片
进程优先级排序,调用 sort()函数,按照先来先服务和优先级排序,使排序完
最优先运行的进程存放在 pcb[0]中。
6、 详细设计
整体设计图如下:
2
进程调度模拟程序
进 程 优 先
级 排 序
sort()函数
进 程 调 度
attemper
()函数
打 印 进 程
print()
函数
进 程 调 入
AddProces
s()函数
选择操作
face()
函数
是
否
完成
图 2.程序设计流程图
3
设置时间片
选择
增加进程
继 续 增
加
优先级排序
打印进程
进程调度
打印进程
结束进程
真
开始
结束
Y
Y N
N
Y
Y N
4
i=0
j=n-2
pcb[j+1].Re
achTime<pc
b[j].ReachTi
me
temp=pcb[j];
pcb[j]=pcb[j+1];
pcb[j+1]=temp;
j=j-1
j>=
i
i=i+1
i<n-
1
i=0
j=n-2
pcb[j+1].pri
ority>pcb[j]
.priority
temp=pcb[j];
pcb[j]=pcb[j+1];
pcb[j+1]=temp;
j=j-1
j>=
i
i=i+1
i<n-
1
开始
结束
剩余23页未读,继续阅读
资源评论
- zhmmerry2014-09-18这个好像没什么用啊,还那么多分
zhang609912601
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功