博客
关于我
操作系统——进程调度
阅读量:753 次
发布时间:2019-03-23

本文共 1439 字,大约阅读时间需要 4 分钟。

进程调度方式与调度性能评价指标

在计算机操作系统中,进程调度是保证系统运行效率的关键环节。本文将探讨几种常见的进程调度方式及其调度性能评价指标。

调度性能的评价指标

调度性能通常可以通过以下几个关键指标来衡量:

  • CPU利用率: 衡мер指没用CPU等待的时间占总时间的比例。
  • 系统吞吐量: 单位时间内系统能够完成的工作量。
  • 周转时间: 作业完成时间与提交时间之间的差异。
  • 带权周转时间: 周转时间与作业执行时间的比值。
  • 响应时间: 进程从提交到完成的时间间隔。
  • 对截止时间的保证: 确保各进程能在规定时间内完成执行。
  • 公式补充

    周转时间 = 完成时间 - 提交时间

    带权周转时间 = 周转时间 / 要求执行时间


    分抢占与抢占进程调度方式

    1. 先来先服务调度算法(FCFS)

    特点:

    • 非抢占式,各进程按固定顺序轮转执行。
    • 动态调整优先级但无抢占运作。优点:
    • 适合多种作业环境,尤其能有效调节长作业。缺点:
    • 权重要抢占调度无法及时处理紧急任务,容易导致资源浪费。

    2. 短作业优先调度算法(SJF)

    特点:

    • 抢占式策略,可以根据作业执行时间动态调整优先级。优点:
    • 能显著降低平均周转时间和带权周转时间,提高吞吐量。缺点:
    • 实现复杂性高。
    • 长作业可能因饥饿而无法及时获取资源。
    • 未能充分考虑任务紧迫性。

    3. 高响应比优先调度算法

    特点:

    • 响应比 = (等待时间 + 服务时间) / 服务时间
    • 非抢占调度,优先处理响应比低的作业。优点:
    • 能有效增强系统稳定性。缺点:
    • 需要定期计算响应比,增加系统开销。
    • 未能有效处理紧急任务。

    4. 优先级调度算法

    特点:

    • 可分为抢占式和非抢占式两种模式。
    • 针对紧迫任务和普通任务设置不同的优先级。优点:
    • 能确保关键任务及时处理,提高系统响应效率。缺点:
    • 埄民作业可能因饥饿而资源获取困难。

    5. 时间片轮转调度算法

    特点:

    • 按照先来先服务原则将就绪进程排列成队列。
    • 每次调度将CPU分配给队首进程,执行固定时间片。
    • 时间片用尽后,后续可重新放回队列末尾。优点:
    • 能适应不同任务负载,减少长作业饥饿。缺点:
    • 需要合理设置时间片长度,避免调度频繁率过高。
    时间片设置建议
    • 系统响应时间: 可接受长度越长,时间片长度越长。
    • 进程队列数量: 就绪进程越多,时间片长度相应减少。
    • 调度开销: 调度程序和上下文切换时间应尽可能小。
    • CPU性能: CPU执行速度越快,时间片可以适当缩短。

    6. 多级队列调度算法

    特点:

    • 不同队列有独立的调度算法,各队列间优先级递减。
    • 高优先级队列抢占执行低优先级队列。优点:
    • 合理划分任务优先级,提高系统整体效率。缺点:
    • 低优先级队列容易出现饥饿现象。

    7. 多级反馈队列调度算法

    特点:

    • 将进程划分到多级队列,优先级递减。
    • 每个队列内部采用时间片轮转调度。
    • 队列间以抢占式优先级方式进行排列。优点:
    • 能有效调节不同任务类型的运行优先级。缺点:
    • 低优先级进程可能因饥饿而无法及时获得执行机会。

    调度算法选择建议

    在实际应用中,应根据系统需求、任务类型和资源数量选择合适的调度算法。例如:

    • FCFS 更适合多任务环境,避免饥饿问题。
    • SJF 适用于处理大量时间短但要求高的任务。
    • 时间片轮转 适合处理高并发时段,避免单任务占用长时间资源。
    • 多级反馈队列 能较好地平衡系统性能,降低资源冲突。

    通过灵活运用这些调度算法,可以根据实际需求优化系统性能,减少资源资源冲突。在设置调度参数时,更应考虑系统响应时间目标和进程的关键性质。

    转载地址:http://otczk.baihongyu.com/

    你可能感兴趣的文章
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>
    Mysql8在Windows上离线安装时忘记root密码
    查看>>
    MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
    查看>>
    mysql8的安装与卸载
    查看>>
    MySQL8,体验不一样的安装方式!
    查看>>
    MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
    查看>>
    Mysql: 对换(替换)两条记录的同一个字段值
    查看>>
    mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
    查看>>
    MYSQL:基础——3N范式的表结构设计
    查看>>
    MYSQL:基础——触发器
    查看>>
    Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
    查看>>
    mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
    查看>>
    mysqldump 参数--lock-tables浅析
    查看>>
    mysqldump 导出中文乱码
    查看>>
    mysqldump 导出数据库中每张表的前n条
    查看>>
    mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
    查看>>
    Mysqldump参数大全(参数来源于mysql5.5.19源码)
    查看>>
    mysqldump备份时忽略某些表
    查看>>