操作系统-笔记-第二章-进程调度

news2025/1/19 11:30:12

目录

二、第二章——【进程调度】

1、调度的概念

(1)五状态和七状态(就绪挂起、阻塞挂起)

(2)三层调度 (高级、中级、低级)

(3)总结

2、调度的切换

(1)调度——切换时机

(2)调度——方式

(3)切换 & 调度 【区别】

(4)总结

3、调度器 & 闲逛进程

4、调度算法的评价指标

CPU利用率

系统吞吐量

周转时间 —— 平均周转时间

周转时间 plus—— 带权周转时间

等待时间

总结

5、调度算法(排队、短作业、高响应)

(1)先来先服务

(2)短作业优先

(3)高响应比优先

(4)总结

6、调度算法(时间片轮转、优先级、多级反馈)

(1)时间片轮转

(2)优先级调度算法

(2.1)优先级调度算法——设置优先级(动态)

(3)总结

(4)多级反馈队列调度算法

(5)总结


二、第二章——【进程调度】

1、调度的概念

(1)五状态和七状态(就绪挂起、阻塞挂起)

 

(2)三层调度 (高级、中级、低级)

作业——内存——进程

 

(3)总结

 

2、调度的切换

 

(1)调度——切换时机

如果进程在访问【临界区】和【临界资源】的时候,不能被调度和中断!

毕竟他在拿取资源,如果被调度了,那么问题就大了!

(2)调度——方式

 

(3)切换 & 调度 【区别】

 

(4)总结

 

3、调度器 & 闲逛进程

调度器是什么——让一个进程的状态合理的进行切换(别反复横跳就行了~)

抢占式调度器——调度任务(轮询方式)

非抢占式调度器(轻松点)

调度器(Scheduler是操作系统中的一个重要组件,负责决定哪个进程或线程在特定时间点运行。它根据预定的调度算法和策略,从就绪状态的进程中选择一个合适的进程,分配处理器资源给该进程,并控制进程的状态切换。

抢占式调度器(Preemptive Scheduler是一种调度方式,它可以在一个进程正在执行时,由操作系统强制剥夺该进程的CPU执行权,将CPU资源分配给其他优先级更高的进程。抢占式调度器有能力迅速响应紧急任务或高优先级任务,提高系统的响应性。

非抢占式调度器(Non-preemptive Scheduler,也称为协作式调度器,是另一种调度方式。在非抢占式调度器中,一个进程一旦获得CPU执行权,将一直运行直到主动放弃或等待某个事件发生,才会由操作系统将CPU资源分配给其他进程。这种调度方式下,进程间需要自觉地释放CPU资源,因此对协作式调度器来说,进程的合作尤为重要。

总结起来:

  1. 调度器(Scheduler)是操作系统中负责选择进程或线程执行的组件。
  2. 抢占式调度——可以主动剥夺正在执行的进程的CPU资源,
  3. 非抢占式调度——则需要进程自愿释放CPU资源。

这两种调度方式在不同的场景下有不同的适用性和优劣势。        

闲逛进程(备胎)——执行【零地址】指令——(抖腿指令)

 

4、调度算法的评价指标

清华教材内容:

 

CPU利用率

 

系统吞吐量

 

周转时间 —— 平均周转时间

周转时间 = 实际运行时间 + 等待时间

 

周转时间 plus—— 带权周转时间

 

等待时间

 

总结

 

5、调度算法(排队、短作业、高响应)

(1)先来先服务

谁先来,就先服务谁(虽然绝对公平、不会饥饿,但是…)

排队拍奶茶——当前面那个人买20杯,然而你只买1杯,你也必须排队等着

 

 

(2)短作业优先

非抢占式——任务队列中,谁的任务时间短,谁就先执行(不公平)

 

抢占式——会产生饥饿!!!

(3)高响应比优先

这个算法——不会导致饥饿(结合了先来先服务、短作业的优点)

 

(4)总结

 

6、调度算法(时间片轮转、优先级、多级反馈)

(1)时间片轮转

时间片设置——不能太大,也不能太小!(切换进程的开销——占比不超过总进程的1%)

 

不会导致饥饿——会轮流的执行进程

 

(2)优先级调度算法

优先级——类似中断优先级

那么就会产生饥饿~

改进方案:

  1. 不要让优先级为静态的!(也就是死的,不会修改)
  2. 即为动态的优先级(会定时分析情况,给进程分配对应的优先级)
  3. 还是会产生饥饿~
  4. 毕竟你一直产生【优先级较高的进程】,那么【优先级低的进程】还是会饥饿~

 

(2.1)优先级调度算法——设置优先级(动态)

适用于——实时操作系统

(3)总结

 

(4)多级反馈队列调度算法

通过设置多个队列~(经典加一层~)

每个队列对应不同的请求(针对不同的队列,设置不同的调度算法)

在队列之间,可以使用——时间片划分、固定优先级…

在队列之内,可以使用——排队、短作业、高响应、优先级…

(5)总结

适合用交互式系统——可以提供较好的反馈、公平性、平衡性

Unix操作系统——交互式系统

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

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

相关文章

Vue--》打造个性化医疗服务的医院预约系统(六)

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…

RGOS日常管理操作

RGOS日常管理操作 一、前言二、RGOS平台概述2.1、锐捷设备的常用登陆方式2.2、使用Console登入2.3、Telnet远程管理2.4、SSH远程管理2.5、登陆软件:SecureCRT 三、CLI命令行操作3.1、CLI命令行基础3.2、CLI模式3.3、CLI模式互换3.4、命令行特性3.4.1、分屏显示3.4.2…

(六)、深度学习框架中的算子

1、深度学习框架算子的基本概念 深度学习框架中的算子(operator)是指用于执行各种数学运算和操作的函数或类。这些算子通常被用来构建神经网络的各个层和组件,实现数据的传递、转换和计算。 算子是深度学习模型的基本组成单元,它们…

07-微信小程序-注册页面-模块化

07-微信小程序-注册页面 文章目录 注册页面使用 Page 构造器注册页面参数Object初始数据案例代码 生命周期回调函数组件事件处理函数setData()案例代码 生命周期模块化 注册页面 对于小程序中的每个页面,都需要在页面对应的 js 文件中进行注册,指定页面…

Ribbon 源码分析

Ribbon 源码分析 Ribbon Debug 分析 断点 LoadBalancerInterceptor LoadBalancerInterceptor 实现了 ClientHttpRequestInterceptor 接口,重写了其中的 intercept 方法,用来拦截请求; 获取原始的 uri 和 服务名,调用 LoadBalanc…

Spring Bean的生命周期总结(包含面试题)

目录 一、Bean的初始化过程 1. 加载Spring Bean 2. 解析Bean的定义 3. Bean属性定义 4. BeanFactoryPostProcessor 扩展接口 5. 实例化Bean对象 6. Aware感知 7. 初始化方法 8. 后置处理 9. destroy 销毁 二、Bean的单例与多例模式 2.1 单例模式(Sin…

[国产MCU]-W801开发实例-按键与GPIO输入

按键与GPIO输入 文章目录 按键与GPIO输入1、硬件准备2、软件准备3、驱动实现4、驱动测试在前面的文章中,我们成功点亮了LED,同时也知道W801的GPIO是可软件配置的。在这里,将详细介绍如何通过按键控制LED。 1、硬件准备 W801开发板一块微动开关一个10K电阻一个导线若干1uF电容…

JavaScript简介--语句--变量

目录 JavaScript简介 为什么学习 JavaScript JavaScript与ECMAScript的关系 JavaScript版本 JavaScript语句、标识符 语句 标识符 JavaScript保留关键字 变量 变量的命名规则 数据类型 变量的重新赋值 变量提升 运算符 条件语句 循环语句 JavaScript简介 JavaScri…

【RabbitMQ】RabbitMQ整合SpringBoot案例

文章目录 1、前情提要【RabbitMQ】2、RabbitMQ-SpringBoot案例 -fanout模式2.1 实现架构总览2.2 具体实现2.2.1生产者2.2.1消费者 1、前情提要【RabbitMQ】 【RabbitMQ】消息队列-RabbitMQ篇章 RabbitMQ实现流程 2、RabbitMQ-SpringBoot案例 -fanout模式 2.1 实现架构总览…

时域和频域

时 域 时域即时间域,是指以时间作为自变量,振幅作为因变量,在二维坐标图中即 横轴为时间,纵轴为振幅 下面举出例子: 频率为 2 H z 2Hz 2Hz振幅为 10 V 10V 10V 频 域 同理频域为频率为自变量即横轴 ,对于…

01信号和系统

目录 一、信号 1.什么是信号 2.信号的分类 (1)确定信号与随机信号 (2)连续时间信号与离散时间信号 (3)周期信号和非周期信号 (4)功率信号与能量信号 归一化能量的定义 归一化功率的定义 二、系统 1.什么是系统 2.系统的分类 (1)连续时间系统和离散时间系统 (2)线…

【PCL-8】方向包围盒OBB

AABB包围盒:边平行于坐标轴的最小六面体; 方向包围盒OBB:相对于坐标轴方向任意的最小立方体。 最小包围盒计算流程: 1、利用PCA主元分析法获得点云的三个主方向,获取质心,计算协方差,得到协方…

AI聊天机器人原来有这么多作用

AI聊天机器人是一种能够模拟人类对话并利用人工智能技术进行自主学习和适应的计算机程序。它们能够根据用户的输入内容来分析用户的需求,并提供相应的回答和建议。今天looklook就来和大家详细讲一下AI聊天机器人到底有什么作用吧。 AI聊天机器人的作用 1、客户服务…

【springboot】mongoTemplate增删改查操作

目录 一、代码示例1.1 pom依赖1.2 application配置1.3 controller1.4 service 二、截图示例2.1 新增2.2 修改2.3 详情2.4 分页2.5 删除 一、代码示例 1.1 pom依赖 <!-- mongodb --> <dependency><groupId>org.springframework.boot</groupId><art…

2023 年 4 款适用于安卓手机的最佳 PDF 转 Word 转换器

尝试在 Android 上将 PDF 文档转换为 Word 文件&#xff1f;好吧&#xff0c;您可能会发现要让它发挥作用几乎是不可能的&#xff0c;至少在没有任何额外工具的情况下是这样。Web 上有用于此类转换的选项&#xff0c;但本地不一定会发生任何情况&#xff08;可能除了一个应用程…

金融语言模型:FinGPT

项目简介 FinGPT是一个开源的金融语言模型&#xff08;LLMs&#xff09;&#xff0c;由FinNLP项目提供。这个项目让对金融领域的自然语言处理&#xff08;NLP&#xff09;感兴趣的人们有了一个可以自由尝试的平台&#xff0c;并提供了一个与专有模型相比更容易获取的金融数据。…

axios / fetch 实现 stream 流式请求

axios 是一个支持node端和浏览器端的易用、简洁且高效的http库。本文主要介绍 axios 如何实现 stream 流式请求&#xff0c;注意这里需要区分 node 环境和浏览器环境。 一、node端 代码演示&#xff1a; const axios require(axios);axios({method: get,url: http://tiven.c…

intern()的使用和理解

如果不是用双引号声明的String对象&#xff0c;可以使用String提供的intern方法&#xff1a;intern方法会从字符串常量池中查询当前字符串是否存在&#xff0c;若不存在就会将当前字符串放入常量池中。比如&#xff1a;String myinfo new String&#xff08;"I Love CSDN…

网络安全--负载均衡

负载均衡 webshell实践 一、负载均衡配置 1.在全局的http下写下它&#xff1a; upstream nginx_boot{# 30s内检查心跳发送两次包&#xff0c;未回复就代表该机器宕机&#xff0c;请求分发权重比为1:2server 192.168.0.000:8080 weight100 max_fails2 fail_timeout30s; ser…

ARM64 程序调用标准

ARM64 程序调用标准 1 Machine Registers1.1 General-purpose Registers1.2 SIMD and Floating-Point Registers 2 Processes, Memory and the Stack2.1 Memory Addresses2.2 The Stack2.2.1 Universal stack constraints2.2.2 Stack constraints at a public interface 2.3 Th…