| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

进程调度算法的实现计算机操作系统课程设计

文***品

贡献于2021-08-29

字数:5659

题目2 进程调度算法实现
21 题目研究容预期达目标
(1)设计进程控制块
(2)设计进程队列
(3)设计进程(≥20)
(4)动态生成时间片执行时间优先级信息输出文件中
(5)设计基时间片优先级调度算法
(6)动态调度调度信息输出文件中
(7)理解进程调度相关理
(8)掌握时间片调度原理
(9)掌握高优先级调度原理
22 题目研究工作基础实验条件
(1)硬件环境:装Linux操作系统(虚拟机)计算机台
(2)软件环境:vim编辑器Visual C++
23 设计思想
(1)优先级
优先级体现进程重程度紧迫程度数现代操作系统中采优先级调度策略优先级(0127)0 优先级高127 低实验中求优先级08
(2)基时间片调度
绪进程先先服务原排成队列次调度时CPU分配队首进程令执行时间片时间片完时计时器发出时钟中断请求调度程序进程终止该进程放队尾
(3)高优先级调度
优先级高进程优先cpu等该进程执行完毕外进程执行
(4)基时间片高优先级调度
时间片优先级调度结合系统中优先级应绪队列绪队列采时间片调度高优先级进程队列调度完成转入更低优先级绪队列调度
(5)算法设计
绪进程先先服务原排成队列次调度时CPU分配队首进程令执行时间片时间片完时计时器发出时钟中断请求调度程序进程终止该进程放队尾优先级高进程优先cpu等该进程执行完毕外进程执行时间片优先级调度结合系统中优先级应绪队列绪队列采时间片调度高优先级进程队列调度完成转入更低优先级绪队列调度
24 流程图
开始
输入创建进程数
进程达?
较进程间优先级
运行完成
Time++
结束
N
Y
N
Y
Y
创建进程信息
优先级排出等序列
开始
执行等序列第
Time++
全部完毕?
结束
运行完毕?
优先级改变
重新排序
N
图21等序列排序流程图 图22进程运行流程图

25 程序代码
#include
#include
#include
using namespace std

#define NULL 0
typedef struct PCB定义进程结构体
{
char name进程名
struct PCB *next
double arrive_time达时间
double need_time需求运行时间
double worked_time已工作时间
int Pnumber优先数
char condition队列标识
}PCB*linkList


void creatPCB(linkList *aint n)
{
cout<<请输入进程名 达时间 求运行时间 优先数< for(int i0i {
cin>>a[i]>name>>a[i]>arrive_time>>a[i]>need_time>>a[i]>Pnumber输入结构体匹配
a[i]>condition'd'表示未加入绪队列标志
a[i]>worked_time0worked_time初始值0
}
}

int judge(linkList *aint n)判断进程否结束
{
int flag_11
for(int i0i {
if(a[i]>condition'f')
{
flag_10
break
}
}
return flag_1
}
void creat_Process(linkList *aint n)计算输出调度结果
{
double time0已运行总时间
linkList lpr定义象
l(linkList)malloc(sizeof(PCB))强制转换
l>next NULL l节点null
int flag_10标识
while(flag_11)
{
for( int i0i {
int flag0
if (time>a[i]>arrive_time&&(a[i]>condition'd'||a[i]>condition'x'))判断进程否达否刚执行未加入两者执行
{ 目排出等序列
p(linkList)malloc(sizeof(PCB))
pa[i]
p>nextNULL
if(l>nextNULL)
{
l>nextp
p>condition'w'
}
else
{
rl
while(r>next){
if((r>next>Pnumber)>p>Pnumber)判断优先级
{交换
p>nextr>next
r>nextp
flag1
a[i]>condition'w'
break
}
else
{
rr>next
}
}
if(flag0)
{
r>nextp
a[i]>condition'w'
}
}
}
}
rl>next1
cout<<绪队列:
while(r)输出绪队列
{
cout<name<<
rr>next
}
cout< cout<<正运行:
rl>next
cout<name< r>Pnumberr>Pnumber+8防止出现时间点程序两程序交进行
r>worked_time++已运行程序工作时间+1
time++
r>condition'x'标识判断
if(r>worked_timer>need_time)
{
r>condition'f'表示已运行完标志
cout<name<<已运行完成 < }
l>nextr>next进程移1
flag_1judge(an)判断进程否完成
}
}
int main()
{
int n
cout<<请输入进程数 N:
cin>>n
linkList *anew linkList[n]申请新链表a[i]
for(int i0i {
a[i](linkList)malloc(sizeof(PCB))sizeof(PCB)进行强制转换(结构体类型)
}
creatPCB(an)输入函数
creat_Process(an)计算输出调度结果
}
26 运行结果分析

正运行:A
绪队列:D F J C L G B H K E I A
正运行:D
绪队列:O F J C L N G M B H K E I A D
正运行:O
绪队列:F J P Q C L N G M B H K E O I A D
正运行:F
绪队列:R S J P Q C L N G M B H K E O I A D F
正运行:R
绪队列:S J P Q T C L N G M B H K E O R I A D F
正运行:S
S已运行完成
绪队列:J P Q T C L N G M B H K E O R I A D F
正运行:J
绪队列:P Q T C L N G M B H K E O R I A D F J
正运行:P
绪队列:Q T C L N G M B H K E O R I A D F J P
正运行:Q
绪队列:T C L N G M B H K E O R I A D F J P Q
正运行:T
绪队列:C L N G M B H K E O R I A D F J P Q T
正运行:C
绪队列:L N G M B H K E O R I A D F J P Q T C
正运行:L
绪队列:N G M B H K E O R I A D F J P Q T C L
正运行:N
绪队列:G M B H K E O R I A D F J P Q T C L N
正运行:G
绪队列:M B H K E O R I A D F J P Q T C L N G
正运行:M
绪队列:B H K E O R I A D F J P Q T C L N G M
正运行:B
绪队列:H K E O R I A D F J P Q T C L N G M B
正运行:H
绪队列:K E O R I A D F J P Q T C L N G M B H
正运行:K
绪队列:E O R I A D F J P Q T C L N G M B H K
正运行:E
绪队列:O R I A D F J P Q T C L N G M B H K E
正运行:O
O已运行完成
绪队列:R I A D F J P Q T C L N G M B H K E
正运行:R
R已运行完成
绪队列:I A D F J P Q T C L N G M B H K E
正运行:I
绪队列:A D F J P Q T C L N G M B H K E I
正运行:A
绪队列:D F J P Q T C L N G M B H K E I A
正运行:D
绪队列:F J P Q T C L N G M B H K E I A D
正运行:F
F已运行完成
绪队列:J P Q T C L N G M B H K E I A D
正运行:J
绪队列:P Q T C L N G M B H K E I A D J
正运行:P
绪队列:Q T C L N G M B H K E I A D J P
正运行:Q
绪队列:T C L N G M B H K E I A D J P Q
正运行:T
绪队列:C L N G M B H K E I A D J P Q T
正运行:C
绪队列:L N G M B H K E I A D J P Q T C
正运行:L
绪队列:N G M B H K E I A D J P Q T C L
正运行:N
绪队列:G M B H K E I A D J P Q T C L N
正运行:G
绪队列:M B H K E I A D J P Q T C L N G
正运行:M
绪队列:B H K E I A D J P Q T C L N G M
正运行:B
绪队列:H K E I A D J P Q T C L N G M B
正运行:H
绪队列:K E I A D J P Q T C L N G M B H
正运行:K
绪队列:E I A D J P Q T C L N G M B H K
正运行:E
绪队列:I A D J P Q T C L N G M B H K E
正运行:I
绪队列:A D J P Q T C L N G M B H K E I
正运行:A
A已运行完成
绪队列:D J P Q T C L N G M B H K E I
正运行:D
绪队列:J P Q T C L N G M B H K E I D
正运行:J
绪队列:P Q T C L N G M B H K E I D J
正运行:P
P已运行完成
绪队列:Q T C L N G M B H K E I D J
正运行:Q
Q已运行完成
绪队列:T C L N G M B H K E I D J
正运行:T
绪队列:C L N G M B H K E I D J T
正运行:C
C已运行完成
绪队列:L N G M B H K E I D J T
正运行:L
绪队列:N G M B H K E I D J T L
正运行:N
绪队列:G M B H K E I D J T L N
正运行:G
绪队列:M B H K E I D J T L N G
正运行:M
绪队列:B H K E I D J T L N G M
正运行:B
绪队列:H K E I D J T L N G M B
正运行:H
绪队列:K E I D J T L N G M B H
正运行:K
K已运行完成
绪队列:E I D J T L N G M B H
正运行:E
绪队列:I D J T L N G M B H E
正运行:I
绪队列:D J T L N G M B H E I
正运行:D
D已运行完成
绪队列:J T L N G M B H E I
正运行:J
绪队列:T L N G M B H E I J
正运行:T
T已运行完成
绪队列:L N G M B H E I J
正运行:L
绪队列:N G M B H E I J L
正运行:N
绪队列:G M B H E I J L N
正运行:G
绪队列:M B H E I J L N G
正运行:M
绪队列:B H E I J L N G M
正运行:B
绪队列:H E I J L N G M B
正运行:H
H已运行完成
绪队列:E I J L N G M B
正运行:E
绪队列:I J L N G M B E
正运行:I
绪队列:J L N G M B E I
正运行:J
绪队列:L N G M B E I J
正运行:L
L已运行完成
绪队列:N G M B E I J
正运行:N
N已运行完成
绪队列:G M B E I J
正运行:G
绪队列:M B E I J G
正运行:M
M已运行完成
绪队列:B E I J G
正运行:B
B已运行完成
绪队列:E I J G
正运行:E
绪队列:I J G E
正运行:I
绪队列:J G E I
正运行:J
绪队列:G E I J
正运行:G
G已运行完成
绪队列:E I J
正运行:E
绪队列:I J E
正运行:I
绪队列:J E I
正运行:J
绪队列:E I J
正运行:E
绪队列:I J E
正运行:I
绪队列:J E I
正运行:J
绪队列:E I J
正运行:E
E已运行完成
绪队列:I J
正运行:I
绪队列:J I
正运行:J
绪队列:I J
正运行:I
绪队列:J I
正运行:J
绪队列:I J
正运行:I
绪队列:J I
正运行:J
J已运行完成
绪队列:I
正运行:I
绪队列:I
正运行:I
绪队列:I
正运行:I
绪队列:I
正运行:I
绪队列:I
正运行:I
绪队列:I
正运行:I
绪队列:I
正运行:I
绪队列:I
正运行:I
绪队列:I
正运行:I
I已运行完成
tang@ubuntu~osjinchengdiaodu
27 心体会
进程调度算法实现需实现功:设计进程控制块设计进程队列设计进程(≥20)设计基时间片优先级调度算法 进行动态调度
实现功需理解进程调度相关理掌握时间片调度原理掌握高优先级调度原理
通设计进程控制块数结构操作系统学知识实现次设计

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

操作系统课程设计磁盘调度算法

操作系统课程设计磁盘调度算法目 录1 课程设计目的及要求……………………………………………………12 相关知识…………………………………………………………………13 题目分析…………………………………………………………………24 概要设计…………………………………………………………………2 4.1 先来先服务(FCFS)的设计思想………

文***享 3年前 上传547   0

操作系统课程设计磁盘调度算法

《计算操作系统》课程设计报告 姓名: 班级:软件 学号: 指导老师:

文***品 3年前 上传461   0

操作系统课程设计银行家算法的模拟实现

操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。

文***品 3年前 上传683   0

操作系统实验三磁盘调度算法的实现

XX大学计算机与通信工程学院实验报告2013 至 2014 学年 第 一 学期课程名称操作系统学号 学生姓名 年级 专业 教学班号 实验地点 实验时间 2013年 月 日 第 节 至 月 日 第 节主讲教师 辅导教师 实验( 三 )实验名称磁盘调度算法的

文***享 3年前 上传479   0

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验要求1. 设计进程调度算法,进程数不定2. 包含几种调度算法,并加以实现3. 输出进程的调度

文***享 3年前 上传642   0

操作系统课程设计银行家算法报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 专 业:计算机科学与技术 指导教师: 时 间: 2009 XX大学 计

文***品 3年前 上传616   0

合工大页面置换算法操作系统课程设计报告

计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31.最佳(Optimal)置换算法 32.先进先出(FIFO)页面置换算法 43.最近最久未使

文***品 3年前 上传556   0

《操作系统 银行家算法》课程设计报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 专 业:计算机科学与技术 XX大学 计算机科学与信息学院目 录1 课程设计目的 ………………………………………

文***品 3年前 上传808   0

银行家算法《操作系统》课程设计报告

《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程学院一、实验要求和实验目的实验目的:本课程设计是学生学习完《操作系统原理》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统

文***享 3年前 上传695   0

操作系统实验报告C语言实现银行家算法

实 验 报 告题 目名 称C语言实现银行家算法院 系信息科学与工程学院班 级完成时间指导老师本次实验成绩组长联系电话邮件地址组员(姓名,学号)主要任务程序算法的编写、实现、运行调试组员(姓名,学号)主要任务实验报告的完成组员(姓名,学号)主要任务实验报告的完成

文***品 3年前 上传466   0

操作系统课程设计编程序模拟银行家算法

课程设计报告书 课程名称: 操作系统原理 题 目: 编程序模拟银行家算法 系 名: 信息工程系 专业班级: 软件 姓 名: 学 号:

文***品 3年前 上传724   0

操作系统课外实践报告Linux进程管理

操作系统课外实践报告项 目 名 称: Linux 进程管理 所 在 班 级: 软件工程(10.Net) 小 组 成 员: 指 导 教 师:

z***u 1年前 上传317   0

操作系统进程管理实验报告

操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;(4)了解Linux系统中进程通信的基本原理。2.实验预备内容(1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解;(2)阅读Linux的fork()源码文件,分析进程的

文***享 1年前 上传353   0

查找算法的程序实现「学生版」

查找算法的程序实现【学生版】【例1】 在数组元素a(1)到a(8)中查找键值为key的数,其顺序查找的VB程序段如下,请在划线处填写正确的语句。for i=1 to 8if ①        then   Text1.text=str(i)  exit forend ifnext iif ②        then text1.text=″在数组中没有找到″+str(key)

文***7 2年前 上传507   0

操作系统实验四主存空间的分配与回收首次适应算法和循环首次适应算法

实验报告【实验名称】 首次适应算法和循环首次适应算法 【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】首次适应(first fit,FF)算法FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区即可。然后再按照作业的大小,从该分区中划出一块内存空间,分配给请求者,

文***品 3年前 上传1047   0

数据结构和算法课程设计题目

XX大学课程设计课程名称: 数 据 结 构 与 算 法院(部)名 称: 信息与计算科学学院组长姓名学号 同组人员姓名指导教师姓名: 设 计 时 间: 2010.6.7----2009.6.27一、《数据结构与算法》课程设计参考题目(一)参考题目一(每位同学选作一个,同组人员

文***品 11个月前 上传377   0

《计算机操作系统》试题库

1. 单项选择题(共200个题目)100236. 一般用户更喜欢使用的系统是(C )。 A.手工操作 B.单道批处理 C.多道批处理 D.多用户分时系统100237. 与计算机硬件关系最密切的软件是( D). A.编译程序 B.数据库管理程序 C.游戏程序 D.OS

w***2 2年前 上传667   0

查找算法的程序实现「教师版」

查找算法的程序实现【教师版】【例1】 在数组元素a(1)到a(8)中查找键值为key的数,其顺序查找的VB程序段如下,请在划线处填写正确的语句。for i=1 to 8if ①        then   Text1.text=str(i)  exit forend ifnext iif ②        then text1.text=″在数组中没有找到″+str(key)

文***7 2年前 上传419   0

—基于机器学习的人脸识别算法的设计与实现

人脸识别技术是一种新型的生物特征认证技术。人脸识别技术也是一个非常活跃的研究领域,涵盖了许多领域,例如数字图像处理。随着人们对应用程序需求的增长,面部识别技术趋向于大量使用,使用微芯片和标准化。

平***苏 3年前 上传821   0

大数据处理算法研究与实现

因为要适应不同的人的上网要求,提供一些企业的一些网络地址,是网上比较重要的一部分、成套动力设备中起主要作用的机器、寄件系统、系统控制在内的完整的网络平台服务。我们有一个自己的平台,现如今数据发展越来越快速了,而且在很多领域也发生了根本的变化。近年来,中

王***朝 4年前 上传859   0

线索二叉树算法的设计与实现

随着时代的不断进步,计算机技术也随之得到发展。数据结构在计算机技术的发展中起到巨大的作用。数据结构为构建出高效的计算机算法打下了坚实的基础。良好的数据结构能够提高算法效率的同时也能减少对系统资源的占用[

王***朝 3年前 上传1000   0

计算机操作系统实验三页面置换算法模拟实验

计算机工程学院实验报告书课程名:《 操作系统原理A 》 题 目: 虚拟存储器管理 页面置换算法模拟实验 班 级: 学 号: 姓 名:

文***品 3年前 上传643   0

计算机网络基础课程设计Ping程序的实现

计算机网络工程课程设计报告题 目: Ping程序的实现 学生姓名: 学 号: 专业班级: 计科专业班 同组姓名:   指导教师: 设计时间: 2013年下学期第X周 指导老师意见:

文***品 3年前 上传485   0

基于MATLAB的ASK调制解调实现课程设计

大学《通信原理》课程设计报告学 院 专 业 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 2016年X月X

文***品 3年前 上传724   0

Ping程序的设计与实现课程设计

 计算机网络课程设计报告设计名称 Ping程序的设计与实现 专业班级 同组人姓名 指导教师 成 绩 一、设计目的和要求1、实验目的 利用ICMP数据包、C语言实现

文***享 3年前 上传618   0