操作系统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

  • 区别

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python中别再用 ‘+‘ 拼接字符串了!

大家好,在 Python 编程中,我们常常需要对字符串进行拼接。你可能会自然地想到用 操作符将字符串连接起来,毕竟这看起来简单明了。 在 Python 中,字符串是不可变的数据类型,这意味着一旦字符串被创建,它就…

HarmonyOS 鸿蒙应用开发 DevEco Studio环境搭建 (值得收藏哦)

目录 1、华为开发者官网下载 DevEco Studio 2、安装DevEco Studi 3、安装过程具体步骤 4、认证华为开发者账号 5、编写第一个鸿蒙应用 1、华为开发者官网下载 DevEco Studio 前往:华为开发者官网地址 下载,我这里下载的 deveco-studio-3.1.0.500版…

VSCode SAP Systems配置HTTPS访问SAP

第一次访问提示,Self-Signed 证书 解决办法:https访问SAP Fiori网站,导出SSL证书为DER格式保存到硬盘上 双击DER文件,导入到系统 退出VSCode,再次启动 Test Connection, 提示 The system URL is using a hostname …

“高考钉子户”唐尚珺决定再战2024年高考

“高考钉子户”唐尚珺决定在2024年再次参加高考,这个选择确实很特别也很有趣。十几年连续参加高考,他已经积累了大量的备考经验和应试技巧。这样的经验对于高考辅导机构来说无疑是非常宝贵的资源,他如果选择去辅导机构当老师,应该…

二百三十七、Hive——DWS层生成每个清洗字段的异常情况记录

一、目的 在Hive中对每种业务数据的清洗字段的异常数据进行记录 例如这张图,上面是原始数据,下面是每台雷达每天的异常字段的记录 二、实施步骤 (一)建表 create table if not exists dws_data_clean_record_queue(data_ty…

基于Matlab卷积神经网络人脸识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 人脸识别作为计算机视觉领域的关键技术之一,具有广泛的应用前景,如安全…

如何参与github开源项目并提交PR

👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,目前工作于上海某电商服务公司…”); 📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正&…

window环境下QT5开发环境的搭建

1、安装visual Stusio 15 生成工具2012 2、安装Visual studio Enterprise 2017 3、Visual studio Enterprise 2017安装完成之后, 修改:选择桌面调试,如下: 4、打开QTcreator,选项中,配置编译器&#xff…

LeetCode 264 —— 丑数 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 第一个丑数是 1 1 1,由于丑数的质因子只包含 2 、 3 、 5 2、3、5 2、3、5,所以后面的丑数肯定是前面的丑数分别乘以 2 、 3 、 5 2、3、5 2、3、5 后得到的数字。 这样,我…

【全开源】答题考试系统源码(FastAdmin+ThinkPHP+Uniapp)

答题考试系统源码:构建高效、安全的在线考试平台 引言 在当今数字化时代,在线考试系统已成为教育机构和企业选拔人才的重要工具。一个稳定、高效、安全的答题考试系统源码是构建这样平台的核心。本文将深入探讨答题考试系统源码的关键要素,…

SQLmap学习以及题解运用

1.简介 SQLmap是一款开源的SQL注入工具,用于检测和利用Web应用程序的SQL注入漏洞。SQLmap支持多种数据库管理系统,包括MySQL、Oracle、PostgreSQL、Microsoft SQL Server、SQLite等,并支持各种不同的操作系统和平台。 这里主要分为四大部分…

抖音运营_如何开抖店

截止20年8月,抖音的日活跃数高达6亿。 20年6月,上线抖店 (抖音官方电商) 一 抖店的定位和特色 1 一站式经营 帮助商家进行 商品交易、店铺管理、客户服务 等全链路的生意经营 2 多渠道拓展 抖音、今日头条、西瓜、抖音火山版…

解读乐得瑞LDR6020 PD协议芯片:开启智能快充新时代

在如今电子产品日新月异,功能不断增强的时代,充电技术的革新也显得尤为重要。为了满足用户对高效、安全、便捷的充电需求,乐得瑞公司凭借其深厚的技术积累和创新能力,推出了一款名为LDR6020的PD协议芯片,为智能快充领域…

探索python列表处理:偶数筛选的两种方法

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、不使用列表生成式的偶数筛选 1. 读取输入列表 2. 筛选偶数 三、使用列表生…

GpuMall智算云:Ubuntu 实例桌面版

基于 ubuntu18.04 安装的桌面版本,桌面使用 xfce4 ,集成了 Pytorch2.3.0、cuda11.8、Python3.10、VNC、noVNC、VSCode-Server。 在 镜像市场 选择xfce4-desktop镜像,然后进行创建实例 GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall…

打造AI虚拟伴侣 - 优化方案

第一部分:框架优化概述 1、精确定位: 构建一个高度灵活且用户友好的平台,旨在通过无缝集成多种大型语言模型(LLMs)后端,为用户创造沉浸式的角色交互体验。不仅适配电脑端,还特别优化移动端体验,满足二次元AI虚拟伴侣市场的特定需求。 2、核心功能强化: 增强后端兼容…

吉时利2401新款(keithley)2410数字源表 原装二手

吉时利2401数字源表 Keithley 2401 数字源表 Keithley吉时利数字源表 先进电气测试仪器与系统的吉时利仪器公司发布了专为低电压测试而优化的低成本方案,扩展了其广受工程师赞誉的2400系列数字源表产品线。与所有吉时利SMU(源测量单元)仪器…

基于springboot+html的二手交易平台(附源码)

基于springboothtml的二手交易平台 介绍部分界面截图如下联系我 介绍 本系统是基于springboothtml的二手交易平台,数据库为mysql,可用于毕设或学习,附数据库 部分界面截图如下 联系我 VX:Zzllh_

进程间通信(下)

1. system V共享内存 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据 那么这到底是为什么呢? 1.1 共享内存示意…

blender复制uv贴图

1、新建两个猴头 2、点击其中一个进入uv编辑模式 3、在uv编辑中打开一个图像 4、新建一个材质球,将图像渲染到模型上 打开图像纹理 选择刚才打开的图像 切换到材质预览模式后,就可以看到贴图了 5、选择一个孤岛 6、然后选择拼排孤岛 可以看到该模型展开…