- 博客(78)
- 收藏
- 关注
原创 C++ 算法竞赛STL以及常见模板
STL// 元素数量● empty():if// 判空// 清空// 随机访问● 迭代器:forit!= v.end();++it)▲ 例子:vector<int// 初始化// 预分配v.pb(4);// 添加元素// 排序// 去重vectorint//(长度,数值)//开销大//删除尾部ssr.size();//返回size_t,在相乘可能溢出intnum1=100;//大补0,小就删。
2025-03-10 00:00:00
1986
1
原创 第6届传智杯复赛第一场
小红定义两个字符串同构,当且仅当对于i∈[1,n],b[i]−a[i]i∈[1,n],b[i]-a[i]i∈[1,n],b[i]−a[i]是定值。例如,"bacd"和"edfg"是同构的。已知真品的型号至少出现两次,而赝品的型号只出现一次。一个整数,代表合法的字符串bbb的数量。小红拿到了一个仅由小写字母组成的字符串,她希望将其分割成两个非空子串,使得。设字符串总长度为 n,第二部分长度为 k,则第一部分长度需为 2k。输入一个仅由英文小写字母组成的字符串,代表字符串aaa。2.bbb和aaa不同构。
2025-03-10 00:00:00
1843
1
原创 操作系统之I/O设备:分类、组成与控制方式
当I/O设备准备好数据传输时,它会发送一个中断信号给CPU,CPU响应中断并处理数据传输。DMA(Direct Memory Access)方式是一种允许I/O设备直接与内存进行数据传输的技术,而无需CPU的介入。在程序直接控制方式中,CPU直接管理I/O操作,通常是通过执行特定的I/O指令来实现数据的传输。这种方式下,CPU在数据传输期间会持续监控I/O设备的状态,直到传输完成。I/O设备通常包含机械部件,如磁盘的读写头、打印机的打印头等。- 设备无关的I/O软件。- 设备驱动程序接口。
2025-01-13 17:34:15
1232
1
原创 操作系统之磁盘
磁盘上的每个扇区都可以通过一个三元组地址来唯一标识,即柱面号(磁道号)、盘面号(磁头号)和扇区号(块号)。例如,磁盘通常是按扇区顺序读取的,而光盘通常是从中心向外读取的。:磁盘盘面上的数据存储在一组同心圆上,每个圆称为一个磁道。所有盘片上的同一位置的磁道组成一个柱面。:磁盘上无法正常读写的扇区。操作系统通常会维护一个坏块链表,并在格式化时将备用块分配给这些坏块。:一个磁道被划分为多个扇区,每个扇区可以存储固定大小的数据。通常,一个扇区称为一个盘块。:位于分区的开始处,包含启动操作系统的程序代码。
2025-01-12 23:56:58
1095
1
原创 虚拟文件系统 VFS
目录虚拟文件系统 VFS文件系统挂载过程统一标准的系统调用接口:下层文件系统必须实现的函数功能:vnode(虚拟节点):函数功能指针:注册新挂载的文件系统:提供函数地址列表:挂载到挂载点:以下是文件系统挂载的步骤:
2025-01-12 23:48:36
396
1
原创 操作系统之文件系统
通过将所有空闲块链接成一个链表来管理空闲空间。链表可以是基于单个磁盘块,也可以是基于空闲区(连续的多个磁盘块)。维护一个数据结构,即空闲磁盘块表,该表记录了磁盘上所有空闲块的信息。是UNIX文件系统使用的一种空闲块管理方法,它结合了空闲表和空闲链表法的优点。使用一个二进制位数组来表示每个磁盘块的使用情况。
2025-01-12 23:42:03
647
1
原创 操作系统之文件目录
目录是文件系统的一个核心组成部分,主要用于组织系统内的所有文件并提供文本信息。它实现了文件从名字空间到文件存储器地址空间的映射,使得用户可以通过文件名来访问文件,而无需关心文件在存储设备上的具体位置。目录结构支持文件的层次化组织,便于管理和访问。
2025-01-10 20:14:27
690
4
原创 操作系统之文件的物理结构(非空闲块管理)
索引分配的核心思想是将文件的所有磁盘块号集中存放在一个称为索引块的数据结构中。这个索引块充当了文件与存储介质之间的桥梁,使得文件的随机存取变得异常高效。显式链接则是将文件的块号显式地存放在内存中的文件分配表(FAT)中,以此来管理文件的物理块。隐式链接是一种常见的链接分配方式,它使得文件的块可以非连续地分布在磁盘的任何位置。链接分配通过离散分配方式来组织文件的块,从而消除了外部碎片。隐式链接(对用户透明,题目默认)
2025-01-10 20:03:12
553
1
原创 操作系统之文件的逻辑结构
无结构文件,也称为流式文件,是由一系列无固定格式的二进制流或字符流组成的数据集合。这类文件不预设任何内部结构,数据是按顺序组织的,随着记录的积累而保存。
2025-01-09 23:17:33
719
1
原创 操作系统之文件系统的基本概念
创建文件操作允许用户在文件系统中生成一个新的文件实体。截断文件操作将文件的大小减小到用户指定的大小。删除文件操作从文件系统中移除指定的文件。写文件操作允许用户将数据写入到文件中。读文件操作允许用户从文件中读取数据。系统调用)改变文件的读写位置。重新定位文件操作(通常通过。
2025-01-09 23:03:09
701
原创 操作系统之虚拟内存技术的原理与实现
虚拟内存是一种存储管理技术,通过使用硬盘空间作为内存的扩展,使得程序可以使用比实际物理内存更大的存储空间。它允许操作系统将部分数据暂时存储在硬盘上,当需要时再将其调入内存.
2025-01-07 16:52:15
1679
原创 操作系统之内存管理应该实现的功能
工作原理:当内存不足以容纳所有运行中的进程时,操作系统会选择一个或多个进程,将其整个或部分内存映像写入到外存的对换区。如果访问请求超出了这个范围,系统会触发一个异常,通常是保护故障,从而防止进程访问不属于它的内存空间。一旦某个覆盖区的代码执行完毕,操作系统可以将其替换为另一个需要执行的覆盖区代码,从而实现内存空间的重复利用。传统存储管理方法,包括内存空间的分配与回收、地址转换,以及内存扩充技术,并在此基础上引出现代虚拟存储技术。优点:交换技术可以动态地管理内存,提高内存利用率,允许系统运行更多的进程。
2025-01-06 10:24:18
1199
原创 操作系统之内存空间分配方式
基本分段存储管理按照程序自身的逻辑关系划分为若干个段,每个段在内存中占据连续空间。基本分页存储管理将内存和进程分为大小相等的页框和页,通过页表实现逻辑地址到物理地址的转换。这种方式结合了分段和分页的优点,但地址转换过程较为复杂。动态分区分配在进程装入内存时动态创建分区,分区大小正好满足进程需求。固定分区分配将用户内存空间划分为若干个固定大小的分区,每个分区装入一道作业。驻留性(导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源)传统存储管理分为连续分配方式和非连续分配方式,
2025-01-06 09:56:00
903
原创 操作系统之段页式存储管理
在段页式存储管理中,进程的逻辑地址空间被划分为多个段,每个段代表了一个逻辑模块,如代码段、数据段、堆栈段等。每个段又进一步被划分为固定大小的页,这些页是内存分配的基本单位。这种地址结构使得段页式系统能够同时利用段的逻辑连续性和页的物理内存分配优势。段页式存储管理依赖于两个关键的数据结构:段表和页表。
2025-01-01 00:00:00
805
原创 STL容器之priority_queue的常用功能和操作
是一个出队时总是取出最大元素的队列,它默认使用元素类型的操作符来确定元素的优先级,即默认为大顶堆。只允许对队列的顶部元素进行访问,即最大的元素。
2024-11-22 18:36:49
258
原创 操作系统之基本分段存储管理
分段存储管理的核心思想是将程序按照其逻辑关系划分为若干个段,每个段都有一个段名,并且每段从0开始编址。这种划分方式使得内存分配以段为单位进行,每个段在内存中占据连续空间,但各段之间可以不相邻。这种设计允许程序的各个部分独立地进行内存分配和管理。段表每个进程都有一张映射逻辑地址空间和物理地址空间的段表,每个段表项对应进程的一段。段号(隐含)+段长+本段在主存中的始址。为了提高地址转换的效率,可以引入快表机构。快表是一种缓存机制,它存储最近访问的段表项,从而减少对主存段表的访问次数。
2024-11-14 21:33:22
541
1
原创 洛谷P1090 [NOIP2004 提高组] 合并果子
可以先合并 1 和 2 这两堆,新堆的数量为 3,消耗体力为 3。然后将新堆与原来的第三堆合并,得到新堆数量为 12,消耗体力为 12。假设每个果子的重量都是 1,已知果子的种类数和每种果子的数量,你的任务是设计一个合并方案,使得多多消耗的体力最少,并输出这个最小的体力耗费值。每次合并,多多可以选择任意两堆果子合并,合并时所消耗的体力等于这两堆果子的重量之和。因此,多多在合并果子过程中总共消耗的体力是每次合并所耗体力的总和。在一片果园中,多多已经将所有的果子采摘完毕,并将它们按照种类分成了不同的堆。
2024-11-06 21:20:05
587
1
原创 洛谷题解P2196 [NOIP1996 提高组] 挖地雷
当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。第 3 行有 n−1 个数(0或 1),表示第一个地窖至第 2 个、第 3 个 ……第 n 个地窖有否路径连接。如第 3 行为 11000⋯0,则表示第 1 个地窖至第 2 个地窖有路径,至第 3 个地窖有路径,至第 4 个地窖、第 5 个 ……第 n 行有 1 个数,表示第 n−1 个地窖至第 n 个地窖有否路径连接。第 1 行只有一个数字,表示地窖的个数 N。
2024-11-04 21:18:03
458
1
原创 PAT甲级1009 Product of Polynomials
写的很抽象,不应该用map的,应该直接两层for遍历This time, you are supposed to find A×B where A and B are two polynomialsEach input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:K N1 aN1 N2 aN2 ... NK aNK
2024-10-25 01:30:00
1415
原创 PAT甲级1008 Elevator
The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one floor, and 4 seconds to
2024-10-24 21:08:46
482
原创 操作系统之基本分页存储管理
基本分页存储管理将内存空间和进程分割成大小相等的区域,这些区域分别称为页框(或页帧、内存块、物理块、物理页面)和页。操作系统以页框为单位为进程分配内存空间,每个进程的页面分别放入一个页框中,形成一一对应的关系。如果访问的页面不在内存中,系统会产生缺页中断,并将页面从外存调入内存。为了跟踪进程的每个页面在内存中的位置,操作系统为每个进程建立一张页表。在查询页表前,先访问快表,若快表命中,则可跳过页表查询,从而提高地址转换速度。:通过页号在页表中找到对应的页表项,获取内存块号。
2024-10-23 21:09:11
640
原创 操作系统之内存映像详解
现代计算机系统中,操作系统内存映像(Memory Image)是操作系统及其运行的应用程序在内存中的布局。这种布局不仅决定了系统如何管理内存资源,还影响着程序的执行效率和系统的稳定性。操作系统内存映像的各个组成部分,包括内核区、用户栈、共享库的存储映射区、用户区(包括堆、读/写数据区、只读代码/数据区)以及未使用区。
2024-10-21 00:00:00
2404
原创 操作系统之内存管理基本概念
重定位是指在程序被装入内存执行的过程中,修改程序代码中指令和数据的地址,使其能够正确指向物理内存中的位置。:在程序编译、链接时生成的地址。在程序执行期间,逻辑地址会被CPU用来访问内存中的数据,通常是相对地址。:指在内存中实际存在的地址,用于定位数据的确切位置。操作系统负责将逻辑地址映射到物理地址。从写程序到装入程序的流程。
2024-10-20 18:37:15
936
原创 操作系统之同步与互斥
目录进程同步与进程互斥的概念进程同步进程互斥互斥访问的实现逻辑结构遵循规则实现方式软件实现方法硬件实现方法同步机制互斥锁(Mutex):信号量机制:管程(Monitor):经典同步问题生产者-消费者问题读者-写者问题哲学家进餐问题吸烟者问题
2024-10-15 16:12:13
1124
原创 PAT甲级1006 Sign In and Sign Out
编程题 - PAT (Advanced Level) Practice (pintia.cn)https://pintia.cn/problem-sets/994805342720868352/exam/problems/type/7
2024-10-14 00:00:00
802
1
原创 调度的概念与分类
是操作系统中的一个核心概念,它涉及确定某种规则来决定处理任务的顺序。根据任务的不同层次,调度可以分为三种主要类型:作业调度、内存调度和进程(处理机)调度。
2024-10-11 07:00:00
1236
1
原创 PAT甲级1005 Spell It Right
Each input file contains one test case. Each case occupies one line which contains an N (≤10的100次方).
2024-10-10 21:41:52
458
原创 C++中的stoi()与to_string():
函数是C++11标准中引入的一个新函数,用于将字符串转换为整数。它的名称是“string to integer”的缩写,意为“字符串到整数”的转换。如果字符串中包含非数字字符(除了可能的正负号和基数指定的字符外),或者转换结果超出了。它的名称是“to string”的缩写,意为“到字符串”的转换。函数的使用相对简单,因为它不需要处理复杂的转换规则和异常情况。只要输入的数值在有效范围内,函数时,最好使用异常处理机制来确保程序的健壮性。是一个可选参数,用于指定转换的起始位置,是转换的基数,默认为10进制。
2024-09-25 00:17:19
990
原创 PAT甲级1001 A+B Format
介绍Calculate a+b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).输入样例input Specification:Each input file contains one test case. Each case con
2024-09-24 00:18:33
382
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人