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


    题目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 ...

    3年前   
    531    0

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

    《计算操作系统》课程设计报告 姓名: ...

    3年前   
    447    0

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

    操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进...

    3年前   
    665    0

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

    XX大学计算机与通信工程学院实验报告2013 至 2014 学年 第 一 学期课程名称操作系统学号 学生姓名 年级 专业 教学班号 实验地点 实验时间 2013年 月 日 ...

    3年前   
    472    0

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

    操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处...

    3年前   
    635    0

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

    《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 ...

    3年前   
    613    0

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

    计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31....

    3年前   
    544    0

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

    《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 ...

    3年前   
    801    0

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

    《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程...

    3年前   
    682    0

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

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

    3年前   
    458    0

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

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

    3年前   
    707    0

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

    操作系统课外实践报告项 目 名 称: Linux 进程管理 所 在 班 级: 软件工程(10.Ne...

    1年前   
    295    0

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

    操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;...

    1年前   
    339    0

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

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

    2年前   
    494    0

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

    实验报告【实验名称】 首次适应算法和循环首次适应算法 【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】首次适应(first fit,FF...

    3年前   
    1032    0

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

    XX大学课程设计课程名称: 数 据 结 构 与 算 法院(部)名 称: 信息与计算科学学院组长姓名学号 同组人员姓名指导教师姓名: 设 计 时 间: 2010.6.7-...

    10个月前   
    362    0

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

    1. 单项选择题(共200个题目)100236. 一般用户更喜欢使用的系统是(C )。 A.手工操作 B.单道批处理 C.多道批处理 ...

    2年前   
    632    0

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

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

    2年前   
    407    0

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

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

    3年前   
    802    0

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

    因为要适应不同的人的上网要求,提供一些企业的一些网络地址,是网上比较重要的一部分、成套动力设备中起主要作用的机器、寄件系统、系统控制在内的完整的网络平台服务。我们有一个自己的平台,现如今数据发展...

    4年前   
    850    0

    文档贡献者

    文***品

    贡献于2021-08-29

    下载需要 3 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档