计算机操作系统处理机调度(1)
系列文章目录
第三章:处理机调度与死锁
文章目录
- 系列文章目录
- 前言
- 一、作业和资源:
- 二、处理机调度的层次:
- 1.高级调度
- 2.初级调度
- 3.中级调度
- 三、作业调度算法举例:
- 总结
前言
在多道程序的环境下,内存中存在着多个进程,其数目往往多于处理机数目。(我们就以单核的CPU为例子,所以运行中的进程最多只能有一个,最少为0个)这就要求那个系统能够按照某种算法,动态地将处理机分配给处于就绪状态的一个进程,使之执行。分配处理机的任务是由处理机调度程序完成的。对于大型系统运行时的性能,如系统吞吐量,资源利用率,作业周转时间或响应的及时性等,在很大程度上都取决于处理机调度性能的好坏。因而,处理机调度便成为OS中至关重要的部分。所以下面我们将讲讲处理机调度是如何进行调度的,我将用通俗易懂的话带领大家走进CPU的世界。
在多道程序系统中,调度的实质是一种资源的分配,处理机调度是对处理机资源进行分配。处理机调度算法是根据处理及分配策略所规定的处理机分配算法。在多道批处理系统中,一个作业从提交到获得处理机执行,直至作业运行完毕,可能需要经历多级处理机调度,下面我们先来了解处理机调度的层次。
在此之前我想给大家补充点知识点:
一、作业和资源:
作业 :是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。
通俗易懂点来讲就是:
是用户在一次计算过程中,要求计算机系统所做工作的集合,包括程序、数据以及作业说明书等。例如,用户提交一个编译程序的任务,从源程序输入到编译出目标程序,这整个过程就是一个作业。
资源 :是操作系统管理的各种硬件和软件要素,如 CPU、内存、外存、设备(打印机、磁盘等)、文件系统、网络连接等,是作业运行的物质基础。
管理方式
- 作业:操作系统通过作业调度来管理作业,根据一定的调度算法,将作业从后备状态调入内存执行,在作业运行结束后进行善后处理。
- 资源:对于不同类型的资源,操作系统有不同的管理策略。如对于 CPU,采用进程调度算法分配时间片;对于内存,通过内存分配算法为进程分配空间;对于设备,采用设备分配算法来决定哪个进程可以使用设备。
-
作用与生命周期
- 作业:是用户为完成特定任务而提交给系统的工作单元,其目的是让计算机完成用户指定的任务,作业从提交到完成是一个完整的生命周期。
- 资源:是为作业的运行提供支持和保障的,资源可以被多个作业共享和复用,其生命周期通常与操作系统的运行周期相关,只要操作系统在运行,资源就处于可被分配和使用的状态。
二、处理机调度的层次:
1.高级调度:
高级调度又称长程调度或作业调度,它的调度对象是作业(程序+数据+作业说明书)。其主要功能是根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程,分配必要的资源,并将它们放入就绪队列。高级调度主要用于多道批处理系统中,而在分时和实时系统中不设置高级调度。
2.低级调度:
低级调度又称为进程调度或短程调度,其所调度的对象是进程(或内核级线程)。其主要功能是,根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序的将处理机分配给被选中的进程。进程调度是最基本的一种调度,在多道批处理,分时和实时三种类型的OS中,都必须配置这级调度。
3. 中级调度:
中级调度又称为内存调度。引入中级调度的主要目的是,提高内存利用率和系统吞吐量。为此,应把那些暂时不能运行的进程,调至外存等待,此时进程的状态称为就绪驻外存状态(或挂起状态)。当他们已具备运行条件且内存又稍有空闲的时候,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程再重新调入内存,并修改状态为就绪状态,挂在就绪队列上等待。中级调度实际上就是存储器管理中的对换功能,这个我们以后再说。
三、作业调度算法举例:
今天先给大家开个头,给大家讲讲我认为最应该注意细节的一个调度算法,因为我当时也是想了很长时间才明白
高相应比优先调度算法:
这种算法比较合理,既考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。
这里面其实有的点我认为是很重要的
高相应比优先算法是如何实现的呢?如果我们能为每个作业引入一个动态的优先级,即优先级是可以改变的,令它随等待时间延长而增加,这将使得长作业的优先级在等待期间不断增加,等到足够的时间后,必然有机会获得处理机,该优先级的变化规律可描述为:
优先级 = (等待时间+要求服务时间)/要求服务时间
由于等待时间与服务时间之和就是系统对该作业的响应时间,故该优先级又相当于响应比Rp,据此,优先又可表示为:
Rp = (等待时间+要求服务时间)/要求服务时间 = 响应时间/要求服务时间
这里还有一点可以符合的是 先来的等待时间长,谁先运行(FCFS);
我们举个简单的例子:
作业 | 提交时间 | 运行时间 | 开始时间 | 完成时间 |
---|---|---|---|---|
A | 0 | 3 | 0 | 3 |
B | 2 | 6 | 3 | 9 |
C | 4 | 4 | 9 | 13 |
在调度过程中,完成时间 ≠ 提交时间 + 运行时间,因为作业需要等待调度。完成时间实际上是开始时间 + 运行时间,而开始时间可能远晚于提交时间(由于等待)。
完成时间的真正含义
-
公式:
完成时间=开始执行时间+运行时间- 开始执行时间:作业真正获得CPU开始运行的时间(可能因等待而延迟)。
- 运行时间:作业需要的CPU时间(固定不变)。
-
与提交时间的关系:
- 如果作业无需等待(立即执行),则:完成时间=提交时间+运行时间
- 如果作业需要等待,则:完成时间=提交时间+等待时间+运行时间
-
作业 A:
- 提交后立即执行(无等待),完成时间 = 0 + 3 = 3。
- 提交时间 + 运行时间 = 0 + 3 = 3,等于完成时间(无需等待的特殊情况)。
-
作业 B:
- 提交时间 2,但直到时间 3 才开始执行(等待了 1 单位时间)。
- 完成时间 = 开始时间 3 + 运行时间 6 = 9。
- 提交时间 + 运行时间 = 2 + 6 = 8,但实际完成时间是 9(因等待了 1 单位时间)。
-
作业 C:
- 提交时间 4,直到时间 9 才开始执行(等待了 5 单位时间)。
- 完成时间 = 开始时间 9 + 运行时间 4 = 13。
- 提交时间 + 运行时间 = 4 + 4 = 8,但实际完成时间是 13(等待了 5 单位时间)。
响应比的分子与周转时间的关系
-
响应比的分子:
响应比=1+运行时间当前等待时间- 当前等待时间:调度时刻的等待时间(从提交到调度时刻的时间)。
- 注意:这是作业在调度决策时的等待时间,而非总等待时间。
-
周转时间的分子:
周转时间=完成时间−提交时间=运行时间+总等待时间- 总等待时间:从提交到开始执行的时间(即最终确定的等待时间)。
例子中的具体数值
-
作业 B 的响应比(时间 3 时调度):
- 当前等待时间 = 3(调度时间) - 2(提交时间) = 1。
- 响应比 = 1 + 1/6 ≈ 1.17。
-
作业 B 的周转时间:
- 完成时间 9 - 提交时间 2 = 7。
- 总等待时间 = 7(周转时间) - 6(运行时间) = 1。
- 与响应比的分子一致:这里的总等待时间(1)等于调度时的当前等待时间(1)。
-
作业 C 的响应比(时间 9 时调度):
- 当前等待时间 = 9(调度时间) - 4(提交时间) = 5。
- 响应比 = 1 + 5/4 = 2.25。
-
作业 C 的周转时间:
- 完成时间 13 - 提交时间 4 = 9。
- 总等待时间 = 9(周转时间) - 4(运行时间) = 5。
- 与响应比的分子一致:总等待时间(5)等于调度时的当前等待时间(5)。
为什么看起来“提交时间+运行时间=完成时间”?
- 特殊情况:当作业无需等待时(如作业 A),完成时间确实等于提交时间 + 运行时间。
- 一般情况:作业需要等待调度,因此完成时间 = 提交时间 + 运行时间 + 等待时间。
关键结论
- 完成时间 ≠ 提交时间 + 运行时间(除非作业无需等待)。
- 响应比的分子是调度时刻的等待时间(部分等待时间)。
- 周转时间的分子是总等待时间(最终确定的全部等待时间)。
- 在调度完成的瞬间,响应比中的等待时间会等于总等待时间(如作业 B 和 C),因此两者数值最终一致。
总结
以上就是今天要讲的内容,本文我补充了作业和资源的定义和作用,又给大家讲了一下处理机的调度层次,然后又给大家补充了一个我最感觉有点容易犯错的调度算法,接下来我会继续更新处理机调度的,从3月25号后我要开始给大家讲蓝桥杯的枚举和模拟的题了,谢谢大家,我会持续更新的。
相关文章:
计算机操作系统处理机调度(1)
系列文章目录 第三章:处理机调度与死锁 文章目录 系列文章目录前言一、作业和资源:二、处理机调度的层次: 1.高级调度2.初级调度3.中级调度 三、作业调度算法举例:总结 前言 在多道程序的环境下,内存中存在着多个进…...
ctfshow REVERSE re2 萌新赛 内部赛 七夕杯 WP
目录 re2 萌新赛 flag白给 签退 数学不及格 内部赛 批量生产的伪劣产品 来一个派森 好好学习 天天向上 屏幕裂开了 七夕杯 逆向签到 easy_magic re2 ida分析主函数,将flag.txt内容加密写入enflag.txt 这是密钥加密过程 标准rc4加密 简单异或解…...
云服务器怎么设置端口禁用呢?
在云服务器上禁用特定端口是提升安全性的重要措施,可通过云平台安全组和服务器本地防火墙双重配置实现。以下是详细操作指南: 一、通过云平台安全组禁用端口(优先推荐) 1. 莱卡云/腾讯云/华为云等操作步骤 登录云控制台 进入ECS实…...
V8引擎源码编译踩坑实录
背景 为了解决 view8 代码没有指定版本的 v8 引擎问题GitHub - suleram/View8: View8 - Decompiles serialized V8 objects back into high-level readable code. 但是打出来了exe文件也没啥用,不清楚这个view8是解决啥逆向用的,如果想逆向electron的j…...
享元模式(Flyweight Pattern)
享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享技术来高效地支持大量细粒度对象的复用。 一、基础 1 意图 运用共享技术有效地支持大量细粒度的对象 减少内存中对象的数量,节省系统资源 2 适用场景 一个应用程序使用了大量对象 由于对象数量庞大造成很大的…...
RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”与“陷阱”
嘿,亲爱的算法工程师们!今天咱们聊一聊PDF解析的那些事儿,简直就像是在玩一场“信息捉迷藏”游戏!PDF文档就像是个调皮的小精灵,表面上看起来规规矩矩,但当你想要从它那里提取信息时,它就开始跟…...
搭建小程序该如何选择服务器?
当企业选择开发属于自己的小程序,则需要服务器的支持,服务器可以帮助加速小程序的上线速度,影响小程序后面的运行是否流畅,同时还会影响用户访问网站时的速度,所以,企业在搭建小程序时该如何选择合适的服务…...
【腾讯云架构师技术沙龙2025.03.22】
大模型技术演进与行业影响分析 日期:2025年3月22日 主讲人:李建忠 《DeepSeek实战驱动行业智变—AI应用寒武纪》 整理:飞书语音转化DeepSeek分析汇总 一、技术演进:从快思考到慢思考 1. 早期争议与能力局限(2022-202…...
【jvm】垃圾回收的并行和并发
目录 1. 说明2. 并行(Parallel)2.1 定义2.2 特点2.3 示例 3. 并发(Concurrent)3.1 定义3.2 特点3.3 示例 4. 并行与并发的比较 1. 说明 1.在JVM(Java虚拟机)的垃圾回收机制中,并行(…...
Flowable基础表结构
工作流程的相关操作都是操作存储在对应的表结构中,为了能更好的弄清楚Flowable的实现原理和细节,我们有必要先弄清楚Flowable的相关表结构及其作用。在Flowable中的表结构在初始化的时候会创建相关表结构,具体如下: ACT_EVT&…...
为什么不同的损失函数可以提升模型性能?
不同的损失函数可以提升模型性能的原因在于,损失函数是模型优化的核心目标,它直接定义了模型在训练过程中需要最小化的误差或偏差。通过设计不同的损失函数,可以针对具体任务的特点、数据分布的特性以及模型的目标需求进行更精确的优化&#…...
git上传文件到远程库
1.git init 把这个目录变成git可以管理的仓库 2.git status查看文件追踪的情况(工作区的文件是红色) 3.git add . 添加工作区所有文件到暂存区 再git status(此时文件都变成绿色) 4.git commit -m 描述性文字 5.git push -u o…...
【产品小白】需求分析的进阶
在产品经理的职业发展中,需求分析能力的提升至关重要。普通和进阶在需求分析层面,往往存在从表面需求到本质问题的认知差异。以下从几个方面探讨这一进阶过程: 1. 需求理解的深度 普通:通常停留在用户表达的显性需求层面&#…...
机试题汇总
万能头文件 #include<bits/stdc.h> 输入一个年份和月份,输出该月的天数 1.3.5.7.8.10.12 -- 31天 闰年判断: year % 400 0 || (year % 4 0 && year % 100 ! 0) 输入字符串,反转输出 #include<iostream&g…...
软件公司高新技术企业代办:机遇与陷阱并存-优雅草卓伊凡
软件公司高新技术企业代办:机遇与陷阱并存-优雅草卓伊凡 在科技飞速发展的当下,软件公司如雨后春笋般涌现,众多企业渴望通过申请高新技术企业来获得政策支持与发展助力。随之而来的,是高新技术企业代办业务的兴起。然而ÿ…...
C#中3维向量的实现
c#中默认不带库三维向量,需要自己安装第三方库,或者可以手动实现一个简易的三维向量。 public struct Vector3D {public double X { get; set; }public double Y { get; set; }public double Z { get; set; }public Vector3D(double x, double y, doubl…...
使用腾龙边缘计算网关内置的AIoTedge+NodeRED接入西门子PLC
腾龙边缘计算网关一体机凭借其强大的性能和丰富的功能,为企业提供了一种高效、灵活的解决方案。本文将详细介绍如何使用腾龙边缘计算网关一体机内置的AIoTedgeNodeRED接入西门子PLC,实现数据的采集、处理与传输。 一、硬件准备与环境搭建 在开始之前&am…...
基于MLA的人类语音情感分类
《DeepSeek大模型高性能核心技术与多模态融合开发(人工智能技术丛书)》(王晓华)【摘要 书评 试读】- 京东图书 随着信息技术的不断发展,如何让机器识别人类情绪,这个问题受到了学术界和工业界的广泛关注。目前,情绪识…...
Codeforces Round 1012 (Div. 2)
AB略 C 没看懂题意,翻译的问题。t0代表这个人必须找一个没有人的桌子且座位离他最近,t1代表这个人只要找一个空座位就可以了。一个桌子四个座位,t0肯定会坐左下角的那个。首先建立两个小根堆q1代表左下角的座位,q2代表一个桌子的…...
FPGA时钟约束
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、Create_clock 前言 时钟周期约束,就是对时钟进行约束。 一、Create_clock create_clock -name <name> -period <period> -waveform …...
二分查找------练习3
1. 题目 2. 思路和题解 这道题看到这个复杂度,就想到应该是使用二分查找进行求解。为了使二分查找的次数尽可能的少,我们需要对较短的数组进行查找,假设就在nums1上进行操作,因此在开始时,要对两个数组的长度进行一个…...
拆解美团2024年报,业务协同、生态共赢、科技创新
从早期的千团大战开始,到后来外卖和社区团购们的激烈角逐,再到现在即时零售战场的群雄争霸,本地生活的硝烟从来都没有真正消散过。 作为本地生活服务领域的“领头羊”——美团,也一直都是其他平台们的挑战目标,几乎所…...
EMS小车技术特点与优势:高效灵活的自动化输送解决方案
北成新控伺服技术丨EMS小车调试视频 EMS小车是一种基于单轨运行的电动输送系统,通过电力驱动实现物料的高效搬运和输送,具有高效灵活、节能环保、多功能集成、行业适配性强等特性,广泛应用于汽车制造、工程机械、家电生产、仓储物流等行业自动…...
GESP2025年3月认证解析
GESP一级 一、单选题 答案:D 解析:DeepSeek 是字节跳动公司开发的人工智能,它具备生成文本的能力,所以可以根据《哪吒 2》的场景生成剧情脚本。A 选项中《哪吒 2》是贺岁片,并非新型操作系统;B 选项 Deep…...
尝试在软考62天前开始成为软件设计师-信息系统安全
安全属性 保密性:最小授权原则(能干活的最小权限)、防暴露(隐藏)、信息加密、物理保密完整性(防篡改):安全协议、校验码、密码校验、数字签名、公证 可用性:综合保障( IP过滤、业务流控制、路由选择控制、审计跟踪)不可抵赖性:数字签名 对称加密 DES :替换移位 3重DESAESR…...
Dify - 架构、部署、扩展与二次开发指南
本文详细解析 Dify 的架构、部署流程、高可用中间件的独立部署方法,以及二次开发流程,帮助开发者更高效地管理和扩展 Dify。 1. 本地DEMO部署 安装Docker,执行下面脚本,可能需要配置镜像。 git clone https://github.com/langge…...
用DrissionPage升级网易云音乐爬虫:更稳定高效地获取歌单音乐(附原码)
一、传统爬虫的痛点分析 原代码使用requests re的方案存在以下局限性: 动态内容缺失:无法获取JavaScript渲染后的页面内容 维护成本高:网页结构变化需频繁调整正则表达式 反爬易触发:简单请求头伪造容易被识别 资源消耗大&am…...
详细Linux中级知识(不断完善)
Nginx服务配置 基于主机名配置 映射IP和主机名 [rootlocalhost ~]# vim /etc/hosts 192.168.72.135 www.chengke.com chengke[rootlocalhost ~]# echo "192.168.72.135 www.xx.com" >> /etc/hosts以上是两种方法,前面是你的IP地址,后…...
Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术
Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术 在深度学习的精密机械中,有些细微的调整机制往往被视为理所当然,却实际上蕴含着深刻的数学洞察和巧妙的工程智慧。今天,我们将探讨两个看似独立却本质相通的机制ÿ…...
python打包辅助工具
python打包辅助工具 PyInstaller 是一个非常流行的 Python 应用程序打包工具,它可以将 Python 脚本及其依赖项打包成独立的可执行文件,方便在没有 Python 环境的机器上运行。关于PyInstaller,可参见:https://blog.csdn.net/cnds1…...
jangow靶机攻略
配置网卡 VMware需要配置,不配置扫不到ip,VirtualBox正常打开ip会直接显示出来 网卡配置都改成NAT 打开虚拟机,第一个框选第二行,回车 选第二个,按e键 进入下一个框后,将ro 后面的修改为 rw signin init/bin/bash 按…...
【大模型LLM第十四篇】Agent学习之anthropic-quickstarts Agent
前言 对于anthropic api的快速使用,在github上有几个example Customer Support Agent:由 Claude 提供支持的客户支持代理。该项目演示了如何利用 Claude 的自然语言理解和生成功能来创建可访问知识库的 AI 辅助客户支持系统。Financial Data Analyst &…...
MonIo部署
1、命令行安装 访问monio官网下载应用程序 # wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250228095516.0.0-1.x86_64.rpm -O minio.rpm # sudo dnf install minio.rpm # mkdir ~/minio # minio server ~/minio --console-address :90012、dock…...
深入理解智能家居领域中RS485、Modbus、KNX 和 Zigbee协议概念
首先详细介绍一下 RS485 和 Modbus 这两个在工业自动化和数据通讯领域中非常重要的概念。 RS485 1. 定义与特点 RS485 标准:RS485 是一种串行通信标准,也称为TIA-485标准,主要用于数据传输。它规定了物理层的电气特性,与数据格式…...
Spring Boot深度解析:从核心原理到最佳实践
一、Spring Boot概述 Spring Boot作为Spring生态中的"游戏规则改变者",自2014年发布以来彻底改变了Java企业级应用的开发方式。它通过四大核心特性显著提升了开发效率: 自动配置:基于类路径和已有Bean的智能默认配置起步依赖:简化Maven/Gradle依赖管理的Starter…...
MapReduce过程中reduce task的数量是如何确定的?
在Hadoop MapReduce及Hive中,numReduceTasks(Reduce任务数量)的确定由用户显式设置、框架自动估算、作业特性约束三方面共同决定。以下是详细解析及示例: 1. 用户显式设置 用户可以通过代码或配置参数直接指定Reduce任务数&#…...
【euclid】21 3D包围盒模块(box3d.rs)
box3d.rs文件定义了一个三维轴对齐的矩形框(Box3D),使用最小和最大坐标来表示。矩形框在坐标类型(T)和单位(U)上是泛型的。代码提供了多种方法来操作和查询矩形框,包括求交集、并集、…...
用selenium+ChromeDriver豆瓣电影 肖申克的救赎 短评爬取(pycharm 爬虫)
一、豆瓣电影 肖申克的救赎 短评url=https://movie.douban.com/subject/1292052/comments 二、基本知识点讲解 1. Selenium 的基本使用 Selenium 是一个用于自动化浏览器操作的库,常用于网页测试和爬虫。代码中使用了以下 Selenium 的核心功能: webdriver.Chrome: 启动 Chr…...
mysql入门操作
目录 一,MySQL简述 1,什么是MySQL 2,什么是SQL 3,SQL的分类 二,数据库的数据存储类型 1,数值类型 2,字符串类型 3,时间和日期类型 三,数据库的基本操作 1&…...
机械臂【逆运动学】
回顾正运动学fk: IK: 几何法 代数法 六轴 456轴交再同一点 有解析解 下列公式为正运动学部分结论 a和d是长度 ,theta和alfa是角度 **疑问:alfa00? Z轴互相平行 ** 已知末端要在空间XYZ处如下 绿色项&#x…...
思库拉水厂开业庆典千人大会回顾
近日,思库拉离子水厂在广州隆重举办了开业盛典,现场汇聚了逾千名嘉宾。此次盛会不仅是对思库拉离子水厂正式投产的庆祝,更是对思库拉品牌未来蓝图的一次展示。 现场氛围热烈,洋溢着浓厚的喜庆气息。参与者来自五湖四海,既有思库拉的忠实拥趸,也有对思库拉产品充满兴趣的潜在消费…...
将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息
将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息,是一种常见的物联网(IoT)应用场景。这种设计可以实现远程监控和设备的OTA(Over-The-Air)升级功能。以下是详细的实现步骤和技术细节: 一、系统架构概…...
Netty源码—5.Pipeline和Handler一
大纲 1.Pipeline和Handler的作用和构成 2.ChannelHandler的分类 3.几个特殊的ChannelHandler 4.ChannelHandler的生命周期 5.ChannelPipeline的事件处理 6.关于ChannelPipeline的问题整理 7.ChannelPipeline主要包括三部分内容 8.ChannelPipeline的初始化 9.ChannelPi…...
Vue 中的nextTick函数的原理、作用及使用场景。
大白话Vue 中的nextTick函数的原理、作用及使用场景 在 Vue 里,nextTick 函数是个超实用的工具,它能让你在 DOM 更新完成之后再执行代码。为了能更好地理解 nextTick 函数的原理,咱们就来深入剖析一下。 核心思路 Vue 里的数据更新是异步执…...
详细讲解css的穿透方法
样式穿透(CSS穿透)的几种方法,包括在Vue中使用::v-deep、>>>、/deep/,还有pointer-events属性。还有关于Shadow DOM和::part伪元素的内容。接下来我会把这些方法分类,并详细说明每种方法的适用场景和注意事项…...
深入理解 tree 命令行工具:目录结构可视化的利器
文章目录 前言1. 什么是 tree 命令?安装 tree 2. tree 的基本用法显示当前目录的树状结构显示指定目录的树状结构 3. tree 的常用选项3.1 显示隐藏文件3.2 排除特定目录或文件3.3 限制递归深度3.4 显示文件大小3.5 显示文件的权限信息3.6 将输出保存到文件 4. 实际应…...
【QA】QT中事件和信号的区别以及联系是什么?
在 Qt 中,事件(Event) 和 信号与槽(Signals & Slots) 是 GUI 编程的核心机制,它们既有联系又有本质区别。以下从底层原理、触发流程、代码实现、适用场景四个维度展开对比,并通过大量示例说…...
C++实用函数:find与find_if
本篇来介绍C++中find和find_if函数的使用,通过多个实例来演示。 find用于基础的查找功能,find_if可以实现更复杂的匹配查找条件。 1 find 1.1 函数原型 template <class InputIterator, class T> InputIterator find ( InputIterator first, InputIterator last, c…...
全面了解 Cookies、Session 和 Token
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
酷淘商场项目【从零到一详解】Web端
✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…...