- 博客(18)
- 收藏
- 关注
原创 RabbitMQ学习笔记
之前用GO写过RabbitMQ相关的服务,已经装了RabbitMQ和Erlang,跳过安装步骤。(记得当时用go写的时候没这么麻烦呀,像什么Exchanges、Queues之类的概念我都不知道,写出来了也能跑通)
2024-06-30 22:37:46
888
1
原创 【rCore】用rust从零开始写一个操作系统 开源操作系统训练营:ch3 多道程序与分时多任务
本章的目标是实现分时多任务系统,它能并发地执行多个用户程序,并调度这些程序。为此需要实现一次性加载所有用户程序,减少任务切换开销;支持任务切换机制,保存切换前后程序上下文;支持程序主动放弃处理器,实现 yield 系统调用;以时间片轮转算法调度用户程序,实现资源的时分复用。
2024-05-24 01:38:43
927
原创 【rCore】用rust从零开始写一个操作系统 开源操作系统训练营:ch2 批处理系统
这是因为我们知道这是一个由 ecall 指令触发的系统调用,在进入 Trap 的时候,硬件会将 sepc 设置为这条 ecall 指令所在的地址(因为它是进入 Trap 之前最后一条执行的指令)。能够实现sbi调用,实现了能够在终端输出的print宏,在qemu-system-riscv64模拟 RISC-V 64 计算机的运行的程序。这里的地址应该是应用程序的二进制镜像在物理内存中暂时存放的地址,之后运行的时候才将他们依次加载到0x80400000处。批处理操作系统,能够自动加载并运行了所有的用户程序。
2024-05-23 19:16:56
1634
3
原创 【rCore】用rust从零开始写一个操作系统 开源操作系统训练营:ch1 应用程序与基本执行环境
此时,CPU 的其它通用寄存器清零,而 PC 会指向 0x1000 的位置,这里有固化在硬件中的一小段引导代码, 它会很快跳转到 0x80000000 的 RustSBI 处。由于没有提供 main 函数的调用,此处定义一个 _start 函数,它会被链接器识别为程序的入口点。panic_handler是一个特殊的函数,它用于处理panic(程序中的严重错误,如不可恢复的逻辑错误或资源不足),rust程序中必须实现此函数。因为C语言的链接约定在许多平台上都是已知的,并且可以直接被链接器和引导加载器理解。
2024-05-21 11:07:50
1730
原创 6.S081-2021-Lab6: Multithreading
每当线程进入时,根据屏障中已有的线程数,只有当它是最后一个线程时,线程才会将屏障状态设置为“通过”,以便所有线程都可以离开屏障。期望的行为是每个线程在barrier()中阻塞,直到nthreads的所有线程都调用了barrier()。在本作业中,您将实现一个屏障)(Barrier):应用程序中的一个点,所有参与的线程在此点上必须等待,直到所有其他参与线程也达到该点。文件notxv6/ph.c包含一个简单的哈希表,如果单个线程使用,该哈希表是正确的,但是多个线程使用时,该哈希表是不正确的。
2024-01-20 17:53:09
885
原创 6.S081-2021-Lab5: Copy-on-Write Fork for xv6
xv6中的fork()系统调用将父进程的所有用户空间内存复制到子进程中。如果父进程较大,则复制可能需要很长时间。更糟糕的是,这项工作经常造成大量浪费;例如,子进程中的fork()后跟exec()将导致子进程丢弃复制的内存,而其中的大部分可能都从未使用过。另一方面,如果父子进程都使用一个页面,并且其中一个或两个对该页面有写操作,则确实需要复制。
2023-12-22 12:42:43
1579
原创 6.S081-2021-Lab4: traps
在一个窗口执行# 实验指导书上说, 调试的时候指定一个CPU运行会更好一些在另一个窗口执行转为调试用户空间的call文件在main主函数打上断点输出解析:在0x1c处打上第一个断点,其中0x1c来自call.asm,main函数的入口地址和第一行命令的地址。再输入c,此时程序卡住不动在第一个窗口执行call命令此时第二个窗口输出再输入命令。
2023-12-21 19:21:12
889
1
原创 使用LSTM实现C-MAPSS数据集里面的剩余寿命预测(Pytorch)
在现代工业生产中,提高效率和降低成本是最重要的追求的目标。同时,对。提出了越来越高的要求设备的安全性和可靠性。系统一旦出现故障,将造成巨大的损失以人力和财力。故障排除有助于确定原因设备或系统出现问题时,精确定位单个部件。这速度加快维修流程,减少停机时间,提高生产效率。预测性维护通过监测设备状况来防止损坏并降低维修成本和性能数据,预测可能出现的故障,并在故障发生之前制定维护计划。因此,可以大大减少故障排除和预测性维护计划节省了人力,提高了可靠性、可用性和可维护性设备效率。
2023-12-19 16:05:39
4520
19
原创 6.S081-2021-Lab3: page tables
walk为输入的va找到其对应的最后一级页表的PTE。如此遍历,walk最后返回的是最后一级页表的PTE,且路径上经过的三级页表都一定已经被分配了物理帧,并被建立起来。需要注意的是,如果传入的是新va,相关的映射未被建立,那么walk只会建立第二级和第三级页表(根页表是已经存在的),为它们分配新的物理帧,walk并没有为最后一级页表的PTE所指向的物理帧分配新的一页。也就是说,如果这个映射是新的,通过walk返回的PTE是无效的(全0),如果原来就有这个映射,那么walk就返回包含映射内容的PTE。
2023-12-07 17:54:56
1210
1
原创 高斯朴素贝叶斯分类spambase数据集+五折交叉验证(附python代码实现)
将所有特征的概率相乘,除以相应类别的概率,即为预测的分为该类别的概率。(全部预测1准确率也有0.6,贝叶斯预测准确率只有0.8)求方差时注意要给一个平滑值,否则方差为0会出现除0错误。取所有类别概率最大值即为预测结果。
2023-12-05 14:46:00
1120
2
原创 【Unity】六边形TileMap如何让素材与格子大小恰好相符
初始格子:将素材(Tile类型)直接拖到调色板中,格子被拉长原因不知道,解决方法:先将Sprite模式由单一改为多个,点击确定再将新生成的Texture2D拖到Tile因原本的Texture2D改变而缺失的精灵位置这个时候格子应该恢复正常了(看运气),再把Sprite模式改为单一,重复上述操作也不会影响。
2023-09-24 19:58:42
1247
1
原创 linux访问文件夹Permission denied(文件权限管理)
对文件来说最高权限是x,对于目录来说最高权限是w,一般给目录赋予权限0 ,5(rx),7(rxw),赋予4 ,1, 6都是没有意义的。对于文件能否删除,首先要对目录具有执行权限,同时对文件也具有执行权限。w:具有修改目录结构的权限,比如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切和复制(比如命令cp mv touch rm)。w : 可以编辑文件(比如命令 vim echo ),但是不能删除文件,因为文件名没有放在自己的文件空间,而是放在了上一级的目录空间下。
2023-09-13 20:41:59
1378
原创 自定义验证规则进行数据验证+JSR-303验证注解
验证器类(这里是LoginValidator)必须实现org.springframework.validation.Validator接口,并且必须有一个无参构造函数。在控制器类中,必须使用@Validated注解来指示验证器应用于请求参数上。在请求方法中,必须将请求参数作为参数传递给验证器,并且必须将验证器实例绑定到WebDataBinder。import com> clazz) {errors . rejectValue("" , null , "用户不能为空");
2023-08-30 14:39:00
163
1
原创 自定义注解+拦截器实现用户鉴权
在 Spring Boot 框架中,使用注解来标记需要进行管理员令牌验证的类或方法,然后通过编写拦截器、过滤器或其他逻辑来处理这个注解,实现管理员令牌验证的功能。
2023-08-29 23:36:37
169
1
使用LSTM实现C-MAPSS数据集里面的剩余寿命预测(Pytorch)
2023-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人