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

操作系统 4.4-从生磁盘到文件

文件介绍

操作系统中对磁盘使用的第三层抽象——文件。这一层抽象建立在盘块(block)和文件(file)之间,使得用户可以以更直观和易于理解的方式与磁盘交互,而无需直接处理磁盘的物理细节如扇区(sector)、柱面(cylinder)和磁头(head)。

  1. 用户视角的文件

    • 在用户眼中,文件是字符序列或字符流的集合。用户通常通过文件名和路径来访问文件,而不是直接操作磁盘的物理地址。

  2. 磁盘上的文件

    • 在磁盘上,文件被存储为一系列的盘块集合。这些盘块在物理上可能不是连续的,但文件系统通过文件系统的索引结构(如inode或文件分配表)来跟踪这些盘块。

  3. 文件抽象

    • 文件抽象是操作系统提供的一种机制,它将用户对文件的操作转换为对盘块的操作。这种抽象隐藏了磁盘的物理细节,使得用户可以透明地读写文件。

  4. 字符流到盘块集合的映射

    • 操作系统负责建立字符流(即用户文件内容)和盘块集合之间的映射关系。这意味着用户写入文件的数据会被操作系统分割并存储到磁盘上的不同盘块中,而读取文件时,操作系统会重新组合这些盘块中的数据以重建原始的字符流。

  5. 文件系统的作用

    • 文件系统不仅管理文件和目录的层次结构,还管理文件数据到磁盘块的映射。它处理文件的创建、删除、读写等操作,并确保数据的一致性和完整性。

  6. 简化用户操作

    • 通过引入文件抽象,用户无需了解磁盘的物理结构和复杂的I/O操作,可以像操作本地文件一样简单地操作磁盘文件。

文件的建立

数组映射

映射的作用

  1. 文件与盘块的映射

    • 文件系统中,文件内容被映射到磁盘上的一系列盘块。这种映射关系由文件系统维护,对用户透明。

    • 图中显示了文件 test.c 的一部分内容(200-212字符)被映射到磁盘块789。

  2. 连续结构实现文件

    • 文件在磁盘上可能不是连续存储的,但文件系统通过映射信息将这些分散的盘块组织成一个逻辑上的连续文件。

  3. 读写操作

    • 用户对文件的读写操作(读入、修改、读出)通过文件系统转换为对相应盘块的操作。

  4. 处理文件修改

    • 当文件被修改时(如删除字符),文件系统需要更新映射信息,以反映新的文件内容和结构。

如何工作

具体来说,它描述了文件如何在磁盘上存储,以及操作系统如何通过文件控制块(FCB)来管理文件的存储位置。以下是图中内容的详细解释:

  1. 文件内容与FCB(File Control Block)

    • 图中显示了一个C语言文件test.c,其中包含一个main()函数。

    • 文件的FCB记录了文件名、起始块和块数等信息。例如,test.c的FCB显示文件名是test.c,起始块是6,块数是3。

  2. 文件内容的映射

    • 文件内容被映射到磁盘上的块中。图中显示了test.c文件中的一段内容(200-212字符)被映射到磁盘块789。

    • 这种映射是通过文件系统将文件内容分割成多个块,并在FCB中记录每个块的磁盘位置来实现的。

  3. 文件操作

    • 图中还展示了文件的读写操作。用户可以通过FCB找到文件的起始块和块数,然后进行读取、修改等操作。

    • 例如,图中显示了一个操作员正在删除test.c文件中的200-212字符。

优缺点

图中实现映射的方式将文件内容映射到一系列连续的盘块,类似于数组索引的方式。这种映射方式通常称为连续分配(contiguous allocation)或连续分配策略。以下是这种映射方式的优缺点:

优点
  1. 简单性

    • 映射方式简单直接,易于理解和实现。

  2. 访问速度

    • 由于文件数据存储在连续的盘块上,顺序访问速度很快

  3. 缓存效率

    • 连续存储的数据可以更好地利用缓存机制,提高整体性能。

  4. 无碎片

    • 不会产生外部碎片,因为文件占用的是连续的磁盘空间。

  5. 易于扩展

    • 文件扩展时只需分配额外的连续空间,操作简单。

缺点

  1. 灵活性差

    • 文件大小固定,不适合大小频繁变化的文件。

  2. 扩展困难

    • 如果需要扩展文件,可能需要重新分配一块连续空间并复制数据,效率低

  3. 碎片化问题

    • 删除文件后,可能会在磁盘上留下不连续的空闲空间,导致碎片化。

  4. 单点故障风险

    • 如果存储文件映射信息(如文件大小、起始块号等)损坏,可能导致整个文件不可访问。


链式映射

链式映射是一种文件存储结构,其中文件的每个块通过指针链接到下一个块

实现方式和工作原理

  1. 文件控制块(FCB)

    • 每个文件都有一个FCB,其中包含文件的基本信息,如文件名、起始块地址等。

    • 在链式结构中,FCB还包含指向文件第一个块的指针。

  2. 块链接

    • 文件的每个数据块都包含数据以及一个指向下一个数据块的指针。

    • 最后一个数据块的指针通常设置为NULL,表示链的结束。

  3. 访问文件

    • 操作系统通过FCB找到文件的第一个块,然后通过块间的指针顺序访问文件的所有块

    • 这种结构允许文件在存储时不必是连续的,从而更有效地利用磁盘空间。

优缺点:

优点:
  1. 文件长度增减容易

    • 由于文件块是通过指针链接的,添加或删除块只需要修改相关块的指针,不需要移动大量数据。

    • 这使得文件的动态扩展和收缩变得简单和高效。

  2. 空间利用率高

    • 文件块可以分布在磁盘的任何位置,这有助于减少磁盘空间的浪费,特别是在文件大小经常变化的情况下。

缺点:
  1. 顺序访问慢

    • 由于文件块可能分散在磁盘的不同位置,顺序访问文件时需要频繁地寻道和旋转延迟,这会降低访问速度。

    • 这种结构不适合需要频繁顺序访问的应用场景。

  2. 可靠性差

    • 如果某个块的指针损坏或丢失,可能会导致整个文件无法访问。

    • 需要额外的机制来维护数据的一致性和完整性。

  3. 管理开销大

    • 每个块都需要额外的指针空间,这增加了存储开销。

    • 操作系统需要更多的时间来管理这些指针和块。

索引映射

索引结构是文件系统中的一种文件存储方式,它结合了连续分配和链式分配的优点,以提高文件访问的效率和灵活性。以下是索引结构的实现方式、工作原理以及其优缺点:

实现方式和工作原理:

  1. 索引块(Index Block)

    • 索引结构使用一个或多个索引块来存储指向文件数据块的指针

    • 索引块可以是一级索引、二级索引或多级索引,具体取决于文件的大小和系统的实现。

  2. 一级索引

    • 在一级索引结构中,FCB包含一个索引块的地址,该索引块直接包含指向所有数据块的指针。

    • 这种方式适用于小型文件,因为索引块的大小有限。

  3. 二级或多级索引

    • 对于大型文件,可以使用二级或多级索引。在二级索引中,索引块包含指向其他索引块的指针,这些索引块再包含指向数据块的指针。

    • 这种方式可以支持更大的文件,但增加了查找数据块的复杂性。

  4. 访问文件

    • 操作系统通过FCB找到索引块,然后根据索引块中的指针找到数据块。

    • 这种方式允许文件块在磁盘上非连续存储,同时避免了链式结构中的指针跟踪开销。

优缺点:

优点:
  1. 灵活性高

    • 文件块可以在磁盘上非连续存储,提高了磁盘空间的利用率。

    • 文件大小可以动态变化,添加或删除数据块只需更新索引块。

  2. 访问速度快

    • 通过索引块直接访问数据块,减少了磁盘寻道和旋转延迟。

    • 适用于随机访问模式,因为可以直接定位到任何数据块。

  3. 支持大文件

    • 通过使用二级或多级索引,可以支持非常大的文件。


 


 

相关文章:

操作系统 4.4-从生磁盘到文件

文件介绍 操作系统中对磁盘使用的第三层抽象——文件。这一层抽象建立在盘块(block)和文件(file)之间,使得用户可以以更直观和易于理解的方式与磁盘交互,而无需直接处理磁盘的物理细节如扇区(se…...

第六章 进阶03 外包测试亮相

因为有年度重点项目,团队缺少测试资源,所以临时招聘了一个外包测试(后文用J代指),让产品经理亮亮来带她。 到今天J差不多入职有1个月时间了,亮亮组了个会,一起评审下J做的测试用例。 J展示了其…...

如何使用通义灵码完成PHP单元测试 - AI辅助开发教程

一、引言 在软件开发过程中,测试是至关重要的一环。然而,在传统开发中,测试常常被忽略或草草处理,很多时候并非开发人员故意为之,而是缺乏相应的测试思路和方法,不知道如何设计测试用例。随着 AI 技术的飞…...

使用 nano 文本编辑器修改 ~/.bashrc 文件与一些快捷键

目录 使用 nano 编辑器保存并关闭文件使用 sed 命令直接修改文件验证更改 如果你正在使用 nano 文本编辑器来修改 ~/.bashrc 文件,以下是保存并关闭文件的具体步骤: 使用 nano 编辑器保存并关闭文件 打开 ~/.bashrc 文件 在终端中运行以下命令&#xf…...

计算机组成原理——CPU与存储器连接例题

计算机组成原理——CPU与存储器连接例题 设CPU共有16根地址线和8根数据线,并用(MREQ) ̅作为访存控制信号(低电平有效),(WR) ̅作为读/写命令信号(高电平读,低电平写)。现有下列存储芯片&#…...

SQL 外键(Foreign Key)详细讲解

1. 什么是外键?​​ ​​定义​​:外键是数据库表中的一列(或一组列),用于​​建立两个表之间的关联关系​​。外键的值必须匹配另一个表的主键(Primary Key)或唯一约束(Unique Con…...

B3647 【模板】Floyd

题目链接&#xff1a;点击进入 题目 思路 代码 #include <bits/stdc.h> #define inf 0x3f3f3f3f using namespace std; const int maxn 1e6 10;int n,m,g[110][5000];int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>m;memse…...

配置镜像端口和观察接口

top&#xff1a; 在G0/0/2上抓包通过其他端口ping pc4 可以看到 Wireshark 抓包没有任何反应&#xff0c;做个镜像端口并配置&#xff08;观察接口和镜像接口&#xff09; observe-port interface g0/0/2 #命令配置观察端口mirror to observe-port both …...

爬虫解决debbugger之替换文件

鼠鼠上次做一个网站的时候&#xff0c;遇到的debbugger问题&#xff0c;是通过打断点然后编辑断点解决的&#xff0c;现在鼠鼠又学会了一个新的技能 首先需要大家下载一个reres的插件&#xff0c;这里最好用谷歌浏览器 先请大家看看案例国家水质自动综合监管平台 这里我们只…...

erlang的安装-linux

1&#xff1a;解压 tar -zxvf 安装包 2&#xff1a;进入解压的目录执行&#xff1a; ./configure --prefix/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac 3&#xff1a;编译安装&#xff1a; m…...

Android Coil 3默认P3色域图加载/显示不出来

Android Coil 3默认P3色域图加载/显示不出来 解决&#xff0c;需要在Androidmanifest.xml使用Coil 3的activity配置属性&#xff1a; <activityandroid:colorMode"wideColorGamut"...</activity>...

【LaTeX】安装

Register - Overleaf, 在线LaTeX编辑器 注册Overleaf 安装 Latex2022 安装教程&#xff08;附安装资源&#xff09;_tex2022安装教程-CSDN博客 注&#xff1a;先安装 texlive&#xff0c;再安装TexStudio \documentclass{article} % 这里是导言区 \begin{document}Hello, wor…...

【2025年认证杯数学中国数学建模网络挑战赛】A题 解题建模过程与模型代码(基于matlab)

目录 【2025年认证杯数学建模挑战赛】A题解题建模过程与模型代码&#xff08;基于matlab&#xff09;A题 小行星轨迹预测解题思路第一问模型与求解第二问模型与求解 【2025年认证杯数学建模挑战赛】A题 解题建模过程与模型代码&#xff08;基于matlab&#xff09; A题 小行星轨…...

【KWDB 创作者计划】KWDB 数据库全维度解析手册

——从原理到实践&#xff0c;构建下一代数据基础设施 ​第一章&#xff1a;KWDB 设计哲学与技术全景 1.1 为什么需要 KWDB&#xff1f; 在数据爆炸与业务场景碎片化的今天&#xff0c;传统数据库面临三大挑战&#xff1a;​扩展性瓶颈​&#xff08;单机性能天花板&#xff…...

低代码开发能否取代后端?深度剖析与展望-优雅草卓伊凡

低代码开发能否取代后端&#xff1f;深度剖析与展望-优雅草卓伊凡 在科技迅猛发展的当下&#xff0c;软件开发领域新思潮与新技术不断涌现&#xff0c;引发行业内外热烈探讨。近日&#xff0c;笔者收到这样一个颇具争议的问题&#xff1a;“低代码开发能取代后端吗&#xff1f…...

LeetCode hot 100—最长回文子串

题目 给你一个字符串 s&#xff0c;找到 s 中最长的 回文 子串。 示例 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xff1a;s "cb…...

蓝桥杯知识总结

文章目录 1.常用的数学方法2.大小写转换3.数组和集合排序数组排序集合排序 4.控制小数位数5.栈6.队列7.字符串相关方法8.十进制转n进制模板字符转为十进制某进制转化为十进制 9.前缀和10.差分11.离散化12.双指针13.二分14.枚举模板组合型枚举模板排列型枚举模板 15.搜索算法BFS…...

leetcode:2839. 判断通过操作能否让字符串相等 I(python3解法)

难度&#xff1a;简单 给你两个字符串 s1 和 s2 &#xff0c;两个字符串的长度都为 4 &#xff0c;且只包含 小写 英文字母。 你可以对两个字符串中的 任意一个 执行以下操作 任意 次&#xff1a; 选择两个下标 i 和 j 且满足 j - i 2 &#xff0c;然后 交换 这个字符串中两个…...

Python Lambda表达式详解

Python Lambda表达式详解 1. Lambda是什么&#xff1f; Lambda是Python中用于创建匿名函数&#xff08;没有名字的函数&#xff09;的关键字&#xff0c;核心特点是简洁。它适用于需要临时定义简单函数的场景&#xff0c;或直接作为参数传递给高阶函数&#xff08;如map()、f…...

Matlab 平衡车的建模与控制

1、内容简介 Matlab 189-平衡车的建模与控制 可以交流、咨询、答疑 2、内容说明 略 平衡车的建模与控制 选择一款平衡车&#xff08;如&#xff1a;小米九号平衡车等&#xff09;&#xff0c;并估计平衡车的关键参数。完成以下工作&#xff1a; 1. 建立平衡车模型&#xf…...

KWDB创作者计划—KWDB关系库与时序库混搭

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...

Android studio2024的第一个安卓项目

目录 一、创建项目 1、创建Empty Views Activity类型项目 2、Android项目结构解析 manifests 目录&#xff1a; Gradle Scripts目录 3、创建安卓应用 二、测试 1、模拟器测试效果 2、连接真机&#xff0c;然后直接选择真机运行即可&#xff08;点击Run或Shift F10运行…...

航电系统之障碍物监测技术篇

航电系统的障碍物监测技术是保障飞行安全、提升飞行效率的核心技术之一&#xff0c;尤其在复杂环境和低空飞行中发挥着关键作用。以下从技术原理、传感器类型、数据处理与应用等方面进行系统介绍&#xff1a; 一、技术原理 航电系统的障碍物监测技术通过多传感器融合和智能算法…...

网站DDoS防护方案——构建企业级安全屏障的关键路径

本文深度解析DDoS攻击最新演变趋势与防御技术体系&#xff0c;通过攻击特征图谱、云原生防护架构、混合防御模型等维度&#xff0c;揭示企业级网站防护方案的设计逻辑。结合2023年金融行业千万级QPS攻击事件&#xff0c;引用Gartner最新防御技术成熟度曲线&#xff0c;给出可落…...

Linux系统使用lshw生成硬件报告方法

使用 lshw 生成 HTML 硬件报告指南 一、工具简介 lshw(List Hardware)是 Linux 系统下用于检测并报告硬件详细信息的命令行工具,支持输出多种格式(文本、HTML、XML 等)。 核心功能: 显示 CPU、内存、磁盘、PCI/USB 设备等完整硬件信息生成结构化报告,便于存档或分析支…...

力扣 905 按奇偶排序数组:双指针法的优雅实现

目录 问题背景 题目解析 解题思路 暴力解法 双指针法 代码实现 代码解析 算法效率 实际应用场景 总结 问题背景 在编程的世界里&#xff0c;数组排序问题一直是经典中的经典。今天我们要解决的是一个有趣的变种&#xff1a;按奇偶排序数组。题目要求我们将一个整数数…...

LeetCode hot 100—子集

题目 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2…...

BERT - BertTokenizer, BertModel API模型微调

本节代码将展示如何在预训练的BERT模型基础上进行微调&#xff0c;以适应特定的下游任务。 ⭐学习建议直接看文章最后的需复现代码&#xff0c;不懂得地方再回看 微调是自然语言处理中常见的方法&#xff0c;通过在预训练模型的基础上添加额外的层&#xff0c;并在特定任务的…...

通过代码获取接口文档工具

通过代码获取接口文档工具 介绍使用到的技术使用说明核心源码演示截图工具源码 介绍 1.通过前后端代码来生成规格化的接口文档 2.支持拖拽上传或点击选择文件&#xff0c;可以一次选择多个文件或选择文件夹 3.用户选择前后端代码&#xff0c;工具调用GPT解析&#xff0c;得到规…...

不再卡顿!如何根据使用需求挑选合适的电脑内存?

电脑运行内存多大合适&#xff1f;在选购或升级电脑时&#xff0c;除了关注处理器的速度、硬盘的容量之外&#xff0c;内存&#xff08;RAM&#xff09;的大小也是决定电脑性能的一个重要因素。但究竟电脑运行内存多大才合适呢&#xff1f;这篇文章将帮助你理解不同使用场景下适…...

leetcode589 N叉树的前序遍历

前序遍历的顺序是&#xff1a;根节点 -> 子节点1 -> 子节点2 -> ... -> 子节点N 递归&#xff1a; class Solution { private:void traverse(Node* cur, vector<int>& res){if(cur NULL) return;res.push_back(cur->val);for(Node* child: cur->…...

游戏引擎学习第216天

回顾并为当天做准备 你可以看到&#xff0c;游戏现在正在运行。如果我没记错的话&#xff0c;我们之前把调试系统关闭了&#xff0c;留下一个状态&#xff0c;让任何想要在这段时间内进行实验的人可以自由操作&#xff0c;因为我们还没有完全完成这个系统。所以这样做是为了确…...

JavaSE反射机制干货

1.反射(Relection) 理解 定义&#xff1a;程序运行状态,动态地获取程序信息及调用程序功能即为java反射机制 2.获取class对象 掌握 2.1 Java代码的3个阶段 Java代码在计算机中经历的三个阶段:Source源代码阶段-Class类对象阶段-Runt…...

[特殊字符] 第十一讲 | 空间回归模型实战:SAR / SEM / GWR逐个击破

&#x1f4d8; 专栏&#xff1a;科研统计方法实战分享 | 地学/农学人的数据分析工具箱 ✍️ 作者&#xff1a;平常心0715 &#x1f511; 本讲关键词&#xff1a;空间滞后模型&#xff08;SAR&#xff09;、空间误差模型&#xff08;SEM&#xff09;、地理加权回归&#xff08;G…...

AI前沿周报:2025年3月技术深度解析

以下是基于2024-2025年AI技术前沿动态的深度技术周报示例&#xff0c;结合行业最新突破与研究进展&#xff0c;突出技术原理与应用场景分析&#xff1a; AI前沿周报&#xff1a;2025年3月技术深度解析 时间范围&#xff1a;2025年3月1日-3月31日 本期焦点&#xff1a;模型透明…...

aidigu开源微博项目程序,PHP开发的开源微博系统,自媒体个人创业、网盘推广首先

一、软件介绍 文末提供程序和源码下载学习 PHP开发的开源微博系统&#xff0c;采用PHP MySQL开发&#xff0c;框架采用ThinkPHP5.1&#xff0c;用户登录后拥有专属ID&#xff0c;支持表情、关注用户&#xff0c;网盘分享等功能&#xff0c;支持图片上传,视频上传,网盘存储分享…...

Tabnet介绍(Decision Manifolds)和PyTorch TabNet之TabNetRegressor

Tabnet介绍(Decision Manifolds)和PyTorch TabNet之TabNetRegressor Decision ManifoldsTabNet1.核心思想2. 架构组成3. 工作流程4. 优点PyTorch TabNetTabNetRegressor参数1. 模型相关参数`n_d``n_a``n_steps``gamma``cat_idxs``cat_dims``cat_emb_dim`2. 训练相关参数`opti…...

格瑞普Tattu正式成为2025年中国无人机竞速联赛官方赞助商!

格瑞普Tattu正式成为2025年中国无人机竞速联赛官方赞助商! 为飞手赋能&#xff0c;为赛事护航! Tattu是深圳市格瑞普电池有限公司(Grepow)旗下的子品牌之一&#xff0c;专注为无人机、FPV和模型爱好者提供专业可靠的电池和充电器等一站式电源解决方案。凭借卓越的放电性能、稳…...

PySide6 监测设备变更事件

在PySide6中监听系统事件&#xff0c;判断是否有串口设备插拔&#xff0c;进而当串口状态变更时&#xff0c;实现列表数据实时更新。 在Qt中&#xff0c;可以使用 nativeEvent 接口来完成这一操作&#xff1a; [virtual protected] bool QWidget::nativeEvent(const QByteArray…...

嵌入式系统的历史与发展​

目录 引言​ 一、嵌入式系统的早期萌芽​ 1、首个现代嵌入式系统 2、早期未成形嵌入式系统的应用 二、以单片机为主的初级阶段​ 1、工业领域应用 2、大型家电领域应用 三、处理器升级与多样化应用阶段​ 1、数字化电子化设备涌现 &#xff08;1&#xff09;智能仪表…...

mysql调试记录

ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY password; 该命令在调试python使用pymysql连接数据库出现错误时&#xff0c; 报错为pymysql.err.OperationalError: (1045, "Access denied for user rootlocalhost (using password: NO)") m…...

【后端开发】Spring MVC阶段总结

文章目录 快捷引入依赖lombok的使用Lombok依赖Lombok使用Lombok注解 三层架构分层的目的MVC与分层的区别三层架构分层的好处 企业命名规范常见命名命名风格介绍大驼峰风格小驼峰风格包名 常见注解Cookie与Session 快捷引入依赖 这个方法可以快捷引入依赖&#xff0c;但是引入依…...

netty-socketio + springboot 消息推送服务

netty-socketio springboot 消息推送服务 后端1. 目录结构&#xff1a;代码pom文件&#xff1a;application.yml&#xff1a;SocketIOConfig&#xff1a;PushMessage&#xff1a;ISocketIOServiceSocketIOServiceImpl&#xff1a;pushMessageController&#xff1a;启动类&…...

基于 JavaWeb 的 SSM 在线视频教育系统设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

同时打开多个Microchip MPLAB X IDE

0.引用 Microchip 32位MCU CAN驱动图文教程-附源码 - 哔哩哔哩 https://bbs.21ic.com/icview-3391426-1-1.html https://bbs.21ic.com/icview-3393632-1-1.html 1.前言 工作中接触到使用Microchip 的 MPLAB X IDE 开发工具&#xff0c;使用的MCU是Microchip SAMD21J18A MCU…...

dify 500错误

问题 升级到1.2.0 后所有页面接口均报错500, 环境&#xff1a; docker 本地部署 version:1.2.0 解决办法 1.首先关闭服务 docker compose down2.找到docker-compose.yaml里的plugin_daemon&#xff0c;参照下面修改参数 plugin_daemon:environment:PLUGIN_MAX_EXECUTION…...

WPF设计标准学习记录26

画刷名称功能说明SolidColorBrush使用单一的连续颜色填充区域LinearGradientBrush使用线性渐变绘制区域。RadialGradientBrush使用径向渐变绘制区域。 焦点定义渐变的开始,而圆定义渐变的终点。ImageBrush使用图像绘制区域。VisualBrush使用一个视图绘制区域。BitmapCacheBrus…...

cin,cin.get(),getchar(),getline(),cin.get line()异同点

文章目录 1.cin2.cin.get()3.getchar()4.cin.getline()5.getline() 1.cin &#xff08;1&#xff09;cin>>等价于cin.operator>>()&#xff0c;即调用成员函数operator>>()进行读取数据。 &#xff08;2&#xff09;当cin>>从缓冲区中读取数据时&…...

7# 5多线-7 不会停

7# 5多线-7 不会停 分析&#xff0c;明显线接错了&#xff0c;打自动时也能手动启停&#xff0c;打手动无法启停&#xff0c;这时远程只能启ka3,无法启ka4。排查手自转换2上没接线&#xff0c;接到8上了&#xff08;13和12接错了&#xff0c;也就是sac的5和6接错了&#xff09;…...

基于混合编码器和边缘引导的拉普拉斯金字塔网络用于遥感变化检测

Laplacian Pyramid Network With HybridEncoder and Edge Guidance for RemoteSensing Change Detection 0、摘要 遥感变化检测&#xff08;CD&#xff09;是观测和分析动态土地覆盖变化的一项关键任务。许多基于深度学习的CD方法表现出强大的性能&#xff0c;但它们的有效性…...