首页 > 其他分享 >操作系统3_作业与处理机调度

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

时间:2024-05-24 17:54:43浏览次数:25  
标签:操作系统 处理机 队列 作业 调度 内存 进程

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

文章目录

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

  • 区别

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

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

标签:操作系统,处理机,队列,作业,调度,内存,进程
From: https://blog.csdn.net/Ausgelebt/article/details/139178004

相关文章

  • 操作系统2_进程管理
    操作系统2_进程管理文章目录操作系统2_进程管理1.进程的引入2.进程概念、特征及状态2.1进程的概念2.2进程的特征2.3进程的状态3.进程的组成及上下文3.1进程组成3.2进程上下文3.3进程空间4.进程的创建与撤销4.1创建进程4.2撤销进程......
  • 分布式任务调度内的 MySQL 分页查询优化
    作者:vivo互联网数据库团队- QiuXinbo本文主要通过图示介绍了用主键进行分片查询的过程,介绍了主键分页查询存在SQL性能问题,如何去创建高效的索引去优化主键分页查询的SQL性能问题。对于数据分布不均如何发现,提供了一些SQL查询案例来进行参考,对MySQLIndexConditionPushdown......
  • Volcano社区新版本发布!7大功能全面增强队列能力与调度稳定性
    本文分享自华为云社区《Volcano社区v1.9.0版本正式发布!全面增强队列能力与调度稳定性》,作者:云容器大未来。北京时间2024年5月21日,Volcano社区v1.9.0版本正式发布,此次版本增加了以下新特性:支持弹性队列容量capacity调度支持队列与节点间的亲和调度Volcano支持Kubernet......
  • Java 异常相关(二):异常处理机制的补充,自定义异常的使用等
    一、前言记录时间[2024-05-22]前置文章:Java异常相关:异常体系结构,异常与错误的区别等本文讲述Java异常相关知识,对异常处理机制进行补充,以及自定义异常的方式。文章对异常知识的描述显然是笼统而简洁的,对于异常的学习,更应注重平时的积累和整理。二、异常处理机......
  • 多目标应用:基于NSGA2求解柔性作业车间调度问题(FJSP),MATLAB代码
    一、柔性作业车间调度问题柔性作业车间调度问题(FlexibleJobSchedulingProblem,FJSP)的描述如下:n个工件{J,J......
  • 进程理论、进程与程序的区别、调度算法、进程的创建,状态,终止
    【一】进程理论【1】什么是进程(1)理论正在进行的一个过程或者说一个任务而负责执行任务则是cpu(2)单任务一个单独的任务单核+多道,实现多个进程的并发执行一段时间段只能做一件事:铺床、吹头发、睡觉(cpu同一时间只能干一个活)(3)多任务一段时间可以做很多件事铺......
  • WSL安装乌邦图操作系统
    步骤1:首先开启WSL参考官方网站:https://docs.microsoft.com/zh-cn/windows/wsl/install-manual步骤2:下载安装包到网站:https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#downloading-distributions博主下载的是ubuntu18.04:https://wslstorestorage.blob.core.windo......
  • 使用interface化解一场因操作系统不同导致的编译问题
    场景描述起因:因项目需求,需要编写一个agent,需支持Linux和Windows操作系统。Agent里面有一个功能需要获取到服务器上所有已经被占用的端口。实现方式:针对不同的操作系统,实现方式有所不同linux:使用服务器自带的netstat指令,然后使用os/exec库来调用shell脚本实现wind......
  • 分布式任务调度内的 MySQL 分页查询优化 等值在前,排序在中间,范围在最后
    分布式任务调度内的MySQL分页查询优化https://mp.weixin.qq.com/s/VhSzxYIRv83T3D3JD4cORg三、优化方案 3.1优化方案确定 当前SQL执行计划以主键进行顺序遍历,是一个范围扫描,有点像在一片很大的居民区按照序号挨家挨户寻找一些特定的人一样,比较简单也比较低效。 既然......
  • socketserver模块、操作系统、操作系统的发展史
    【一】socketserver模块【1】简介socketserver中包含了两种类,一种为服务类(serverclass):前者提供了许多方法像绑定,监听,运行……(也就是建立连接的过程)。一种为请求处理类(requesthandleclass)专注于如何处理用户所发送的数据(也就是事务逻辑)。......