摘要: # KMP算法学习笔记 KMP算法的关键在于利用已经匹配过的字符串的信息——前缀和后缀。 ## 一、基本定义 前缀:字符串s从下标0开始的一个子串。如`s = "abcd"`,则其前缀有`"a", "ab", "abc"`. 后缀:字符串s以最后一个字符结尾的一个子串。如`s = "abcd"`,则 阅读全文
posted @ 2022-07-31 23:27 Booooomb 阅读(80) 评论(0) 推荐(0) 编辑
摘要: BUAA-OO 第四单元 & 课程总结 前言 不知不觉,OO课程的学习即将结束,回想每次作业,有面对指导书毫无思绪,也有理清架构后的豁然开朗;有debug到濒临崩溃,也有评测AC后的成就感,在这个艰难的过程中自己也学到了很多,希望能就最后一次博客作业好好总结。 一、第四单元作业架构 (一)树形层次结 阅读全文
posted @ 2022-06-26 17:37 Booooomb 阅读(23) 评论(0) 推荐(0) 编辑
摘要: BUAA OS Lab5-2 课上测试 一、exam部分 (一)题目 在exam中,我们需要新增三种文件的打开方式:O_APPEND,O_ALONE,O_CREAT。 (1)O_APPEND 我们原来的文件系统在打开文件时,指针为0,这就导致了写的时候会覆盖文件原有内容。 如一个文件./motd原有 阅读全文
posted @ 2022-06-09 17:34 Booooomb 阅读(174) 评论(0) 推荐(0) 编辑
摘要: BUAA OS Lab5-2分析 前言 说实话,当我做完Lab5-1,我以为Lab5仅仅如此,后面又看到Lab5-2的指导书部分内容比较少,使我更坚信了Lab5是一个轻松的Lab,然而当我读完指导书,对后面几个exercise无从入手时,我才知道我错了。。。 Lab5的代码填写量非常少,但是需要自己 阅读全文
posted @ 2022-06-07 10:20 Booooomb 阅读(263) 评论(0) 推荐(2) 编辑
摘要: BUAA-OO 第三单元总结 前言 如果说计算机语言避免了自然语言的二义性,那么JML规格就在方法层面上避免了人的理解的歧义,同时JML又不对具体实现做出限制,因而在JML的规约下编码,正如“戴着镣铐跳舞”。有了这样一个明确的界限,无论是编码还是测试,相当于就有了一个契约。 一、测试数据 (一)以对 阅读全文
posted @ 2022-06-05 21:08 Booooomb 阅读(87) 评论(2) 推荐(0) 编辑
摘要: BUAA OS Lab4-2 课上测试 Extra部分 (一)题目 由于原题目比较长,笔者在这里只做简单的概括,原题目可见最后附录。 在Extra部分,我们需要实现信号机制,包括以下三种信号: 信号 编号 来源 描述 默认处理动作 SIGTERM 15 用户程序 用于终止进程,但允许目标进程通过信号 阅读全文
posted @ 2022-05-28 23:04 Booooomb 阅读(346) 评论(2) 推荐(2) 编辑
摘要: BUAA OS Lab4-1 课上测试 一、Exam部分 (一)题目描述 在本题中,内核需要面向所有进程维护一个公用的锁(下称锁)。对于用户程序,锁在同一时刻要么被唯一一个进程持有,要么不被任何进程持有(此时称锁处于空闲状态)。内核初始化时,锁应当处于空闲状态。 为了在用户空间提供自旋锁机制,你需要 阅读全文
posted @ 2022-05-19 17:31 Booooomb 阅读(430) 评论(0) 推荐(1) 编辑
摘要: BUAA OS Lab3-2 课上测试 一、exam 1.题目 在原有的时间片轮转上修改调度算法。 在全局有三个调度队列,记为 env_sched_list[3] ,每个队列中的进程单次运行的时间片数量为进程优先级乘以不同的权重,具体的: env_sched_list[0] 中进程单次运行时间片数 阅读全文
posted @ 2022-05-12 17:00 Booooomb 阅读(487) 评论(0) 推荐(2) 编辑
摘要: BUAA-OO 第二单元总结 一、锁与同步块 (一)多线程安全性 为什么这单元作业需要使用多线程?因为我们有多部电梯,需要允许它们同时运作;同时,在等待需求输入时也要允许它们运作。这种业务上的需求使得我们必须使用多线程来完成这单元作业。 尽管多线程带来了很多好处,但是使用不当,很可能出现线程安全问题 阅读全文
posted @ 2022-04-30 14:21 Booooomb 阅读(109) 评论(1) 推荐(0) 编辑
摘要: BUAA-OO 第一单元总结 前言 OO第一单元的三次作业都围绕着表达式展开进行。从面向过程编程逐渐转换为面向对象编程、每次作业的拓展迭代都是不小的挑战。尽管完成了三次作业,但是自己还有一些地方存在缺陷,需要进一步反思。希望能够通过这次博客作业来分析和总结这单元的收获与不足。 一、程序结构分析 1. 阅读全文
posted @ 2022-03-23 15:54 Booooomb 阅读(138) 评论(0) 推荐(0) 编辑