操作系统Lesson11 - 进程调度和批处理系统调度

文章目录

  • 调度
    • 三个问题:
  • 进程行为
  • 何时调度
  • 调度分类
    • 依据时钟中断来分类
    • 系统环境分类


调度

调度:
一个程序。

调度对象:进程和内核级线程。

请添加图片描述

1.调度程序调度P1,读取PCB块在CPU中恢复它的现场(ctx);
2.当CPU执行完了P1之后,主动放弃时间片,去执行调度算法重复上述过程;

三个问题:

1.什么时候调度 - - 时机 - - 不能过于频繁
2.从哪里调度任务 - - 执行 - - 从就绪队列中选一个
3.选哪一个任务 - - 调度算法

进程三状态:就绪、运行、阻塞

调度:老状态保护起来,保存到PCB,读取一个新状态,新PCB


进程行为

CPU密集型:单位时间段内,CPU几乎被占满;
I/O密集型:单位时间内,离散的使用CPU。

请添加图片描述

CPU:运算一些逻辑、数学模型 – 卡
GPU:渲染模型 – 图像很差

CPU密集型
任务时间长,频繁调度反而降低效率,建议直接分一个核给任务;
若是单核系统,CPU密集型意义就不大了,如果有死循环,直接死机了。
CPU密集型核心线程数 = CPU核数

I/O密集型
经验公式:核心线程数 = CPU核数 / (1 - 阻塞系数)

阻塞系数是I/O操作占总时间的比例∈[0, 1]


何时调度

请添加图片描述

进程何时调度
1.创建时:可以选择调度父进程还是子进程,但是实际上其实是不管的,比如Linux就是随机的;
2.退出时:进程运行完退出时,要决定下一个调度谁

  1. CPU不会空转,PC指针只会往下一直读;
  2. 当在没有任务时,希望执行一个低功耗的功能区,切换CPU频率,关闭一些不必要的组件 – IDLE进程,永远不会阻塞的进程,有新任务时立马滚,且有任务的时候不会调度;
  3. 实现:标记级别,调度用基于级别的调度

3.阻塞在I/O、信号等原因
阻塞I/O时会放弃CPU,所以会执行调度程序。

4.当I/O发生中断时,可以做调度策略

调度过程
进程运行 -> 调用I/O -> 进入内核 -> 查找驱动 -> 没反应(无I/O) -> 休眠进程并放入对应队列,同时调用调度程序


调度分类

依据时钟中断来分类

非抢断式
只能主动释放CPU。

抢占式
依据硬件的时钟中断来完成。

系统环境分类

批处理:一个接一个的处理;
交互式:依靠时间片;
实时:更关注截止时间,某些场合下也需要开始时间。

批处理
1.吞吐量:单位时间内做的任务量;
2.周转时间:结束时间-到来时间(进入队列的时间)
3.CPU利用率

交互系统
1.响应时间:被调度的时间-任务创建时间
2.均衡性

实时系统
1.满足截止时间
2.可预测性

批处理的调度
先来先服务FCFS:非抢占式的基础设计,先来后到。

最短作业优先

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

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

相关文章

Delphi 实现键盘模拟、锁定键盘,锁定鼠标等操作

Delphi 模拟按键的方法 SendMessageA 说明: 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回SendMessage所包含4个参数: 1. hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数…

java各种锁介绍

1. synchronized锁: • 定义:Java内置的关键字锁,用于实现线程间的同步。它可以修饰方法或代码块。 • 特性:隐式获取和释放锁,自动处理锁的粒度(方法级或代码块级),支持重入性。 •…

国产化(三):中间件——东方通TongWeb7.0

一、准备工作 1、软件包和license文件 2、检查jdk是否安装 二、安装 1、创建tongweb文件夹 我是把软件包放在了桌面,通过命令将软件包移动到指定文件夹下。 1—切换到opt文件夹 cd /opt 2—查看文件夹里的文件 ls 3—创建tongweb文件夹 sudo mkdir tongweb 4—检…

C++算法练习day69——376.摆动序列

题目来源:. - 力扣(LeetCode) 题目思路分析 题目:摆动序列(Wiggle Subsequence) 给定一个整数序列 nums,找到具有最大长度的摆动序列。摆动序列的定义是:如果序列中的数字不是全部…

Flume——sink连接Hive的参数配置(属性参数)

目录 配置文件官网属性参数例子 配置文件官网 可以参考官网的说明 属性参数 属性名默认值说明type无(必须指定)组件类型名称,必须是"hive"hive.metastore无(必须指定)元数据仓库地址,例如&…

Java面试题精选:设计模式(二)

1、装饰器模式与代理模式的区别 1)代理模式(Proxy Design Pattern ) 原始定义是:让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许将请求提交给对象前后进行一些处理。 代理模式的适用场景 功能增强 当需要对一个对…

Java版-图论-最小生成树-Prim算法

实现描述 如图: Prim算法的基本思想是从一个顶点开始,逐步构建最小生成树。具体步骤如下: 随机选取一个顶点作为起始点,并将其加入最小生成树的集合中。从该顶点出发,选择一条边连接到其他未被访问的顶点中的最小权…

Linux WEB服务器的部署及优化

1.用户常用关于web的信息 1.1.什么是www www是world wide web的缩写,及万维网,也就是全球信息广播的意思。 通常说的上网就是使用www来查询用户所需要的信息。 www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以Internet…

Rust迭代器——drain

概述: 通常用于集合类型(如Vec、HashMap等)来移除并返回集合中的元素。就是会在遍历过程中将这些元素从集合中移除,使用drain可以避免在移除元素时进行多次分配内存和拷贝的操作,从而提高性能。 示例: le…

vba学习系列(9)--按需求计数单元格数量

系列文章目录 文章目录 系列文章目录前言一、按需求计数单元格数量1.需求 二、使用步骤1.vba源码2.整理后 总结 前言 一、按需求计数单元格数量 1.需求 一个表中有多个类型的单元格内容,比如:文字、数字、特殊字符、字母数字…… 我们要计数字母数字的…

【JAVAFX】普通的确认对话框使用

普通alert确认对话框 Alert alert new Alert(Alert.AlertType.CONFIRMATION, "确定要关闭窗口吗&#xff1f;", ButtonType.YES, ButtonType.NO);alert.setHeaderText(null);alert.initOwner(primaryStage);Optional<ButtonType> result alert.showAndWait()…

opencv获取摄像头的最大分辨率图像

事情是这样的&#xff0c;在拼多多花了40买了一个4k高清的摄像偷&#xff0c;确实清楚。但是我一直以为网络摄像头分辨率只有640*480,于是用python测试了一下&#xff0c;上代码 import cv2def get_max_resolution(camera_index):"""获取摄像头的最大分辨率。&…

Redis 数据结构(二)—集合和有序集合

集合&#xff08;Set&#xff09;允许用户将多个各不相同的元素&#xff08;文本或二进制数据&#xff09;存储到集合中&#xff0c;以无序的方式存储元素。 有序集合&#xff08;Sorted Set&#xff09;同时具有“有序”和“集合”两种性质。每个元素由一个成员和分值组成。成…

【HarmonyOS学习日志(13)】计算机网络之TCP/IP协议族(二)

文章目录 TCP/IP协议族ARPDNS标志字段&#xff1a;协商具体的通信方式和反馈通信状态DNS查询问题的格式资源记录&#xff08;Resource Record, RR&#xff09;格式&#xff1a;被用于应答字段、授权字段和额外信息字段 IP协议IP服务的特点无状态无连接不可靠 IP头部结构IPv4头部…

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

集成 Applitools 进行视觉回归测试(快速入门) 简介Applitools 的核心特点Applitools 的应用场景1. 准备工作2. 获取示例项目2.1 下载示例代码2.2 安装依赖2.3 选择测试运行方式3. 代码解析3.1 测试用例示例4. 运行测试4.1 设置 Applitools API 变量4.2 设置 Applitools Eyes …

javaScript交互补充

1、元素的三大系列 1.1、offset系列 1.1.1、offset初相识 使用offset系列相关属性可以动态的得到该元素的位置&#xff08;偏移&#xff09;、大小等 ●获得元素距离带有定位祖先元素的位置 ●获得元素自身的大小&#xff08;宽度高度&#xff09; ●注意&#xff1a;返回的…

【Linux】-学习笔记09

第六章、nfs网络文件系统 1.nfs网络文件系统简介 NFS(Network File system&#xff0c;网络文件系统)是由SUN公司研制的UNIX表示层协议&#xff0c;它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源&#xff0c;主要在unix系列操作系统上使用。…

【C++】LeetCode:LCR 078. 合并 K 个升序链表

题干&#xff1a; 给定一个链表数组&#xff0c;每个链表都已经按升序排列。 请将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 解法&#xff1a;优先队列 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *ne…

xvisor调试记录

Xvisor是一种开源hypervisor,旨在提供完整、轻量、移植且灵活的虚拟化解决方案,属于type-1类型的虚拟机,可以直接在裸机上启动。 启动xvisor步骤: 1、搭建riscv编译环境 首先从github上下载riscv-gnu-toolchain很费劲,建议直接从国内的源下载 git clone https://gitee…

minGW安装教程

一、下载 1.通过官网WinGW官网下载 http://www.mingw-w64.org 2.通过SourceForge网站下载MinGW https://sourceforge.net/projects/mingw/files/latest/download 二、安装 右键mingw-get-setup.exe&#xff0c;以管理员身份运行 点击Install安装 点击“Change”修改安装地…