操作系统3_作业与处理机调度

操作系统3_作业与处理机调度

文章目录

  • 操作系统3_作业与处理机调度
    • 1. 作业的概念与组成
    • 2. 作业的建立及状态
    • 3. 处理机调度相关概念
      • 3.1 调度级别
      • 3.2 调度队列模型
      • 3.3 选择准则
    • 4. 作业调度与进程调度
    • 5. 典型处理机调度算法
      • 5.1 先来先服务算法FCFS
      • 5.2 短作业优先算法SJF
      • 5.3 优先级调度算法HPF
      • 5.4 最高响应比优先调度算法HRRN
      • 5.5 时间片轮转调度算法RR
      • 5.6 多级反馈队列轮转法RRMF
    • 6. 实时系统调度算法
      • 6.1 实时调度基本条件
      • 6.2 调度算法分类
      • 6.3 常用实时调度算法
    • 7. 死锁概念及产生原因
    • 8. 死锁存在的条件
    • 9. 预防死锁
    • 10. 避免死锁(重点)
    • 11. 检测死锁
    • 12. 解除死锁
    • 13. 本章重点

1. 作业的概念与组成

  • 作业的概念

    • 用户角度:在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业
    • 系统角度:作业是一个比程序更广的概念,它由程序、数据和作业说明书组成
    • 作业概念使用场合:
      • 早期批处理系统
      • 现在的大型机、巨型机系统
      • 对于微机和工作站系统一般不使用作业的概念
  • 作业的组成

    • 程序:可以包含多个程序和多个数据集,但必须至少包含一个程序

    • 数据:可有可无

    • 作业说明书

      • 基本信息:用户名、作业名、使用语言名、允许的最大处理时间
      • 控制信息:作业控制、操作顺序、出错处理
      • 资源信息:处理时间、内存、外设类型和数量、处理机优先级、库函数和实用程序

2. 作业的建立及状态

  • 作业建立的步骤

    • 作业的输入:指将作业的程序、数据和作业说明书从输入设备输入到外存,并形成有关初始信息
      • 联机输入
      • 脱机输入
      • 直接耦合输入
      • SPOOLING系统
    • 作业控制块的建立:由作业注册程序在系统中为该作业申请一个作业控制块,并填写响应的信息
      • 建立时机:作业进入外存输入后
      • 建立步骤:
        • 申请作业控制块
        • 填写作业控制块相关信息:作业名、作业估计执行时间;优先数、作业建立时间;作业说明书文件名、程序语言类型;内存要求、外设要求;作业状态以及作业在外存中的存储地址
  • 作业的状态

    • 提交状态:从作业输入请求开始到JCB建立时的状态
    • 后备状态:从PCB建立到被作业调度程序选中并进入内存,作业在作业等待队列中的状态
    • 执行状态:作业进入内存后到执行结束
    • 完成状态:作业执行结束到撤销之前作业所处的状态
  • 作业与进程的关系

    • 作业是用户向计算机系统提交任务的任务实体,而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位
    • 作业在没有进入执行状态时被存入外存的后备作业队列中等待调度执行,进程一旦被创建,总有相应部分放入内存
    • 一个作业可由多个进程组成,且必须至少由一个进程组成,反之不成立
    • 作业的概念应用范围主要局限于批处理系统中,而进程的概念则应用到几乎所有的多道程序系统中

3. 处理机调度相关概念

3.1 调度级别

  • 有关作业调度

    • 具体功能
      1. 记录系统中各作业的状况
      2. 从后备作业队列中挑选一部分作业投入运行
      3. 为被选中作业做好执行前的准备工作
      4. 在作业执行结束后做善后工作
    • 目标
      1. 具有公平性
      2. 具有较高的设备利用率
      3. 具有较高的吞吐率
      4. 具有较快的响应时间
    • 衡量标准
      1. 批处理系统:主要考察系统的平均响应时间
      2. 分时系统:主要考察系统的平均响应时间
      3. 实时系统:主要考察系统对特定事件的响应时间
  • 处理机调度级别

    image-20240522105218573

    • 低级调度/进程调度/短程调度/微观调度

      • 功能:用来决定就绪列表中的哪个进程应获得处理机
      • 分类:
        • 非抢占方式Non-Preemptive Mode:优点(实现简单、系统开销小,适用于大多数的批处理系统环境)和缺点(难以满足紧急任务的要求立即执行,可能造成难以预料的后果,在要求比较严格的实时系统中不宜采用这种调度方式)
        • 抢占方式Preemptive Mode:原则(优先权原则、短作业/进程优先原则、时间片原则)
    • 中级调度/中程调度/交换调度

      • 功能:把暂时不能运行的进程调至外存上去等待,此时进程处于静止阻塞状态;当这些进程重新具备运行条件、且内存又稍有空闲时,由中级调度来决定将其重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度
      • 引入目的:提高内存利用率和系统吞吐量
    • 高级调度/作业调度/长程调度/接纳调度/宏观调度

      • 功能:从外存中选择作业进入内存
      • 考虑因素:接纳多少个作业、接纳哪些作业

3.2 调度队列模型

  • 进程调度队列模型

    image-20240522111103364

  • 高级和低级调度的队列模型

    image-20240522111212740

  • 区别

    具有高级、低级两种调度的调度队列模型与单一进程调度队列模型的主要区别在于如下两方面:

    • 就绪队列的形式
    • 设置多个阻塞队列
  • 具有三级调度的调度队列模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拨云见日,ATFX七场研讨会揭秘投资先机

财经先机,一手掌握。近期,随着国际金价持续走高,避险情绪高涨,由此激发新一轮投资热潮。作为业界领先的金融创新品牌,ATFX深受投资者认可和信赖,为助力广大投资者了解市场运行规律,捕捉财经脉络…

怎么画思维导图?方法介绍

怎么画思维导图?在数字化时代,思维导图已成为我们工作、学习和生活中的得力助手。它不仅能帮助我们更好地组织和表达思想,还能提升我们的思维能力和创造力。那么,哪些软件可以画思维导图呢?本文将为你揭秘几款功能强大…

Linux 应用入门(一)

1. 交叉编译 概念:在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序。 为什么需要交叉编译? 速度:目标平台得运行速度比主机往往慢得多,因为许多…

Docker+nginx部署SpringBoot+vue前后端分离项目(保姆及入门指南)

前后分离项目部署 项目回顾工具上线准备1、win1.1、前端1.2、后端 2、linux环境2.1、安装docker2.2、安装docker compose2.3、编写Dockerfile文件2.4、编写docker-compose.yml文件2.5、修改application-pro.yml2.6、准备好nginx的挂载目录和配置2.7、部署后端服务 项目回顾 书…

数据挖掘实战-基于内容协同过滤算法的电影推荐系统

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

OpenHarmony集成OCR三方库实现文字提取

1. 简介 Tesseract(Apache 2.0 License)是一个可以进行图像OCR识别的C库,可以跨平台运行 。本样例基于Tesseract库进行适配,使其可以运行在OpenAtom OpenHarmony(以下简称“OpenHarmony”)上,并新增N-API接口供上层应…

Ubuntu服务器运行Subspace节点和Farm

提供Subspace 节点部署&性能优化&机房托管&运维监控等服务。myto88 磁盘格式化 将插入的磁盘格式化。 sudo mkfs.ext4 -m 0 -T largefile4 /dev/sd*磁盘挂载 此处为语雀内容卡片,点击链接查看:https://www.yuque.com/u25096009/lvoxa…

企商在线荣登甲子光年“2024中国AI算力层创新企业”榜单

5月15日,「AI创生时代——2024甲子引力X科技产业新风向」大会在北京顺利举办,大会发布2024【星辰100】创新企业榜。企商在线凭借全栈式一体化AI算力能力,与超聚变、寒武纪等企业共同入选“2024中国AI算力层创新企业”榜单。 本次大会由中国科…

AJAX(JQuery版本)

目录 前言 一.load方法 1.1load()简介 1.2load()方法示例 1.3load()方法回调函数的参数 二.$.get()方法 2.1$.get()方法介绍 2.2详细说明 2.3一些例子 2.3.1请求test.php网页并传送两个参数 2.3.2显示test返回值 三.$.post()方法 3.1$.post()方法介绍 3.2详细说明 …

什么是云计算安全?如何保障云计算安全

云计算彻底改变了数据存储的世界,它使企业可以远程存储数据并随时随地从任何位置访问数据。存和取变得简单,也使得云上数据极易造成泄露或者被篡改,所以云计算安全就显得非常重要了。那么什么是云计算安全? 其实,云计…

WPS PPT学习笔记 1 排版4原则等基本技巧整理

排版原则 PPT的排版需要满足4原则:密性、对齐、重复和对比4个基本原则。 亲密性 彼此相关的元素应该靠近,成为一个视觉单位,减少混乱,形成清晰的结构。 两端对齐,1.5倍行距 在本例中,19年放左边&#x…

是谁的项目还在烂大街?一个基于 SpringBoot 的高性能短链系统

看了几百份简历,真的超过 90% 的小伙伴的项目是商城、RPC、秒杀、论坛、外卖、点评等等烂大街的项目,人人都知道这些项目烂大街了,但大部分同学还是得硬着头皮做,没办法,网络上能找到的、教程比较完善的就这些项目了&a…

基于机器学习预测未来的二氧化碳排放量(随机森林和XGBoost)

基于机器学习预测未来的二氧化碳排放量(随机森林和XGBoost) 简介: CO2排放是当今全球关注的环境问题之一。本文将使用Python对OWID提供的CO2排放数据集进行分析,并尝试构建机器学习模型来预测未来的CO2排放趋势。我们将探索数据…

kafka Kerberos集群环境部署验证

背景 公司需要对kafka环境进行安全验证,目前考虑到的方案有Kerberos和SSL和SASL_SSL,最终考虑到安全和功能的丰富度,我们最终选择了SASL_SSL方案。处于知识积累的角度,记录一下kafka keberos安装部署的步骤。 机器规划 目前测试环境公搭建了三台kafka主机服务,现在将详细…

ViLT学习

多模态里程碑式的文章,总结了四种多模态方法,根据文字和图像特征特征抽取方式不通。 文章的贡献主要是速度提高了,使用了数据增强,文本的mask 学习自b站朱老师的论文讲解

电赛控制类PID算法实现

一、什么是PID PID(Proportional-Integral-Derivative)是一种经典的控制算法,广泛应用在自动化控制系统中。它是通过对被控对象的测量值和设定值进行比较,并根据误差的大小来调整输出信号,实现对被控对象的稳定控制。 …

【C++】map和set的封装

目录 前言一、红黑树的设计1.1 红黑树存储节点的设计1.2 红黑树的迭代器1.3 map的设计1.4 set的设计1.5关于map与set的const_iterator设计 前言 我们知道map和set的底层都是用红黑树实现的,但是set和map的结构不一样,set只有一个参数K,而map…

前端基础:1-2 面向对象 + Promise

面向对象 对象是什么?为什么要面向对象? 通过代码抽象,进而藐视某个种类物体的方式 特点:逻辑上迁移更加灵活、代码复用性更高、高度的模块化 对象的理解 对象是对于单个物体的简单抽象对象是容器,封装了属性 &am…

Linux_应用篇(07) 系统信息与系统资源

在应用程序当中,有时往往需要去获取到一些系统相关的信息,譬如时间、日期、以及其它一些系统相关信息,本章将向大家介绍如何通过 Linux 系统调用或 C 库函数获取系统信息, 譬如获取系统时间、日期以及设置系统时间、日期等&#x…