自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 函数对象、仿函数、谓词的区别与联系

函数对象是总称,仿函数是其中的一种实现方式,谓词是返回bool的特殊仿函数。在实际使用中,这些概念经常交叉重叠,理解它们的核心特征比严格分类更重要。

2026-01-06 17:54:26 287

原创 基于CF799B T-shirt buying的优先队列学习笔记

快速获取最值:O(1)时间获取最大/最小元素高效插入删除:O(log n)时间插入或删除最值不支持随机访问:只能访问顶部元素通过CF799B这道题,我们深入学习了优先队列的应用。优先队列是解决"动态获取最值"类问题的高效数据结构,特别适合处理需要频繁获取最小或最大元素的场景。掌握优先队列的使用,对于解决算法竞赛中的许多问题至关重要。理解优先队列的比较函数语义学会根据问题需求选择合适的堆类型(最大堆/最小堆)掌握延迟删除等高级技巧处理复杂情况。

2026-01-06 15:37:43 876

原创 2025.9 GESP三级 日历制作

小 A 想制作 2025 年每个月的日历。他希望你能编写一个程序,按照格式输出给定月份的日历。具体来说,第一行需要输出,分别表示星期一到星期日。接下来若干行中依次输出这个月所包含的日期,日期的个位需要和对应星期几的缩写最后一个字母对齐。例如,2025 年 9 月 1 日是星期一,在输出九月的日历时,1 号的个位 1 就需要与星期一MON的最后一个字母N对齐。你能帮助小 A 完成日历的制作吗?

2025-11-20 22:01:58 630

原创 queue和deque的区别详解

QueueDeque核心思想限制性的 FIFO 数据结构灵活性高的双端数据结构功能少而精,只为队列服务多而全,兼具队列和向量的一些特性访问受限(只能访问两端)灵活(可随机访问)选择当你需要严格遵循 FIFO 规则时当你需要从序列两端频繁操作,或者需要随机访问时简单记忆:queue是deque的一种功能受限的特例。deque能做的事情比queue多得多。

2025-10-30 20:09:15 700

原创 论洛谷 “B4030 [语言月赛 202409] 距离” 的题意与弱测试数据

本文分析了关于同学间好感度动态变化的问题。题目要求实时跟踪n个同学间的好感度变化,并在每次事件后输出当前最大好感度。作者提供了两种AC代码实现,并指出原测试数据存在漏洞:未严格检查好感度为自然数(非负)和排除自身好感度的情况。通过修改后的代码(确保好感度不低于0且忽略对角线元素)仍能AC,作者质疑测试点的严谨性,并提供了20个针对性测试数据来验证代码的鲁棒性。文章展示了从问题分析到代码实现再到测试验证的完整过程。

2025-07-22 14:06:39 369

原创 MB/s ?Mbit/s ? Mbps ?MiB/s ?

最近用yt-dlp下载视频的时候经常看到使用的是 MiB/s 这个单位,所以查了查资料,理清了四个概念。这四个概念非常容易混淆,尤其是在讨论网络速度、下载速度、文件传输速度的时候。

2025-07-22 14:06:10 4360

原创 P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

【代码】P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here。

2025-06-07 18:06:55 149

原创 黑马程序员 MySQL数据库入门到精通 事务操作练习代码

该文章摘要展示了MySQL数据库事务操作的完整流程。首先创建账户表并插入测试数据,然后演示了转账事务的实现:1)查询账户余额;2)执行转账更新操作;3)提交或回滚事务。同时介绍了事务的自动提交设置方法,以及不同隔离级别的查看和修改方式。内容涵盖了事务的基本操作、控制语句和隔离级别设置,为理解MySQL事务处理提供了实践示例。

2025-05-28 18:52:00 179

原创 黑马程序员 MySQL数据库入门到精通 多表查询练习代码

这篇SQL案例展示了多种多表查询操作。首先创建薪资等级表并插入数据,然后演示了12种查询场景:包括基本内连接查询、年龄过滤、部门统计、外连接处理未分配部门员工、工资等级匹配、部门平均工资计算、子查询比较工资(如高于特定员工或部门平均)、统计部门员工人数,以及学生选课情况查询。案例涵盖了显式/隐式内连接、左外连接、子查询、聚合函数等常用SQL技术,体现了实际业务中处理多表关联数据的典型方法。

2025-05-24 22:01:49 209

原创 黑马程序员 MySQL数据库入门到精通 多表查询代码

【代码】黑马程序员 MySQL数据库入门到精通 多表查询代码。

2025-05-21 12:40:33 160

原创 黑马程序员 MySQL数据库入门到精通 约束案例代码

本文演示了数据库表的创建、数据插入以及约束的应用。首先,创建了一个用户表user,包含主键、唯一性约束、年龄范围检查、默认值等约束,并插入了一些数据,验证了约束的有效性。接着,创建了部门表dept和员工表emp,并插入相关数据。随后,通过ALTER TABLE语句为emp表添加了外键约束,关联dept表的id字段,并演示了外键的删除和更新行为,包括CASCADE和SET NULL两种方式。这些操作展示了数据库表设计中的约束机制及其应用场景。

2025-05-16 21:40:57 174

原创 黑马程序员 MySQL数据库入门到精通 函数案例代码

【代码】黑马程序员 MySQL数据库入门到精通 函数案例代码。

2025-05-15 19:10:32 162

原创 黑马程序员 MySQL数据库入门到精通 DCL案例代码

【代码】黑马程序员 MySQL数据库入门到精通 DCL案例代码。

2025-05-11 19:40:27 162

原创 MYSQL实验(1)

【代码】MYSQL实验(1)

2025-05-08 14:55:23 137

原创 黑马程序员 MySQL数据库入门到精通 DQL案例代码

DQL练习语句

2025-04-29 13:33:57 178

原创 调度的目标(调度算法的评价指标)

CPU利用率:指CPU “忙碌” 的时间占总时间的比例。利用率 = 忙碌的时间 / 总时间系统吞吐量:单位时间内完成作业的数量。系统吞吐量 = 总共完成了多少道作业 / 总共花了多少时间周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。它包括四个部分: 作业在外存后备队列上等待作业调度(高级调度)的时间 进程在就绪队列上等待进程调度(低级调度)的时间 进程在CPU上执行的时间 进程等待/O操作完成的时间后三项在一个作业的整个

2025-03-11 11:40:39 510

原创 调度器和闲逛进程

调度程序永远的备胎,没有其他就绪进程时,运行闲逛进程(idle)。非抢占式调度策略,只有运行进程阻塞或退出才触发调度程序工作。调度时机——什么事件会触发 “调度程序”?所以在实际情况中CPU永远不可能空闲!或k个时钟中断会触发调度程序工作。这部分大概率只会在选择题中出现。发生(可能唤醒某些阻塞进程)抢占式调度策略,每个。

2025-03-07 13:30:11 284

原创 【无标题】

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。 需要进行进程调度与切换的情况: 当前运行的进程主动放弃处理机: 进程正常终止 运行过程中发生异常而终止 进程主动请求阻塞(如:等待 I/O ) 当前运行的进程被动放弃处理机: 分给进程的时间片用完 有更紧急的事需要处理(如: I/O 中断)

2025-03-01 21:37:31 803

原创 处理机调度概念、层次

当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。作业:一个具体的任务。用户向系统提交一个作业 = 用户让操作系统启动一个程序(来处理一个具体的任务)内存空间有限,有时无法将用户提交的作业全部放入内存。高级调度(作业调度)。按一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程。每个作业只调入一次,调出一次。作业调入时会建立PCB,调出时才撤销PCB。(简化理解:好几个程序需要启动,到底先启动哪个) 低

2025-02-27 15:34:35 372

原创 进位计数制

古印度人发明的阿拉伯数字:0,1,2,3,4,5,6,7,8,9。(符号反应权重)基于 “乘法” 思想的计数方法。Eg:975.36 = 9 * 100 + 7 * 10 + 5 * 1 + 3 * 0.1 + 6 * 0.01推广:r 进制计数法基数:每个数码位用到的不同符号的个数,r 进制的基数是 r二进制:0,1八进制:0,1,2,3,4,5,6,7十进制:0,1,2,3,4,5,6,7,8,9十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F二进制:① 可使用两个稳定状

2025-02-26 17:07:02 782

原创 线程的状态与转换

堆栈指针通常是恢复到SP(堆栈寄存器)里面的。

2025-02-26 15:59:00 140

原创 线程的实现方式和多线程模型

历史背景:早期的操作系统(如:早期Unix)只支持进程,不支持线程。当时的 “线程” 是由线程库实现的。很多编程语言提供了强大的线程库,可以实现线程的创建、销毁、调度等功能。Q&A:1. 线程的管理工作由谁来完成? 用户级线程由应用程序通过线程库实现,所有的线程管理工作都由应用程序负责(包括线程切换)。2. 线程切换是否需要CPU变态? 用户级线程中,线程切换可以在用户态下即可完成,无需操作系统干预。3. 操作系统是否能意识到用户级线程的存在? 在用户看来,是

2025-02-26 15:22:22 986

原创 线程的概念与特点

有的进程可能需要 “同时” 做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了 “线程” ,来增加并发度。传统的进程是程序执行流的最小单位。引入线程后,线程成为了程序执行流的最小单位。可以把线程理解为“轻量级进程”。线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)。引入线程后,进程只作为。

2025-02-26 10:39:54 388

原创 计算机性能指标

主存储器中的MAR位数反应存储单元的个数(最多支持多少个),MDR位数 = 存储字长 = 每个存储单元的大小。总容量 = 存储单元个数 * 存储字长 bit 1 Byte = 8 bit = 存储单元个数 * 存储字长 / 8 ByteEg:MAR为32位,MDR为8位 总容量 = 2 ^ 32 * 8 bit = 2 ^ 32 Byte = 2 ^ 12 MB = 2 ^ 2 GB

2025-02-23 19:52:48 949

原创 计算机系统的工作原理

预处理器:对C语言中 # 开头的命令处理。如宏定义理常量的替换。链接器:将多个相关的目标模块链接成完整的可执行文件。汇编器:将汇编语言程序翻译为二进制机器语言。编译器:将源程序翻译为汇编语言。

2025-02-23 17:02:23 246

原创 计算机体系结构 VS 计算机组成原理

计算机体系结构 和 计算机组成原理 的 区别

2025-02-23 16:45:17 709

原创 计算机系统的层次结构

计算机体系结构 VS 计算机组成原理计算机体系结构一一机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性(指令系统、数据类型、寻址技术、I/O机理)如何设计硬件与软件之间的接口 有无乘法指令计算机组成原理一一实现计算机体系结构所体现的属性,对程序员 “透明” (看不见)(具体指令的实现)如何用硬件实现所定义的接口 如何实现乘法指令。

2025-02-23 16:40:28 284

原创 计算机软件

应用软件:应用软件是为了解决某个应用领域的问题而编制的程序。Eg:抖音、QQ、美图秀秀、Photoshop、AutoCAD...系统软件:系统软件负责管理硬件资源,并向上层应用程序提供基础服务Eg:操作系统、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理程序、服务程序...高级语言、汇编语言、机器语言编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次)。解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(

2025-02-23 16:20:00 298

原创 各个硬件的工作原理

CPU向MAR提供想要的数据存放的地址,然后主存储器里的一些控制逻辑根据CPU提供的地址将找到的数据写到MDR里,最后CPU就可以通过数据线路从MDR中取走数据。写操作和读操作的过程类似,CPU会指明数据要写入什么位置(传到MAR里),想写入的具体数据会写入MDR中,最后CPU会通过控制总线告诉主存储器这次是写操作。运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非):乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。:累加器,用于存放操作数,或运算结果。:指令寄存器,存放当前执行的指令。

2025-02-23 15:11:11 591

原创 “存储程序” 和 “程序存储”

并由中央处理器(CPU)按顺序读取、解释和执行。这一理念彻底改变了早期计算机(如机械开关编程)的工作方式。程序指令和操作数据共享同一存储空间,消除了早期计算机需要物理切换程序(如插拔线路或打孔卡片)的局限性。程序可以像数据一样被修改、加载或动态生成(例如操作系统调度不同任务)。逐条读取内存中的指令并执行,无需人工干预。,包括程序代码在内存或外存中的。它更侧重于技术实现层面。指程序在计算机系统中的。的核心思想之一,指将。

2025-02-23 13:37:09 995

原创 计算机硬件的基本组成

然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。Eg:对于乘法运算,可以设计一个专门的硬件电路实现乘法运算,也可以用软件的方式,执行多次加法运算来实现。主存就是常说的内存,辅存就是电脑里的机械硬盘 / 固态硬盘,主机包含主存,辅存被归为 I/O设备。将指令以二进制代码的形式事先输入计算机的主存储器。在计算机系统中,软件和硬件在逻辑上是等效的。CPU = 运算器 + 控制器。现代计算机:以存储器为核心。6. 以运算器为中心。

2025-02-23 13:08:53 352

原创 泥嚎,俺是计算机组成原理

低电平 表示二进制的 0高电平 表示二进制的 1通过很多条电略,可以传递多个二进制数位每个二进制数位称为 1bit (比特)未来有点远,我现在就要知道:数字、文字、图像如何用二进制表示?数字:整数直接转二进制(如5→101),小数用类似科学计数法的“浮点数”表示(如IEEE 754标准)。文字:每个字符对应一个二进制编号。例如,ASCII码中字母A是01000001,汉字则用更长的Unicode编码(如UTF-8)。图像。

2025-02-22 14:07:42 492

原创 进程通信(IPC)

半双工通信是一种数据传输方式,允许通信双方进行双向数据传输,但。

2025-02-22 10:54:22 687

原创 进程控制(靠原语实现)

进程控制的主要功能是:对系统中的所有进程实施有效管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。简化理解:进程控制就是要实现进程状态转换。无论哪个进程控制原语,要做的无非三件事情:1、更新PCB中的信息。(修改进程状态,保存 || 恢复运行环境)2、将PCB插入合适的队列。3、分配 || 回收资源。

2025-02-20 20:56:49 450

原创 进程的状态与转换

-----

2025-02-20 19:05:23 262

原创 进程 和 线程

需根据任务类型(CPU密集型/I/O密集型)、安全性需求、性能目标等因素,灵活选择进程、线程或协程模型。

2025-02-20 15:13:52 1086

原创 进程的概念、组成、特征

补充说明进程与线程的区别:线程是进程内的执行单元,共享进程资源,切换开销更小。进程状态转换:包括新建(New)、就绪(Ready)、运行(Running)、阻塞(Blocked)、终止(Terminated)等状态。程序是怎样运行的?(见下图)

2025-02-20 15:06:50 1287

原创 虚拟机 _ VM

使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine,VM),每个虚拟机器都可以独立运行一个操作系统。:虚拟机管理程序/虚拟机监控程序Virtual Machine Monitor/Hypervisor。

2025-02-19 17:52:12 398

原创 操作系统引导

操作系统引导:①CPU从一个特定主存地址开始,取指令,执行OM中的引导程序(先进行硬件自检,再开机)②将磁盘的第一块一一主引导记录读入内存,执行磁盘引导程序,扫描分区表③从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序④从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作。

2025-02-19 17:18:02 675

原创 操作系统体系结构

一个故事:现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储管理、设备管理。大内核(又名:宏内核 || 单内核):时钟管理、中断处理、原语、进程管理、存储管理、设备管理。分层结构、模块化、外核 考简单的选择题,了解各种体系结构的特性,了解各自的优缺点。注意:变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能。实现操作系统内核功能的那些程序就是内核程序。内核是操作系统最基本、最核心的部分。大内核要两次变态,微内核要六次变态。微内核:时钟管理、中断处理、原语。

2025-02-19 10:54:42 215

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除