当前位置: 首页 > news >正文

26计算机操作系统408考研--操作系统处理机调度篇章(五)

文章目录

  • 一、调度简介
  • 死锁


一、调度简介

计算机系统中,处理器和内存资源会出现供不应求的情况,特别是多个I/O设备与主机交互,作业不断进入系统,或者是多个批处理作业在磁盘的后备队列中等待进入内存的情况。操作系统在管理有限的资源的同时,需要考虑如何选取进入内存的作业,如何分配有限的处理器资源给多个进程等重要问题。处理器的调度正是处理器和内存资源调度和分配相关的工作。

高级调度
高级调度又称为作业调度、长调度。调度对象是作业。作业是一个比程序更为广泛的概念,不仅包含通常的程序和数据,还配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。从输入系统的一批作业中按照预定调度策略选择进入主存的作业,为其分配资源,创建进程,以上就是高级调度。作为启动阶段的调度,为进程的运行做好准备工作,等待进程调度选择进程进行运行。

低级调度
低级调度又称为进程调度、短调度调度对象是进程。根据主存资源,决定就绪队列中的有多少个并且哪些进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。包括对处理机现场信息的保存,如程序计数器、多个通用寄存器中的内容等,将它们送入该进程的**进程控制块(PCB)**中的相应单元。然后按某种算法选取进程,把就绪队列中被选中的进程的状态改为运行状态,并准备把处理机分配给它。

中级调度
中级调度介于高级调度和低级调度之间。该调度根据进程状态决定辅存和主存之间的进程对换。主存资源紧缺时,将暂时不能运行的进程换出,进程转为挂起状态;主存资源空闲,并且进程满足运行条件时,再将进程调回主存。对主存的利用和系统吞吐率都有很大的提升。

在上述三种调度中,进程调度是操作系统最核心的部分,运行频率最高,因此把它称为短程调度。为避免进程调度占用太多的CPU时间,进程调度算法不宜太复杂。作业调度往往是发生在一个(批)作业运行完毕,退出系统,而需要重新调入一个(批)作业进入内存时,故作业调度的周期较长,大约几分钟一次,因此把它称为长程调度。在纯粹的分时或实时操作系统中通常不需要作业调度。中级调度的运行频率基本上介于上述两种调度之间。一些功能完善的操作系统为了提高主存利用率和作业吞吐率,会引入中级调度。

在这里插入图片描述

  • 如图4.2所示,被高级调度选中的作业,从后备队列中,通过多个作业步:编译、链接、装入、运行,称为目标进程,进入主存的就绪队列等候。就绪队列中的进程以此被分配相同的时间片获得处理器。如果进程在给定的时间片内顺利完成,便在释放处理机进入完成状态;
  • 如果进程在本次分配的时间片内尚未完成,该进程会到就绪队列的末尾等待下一个时间片;
  • 如果在执行期间进程因为某事件而被阻

相关文章:

  • 每天一个数据分析题(三百三十五)
  • 【软件工程】【23.04】p1
  • 关于我转生从零开始学C++这件事:升级Lv.25
  • 【MySQL精通之路】SQL优化(1)-查询优化(9)-外部联接优化
  • 深入Java:JSON解析与操作的艺术
  • Ubuntu安装IPOPT和Casadi
  • 打印机里失败的任务删不掉的解决办法 斑马打印机更新电脑驱动和升级打印机固件 提示ribbon out 并黄状态亮+黄供应闪
  • python列表底层原理
  • 视图【mysql数据库】
  • 百度智能云千帆AppBuilder升级!开放多源模型接入,思考模型再次加速!
  • CentOS 7 安装 Minio
  • 【晚风摇叶之其他】抖音直播弹幕解析,连接websocket解析弹幕内容
  • 第三方软件检测机构要具备哪些资质要求?专业测试报告如何申请?
  • YOLO系列模型发展史
  • Linux防火墙配置案例分析:常见网络攻击的防御
  • 【技术性】Search知识
  • canvas 五子棋游戏
  • co模块的前端实现
  • DOM的那些事
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • MobX
  • React16时代,该用什么姿势写 React ?
  • React的组件模式
  • 从PHP迁移至Golang - 基础篇
  • 对象管理器(defineProperty)学习笔记
  • 反思总结然后整装待发
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端攻城师
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 一个JAVA程序员成长之路分享
  • 优化 Vue 项目编译文件大小
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ‌JavaScript 数据类型转换
  • !$boo在php中什么意思,php前戏
  • # include “ “ 和 # include < >两者的区别
  • # 数论-逆元
  • #162 (Div. 2)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (LeetCode C++)盛最多水的容器
  • (pojstep1.3.1)1017(构造法模拟)
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (分布式缓存)Redis持久化
  • (六)c52学习之旅-独立按键
  • (六)DockerCompose安装与配置
  • (三)c52学习之旅-点亮LED灯
  • (四)stm32之通信协议
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net实现客户区延伸至至非客户区
  • 。Net下Windows服务程序开发疑惑
  • [.net]官方水晶报表的使用以演示下载